使用通道服务或者DataWorks/DataX,实现将表格存储数据表中数据同步到另一个数据表中。

前提条件

已创建目标数据表,详情请参见创建数据表

注意 目标数据表的列必须与源数据表中待迁移的列一一对应。

使用通道服务迁移同步

创建源数据表的通道后,使用SDK进行迁移同步。迁移过程中可以自定义业务处理逻辑对数据进行处理。

  1. 使用表格存储控制台或SDK创建源数据表的通道并记录通道ID,详情请分别参见快速入门使用SDK
  2. 使用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为例介绍迁移操作。

  1. 新增表格存储数据源。

    分别以源数据表和目标数据表所在实例新增表格存储数据源,详情请参见步骤一:新增数据源

  2. 新建同步任务节点。
    1. 以项目管理员身份登录DataWorks控制台
      说明 仅项目管理员角色可以新增数据源,其他角色的成员仅可查看数据源。
    2. 选择区域,在左侧导航栏,单击工作空间列表
    3. 工作空间列表页面,单击工作空间操作中的进入数据开发
    4. 在DataStudio控制台的数据开发页面,单击业务流程节点下的目标业务流程。

      如果需要新建业务流程,请参见创建业务流程

    5. 数据集成节点上右键选择新建 > 离线同步
    6. 新建节点对话框,输入节点名称
  3. 配置数据源。
    1. 数据集成节点下,双击同步任务节点。
    2. 在同步任务节点的编辑页面的选择数据源区域,配置数据来源和数据去向。
      选择数据来源数据去向数据源OTS并分别设置为源数据表和目标数据表对应的数据源,然后单击script图标或者点击转换为脚本,进行脚本配置。
      说明 表格存储仅支持脚本模式,配置脚本的详情分别请参见配置Tablestore(OTS)Reader配置Tablestore(OTS)Writer
    3. 单击save图标,保存数据源配置。
  4. 运行同步任务。
    1. 单击start图标。
    2. 参数对话框,选择调度的资源组。
    3. 单击确定,开始运行任务。

      运行结束后,在运行日志页签中可以查看任务是否成功和导出的数据行数。

  5. (可选)定时执行同步任务,详情请参见步骤三:定时执行同步任务