使用通道服务、DataWorks或者DataX将表格存储数据表中的数据同步到另一个数据表。
前提条件
已创建目标数据表,目标数据表的列必须与源数据表中待迁移的列一一对应。具体操作,请参见创建数据表。
使用通道服务迁移同步
创建源数据表的通道后,使用SDK进行迁移同步。迁移过程中可以自定义业务处理逻辑对数据进行处理。
- 使用表格存储控制台或SDK创建源数据表的通道并记录通道ID,具体操作请分别参见快速入门或使用SDK。
- 使用SDK迁移数据。
示例代码如下:
public class TunnelTest { public static void main(String[] args){ TunnelClient tunnelClient = new TunnelClient("endpoint", "accessKeyId","accessKeySecret","instanceName"); TunnelWorkerConfig config = new TunnelWorkerConfig(new SimpleProcessor()); //tunnelId可以在表格存储控制台通道管理页面查看或者调用describeTunnelRequest查询。 TunnelWorker worker = new TunnelWorker("tunnelId", tunnelClient, config); try { worker.connectAndWorking(); } catch (Exception e) { e.printStackTrace(); worker.shutdown(); tunnelClient.shutdown(); } } public static class SimpleProcessor implements IChannelProcessor{ //目标tablestore连接对象。 TunnelClient tunnelClient = new TunnelClient("endpoint", "accessKeyId","accessKeySecret","instanceName"); @Override public void process(ProcessRecordsInput processRecordsInput) { //ProcessRecordsInput中返回了增量或全量数据。 List<StreamRecord> list = processRecordsInput.getRecords(); for(StreamRecord streamRecord : list){ switch (streamRecord.getRecordType()){ case PUT: //自定义业务处理逻辑。 //putRow break; case UPDATE: //updateRow break; case DELETE: //deleteRow break; } System.out.println(streamRecord.toString()); } } @Override public void shutdown() { } } }
使用DataWorks或者DataX迁移同步
通过DataWorks或者DataX实现表格存储数据的迁移同步,此处以DataWorks为例介绍迁移操作。
- 新增表格存储数据源。
分别以源数据表和目标数据表所在实例新增表格存储数据源。具体操作,请参见步骤一:新增数据源。
- 新建同步任务节点。
- 以项目管理员身份登录DataWorks控制台。
说明 仅项目管理员角色可以新增数据源,其他角色的成员仅可查看数据源。
- 在左侧导航栏,单击工作空间列表后,选择地域。
- 在工作空间列表页面,单击目标工作空间操作栏中的数据开发。
- 在DataStudio控制台的数据开发页面,单击业务流程节点下的目标业务流程。
如果需要新建业务流程,请参见创建业务流程。
- 在数据集成节点上右键选择 。
- 在新建节点对话框,输入名称,单击提交。
- 以项目管理员身份登录DataWorks控制台。
- 配置数据源。
- 在数据集成节点下,双击同步任务节点。
- 在同步任务节点的编辑页面的选择数据源区域,配置数据来源和数据去向。
选择数据来源和数据去向的数据源为OTS并分别设置为源数据表和目标数据表对应的数据源,然后单击
图标或者单击点击转换为脚本,进行脚本配置。
重要 表格存储仅支持脚本模式配置。- 配置Tablestore(OTS) Reader
Tablestore(OTS) Reader插件实现了从Tablestore读取数据,通过您指定的抽取数据范围,可以方便地实现数据增量抽取的需求。具体操作,请参见配置Tablestore(OTS) Reader。
- 配置Tablestore(OTS) Writer
Tablestore(OTS) Writer通过Tablestore官方Java SDK连接到Tablestore服务端,并通过SDK写入Tablestore服务端 。Tablestore Writer本身对于写入过程进行了诸多优化,包括写入超时重试、异常写入重试、批量提交等功能。具体操作,请参见配置Tablestore(OTS) Writer。
- 配置Tablestore(OTS) Reader
- 单击
图标,保存数据源配置。
- 运行同步任务。
- 单击
图标。
- 在参数对话框,选择调度的资源组。
- 单击确定,开始运行任务。
运行结束后,在运行日志页签中可以查看任务是否成功和导出的数据行数。
- 单击
- (可选)定时执行同步任务。具体操作,请参见步骤三:定时执行同步任务。