通过DataWorks控制台将表格存储中的全量数据导出到MaxCompute中。

步骤一:新增表格存储数据源

将表格存储数据库添加为数据源,具体操作步骤如下:

  1. 进入数据集成。
    1. 以项目管理员身份登录DataWorks控制台
      说明 仅项目管理员角色可以新增数据源,其他角色的成员仅可查看数据源。
    2. 选择地域,在左侧导航栏,单击工作空间列表
    3. 工作空间列表页面,单击工作空间操作区域的进入数据集成
  2. 新增数据源。
    1. 在数据集成控制台,单击数据源管理
    2. 数据源管理页面,单击新增数据源
    3. 新增数据源对话框的NoSQL区域,选择数据源类型为OTS
    4. 新增OTS数据源对话框,配置参数。
      fig_otssource
      参数 说明
      数据源名称 数据源的名称,例如gps_data。
      数据源描述 数据源的描述信息。
      Endpoint 填写目标Tablestore实例的服务地址
      • 如果Tablestore实例和MaxCompute在同一个地域,填写经典网地址。
      • 如果Tablestore实例和MaxCompute不在同一个地域,填写公网地址。
      • 不能填写VPC地址。
      Table Store实例名称 Tablestore实例的名称。
      AccessKey ID 登录账户的AccessKey ID和AccessKey Secret,获取方式请参见为RAM用户创建访问密钥
      AccessKey Secret
    5. 单击测试连通性,测试数据源的连通状态。
  3. 单击完成
    数据源管理页面,会显示该数据源信息。

步骤二:新增MaxCompute数据源

操作与步骤一类似,只需在Big Data Storage区域,选择数据源类型为MaxCompute(ODPS)

本示例中,该数据源名称使用OTS2ODPS,如下图所示。

fig_odps_001

步骤三:配置同步任务

新建并配置表格存储到MaxCompute的同步任务,具体操作步骤如下:

  1. 进入数据开发。
    1. 以项目管理员身份登录DataWorks控制台
    2. 选择地域,在左侧导航栏,单击工作空间列表
    3. 工作空间列表页面,单击工作空间操作区域的进入数据开发
  2. 在DataStudio控制台的数据开发页面,单击业务流程节点下的目标业务流程。

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

  3. 新建同步任务节点。
    每个同步任务都需创建一个相应的节点。
    1. 数据集成节点上右键选择新建 > 离线同步
      您也可以将鼠标悬停在fig_addnode图标,选择数据集成 > 离线同步来新建节点。
    2. 新建节点对话框,输入节点名称,选择一个目标文件夹。
      fig_newtask
    3. 单击提交
  4. 配置数据源。
    1. 数据集成节点下,双击同步任务节点。
    2. 在同步任务节点的编辑页面的选择数据源区域,配置数据来源和数据去向。
      • 配置数据来源。

        选择数据来源数据源OTS

      • 配置数据去向。

        选择数据去向数据源ODPS,并选择对应的

      fig_ots2odps
    3. 单击script图标或者点击转换为脚本,进行脚本配置。

      表格存储仅支持脚本模式配置,使用过程中涉及Tablestore(OTS) Reader和OSS Writer插件的配置。具体操作,请参见配置Tablestore(OTS) ReaderMaxCompute Writer

      在脚本配置页面,请根据如下示例完成配置。
      {
      "type": "job",
      "version": "1.0",
      "configuration": {
      "setting": {
        "errorLimit": {
          "record": "0"    # 能够允许的最大错误数。
        },
        "speed": {
          "mbps": "1",   # 最大的流量,单位为MB。
          "concurrent": "1"  # 并发数。
        }
      },
      "reader": {
        "plugin": "ots",  # 读取的插件名称。
        "parameter": {
          "datasource": "",  # 数据源名称。
          "table": "",  # 数据表名称。
          "column": [  # 需要导出到MaxCompute中去的表格存储中的列名。
            {
              "name": "column1"
            },
            {
              "name": "column2"
            },
            {
              "name": "column3"
            },
            {
              "name": "column4"
            },
            {
              "name": "column5"
            }
          ],
          "range": {  # 需要导出的数据范围,如果是全量导出,则需要从INF_MIN到INF_MAX。
            "begin": [ # 需要导出数据的起始位置,最小的位置是INF_MIN。begin中的配置项数目个数和表格存储中相应表的主键列个数一致。
              {
                "type": "INF_MIN"
              },
              {
                "type": "INF_MIN"
              },
              {
                "type": "STRING",  # 此配置项表示第三列的起始位置是begin1。
                "value": "begin1"
              },
              {
                "type": "INT",  # 此配置项表示第四列的起始位置是0。
                "value": "0"
              }
            ],
            "end": [  # 导出数据的结束位置。
              {
                "type": "INF_MAX"
              },
              {
                "type": "INF_MAX"
              },
              {
                "type": "STRING",
                "value": "end1"
              },
              {
                "type": "INT",
                "value": "100"
              }
            ],
            "split": [  # 配置分区范围,一般可以不配置,如果性能较差,可以提交工单或者加入钉钉群23307953联系表格存储技术支持人员处理。
              {
                "type": "STRING",
                "value": "splitPoint1"
              },
              {
                "type": "STRING",
                "value": "splitPoint2"
              },
              {
                "type": "STRING",
                "value": "splitPoint3"
              }
            ]
          }
        }
      },
      "writer": {
        "plugin": "odps",  # MaxCompute写入的插件名。
        "parameter": {
          "datasource": "",  # MaxCompute的数据源名称。
          "column": [],  # MaxCompute中的列名,列名顺序需对应TableStore中的列名顺序。
          "table": "",  # MaxCompute中的表名,需要提前创建好,否则任务执行会失败。
          "partition": "",  # 如果表为分区表,则必填。如果表为非分区表,则不能填写。需要写入数据表的分区信息,必须指定到最后一级分区。
          "truncate": false  # 是否清空之前的数据。
        }
      }
      }
      }
      您可以通过begin和end来配置导出的数据范围,假设表包含pk1(String类型)和pk2(Integer类型)两个主键列。
      • 如果需要导出全表数据,则配置示例如下:
        "begin": [ # 需要导出数据的起始位置。
          {
            "type": "INF_MIN"
          },
          {
            "type": "INF_MIN"
          }
        ],
        "end": [  # 需要导出数据的结束位置。
          {
            "type": "INF_MAX"
          },
          {
            "type": "INF_MAX"
          }
        ],
      • 如果需要导出pk1="tablestore" 的行,则配置示例如下:
        "begin": [ # 导出数据的起始位置。
          {
            "type": "STRING",
            "value": "tablestore"
          },
          {
            "type": "INF_MIN"
          }
        ],
        "end": [  # 导出数据的结束位置。
          {
            "type": "STRING",
            "value": "tablestore"
          },
          {
            "type": "INF_MAX"
          }
        ],
    4. 单击save图标,保存数据源配置。
  5. 运行同步任务。
    1. 单击start图标。
    2. 参数对话框,选择调度的资源组。
    3. 单击确定,开始运行任务。
      运行结束后,在运行日志页签中可以查看任务是否成功和导出的数据行数。
  6. 配置调度参数。
    通过调度配置,可以配置同步任务的执行时间、重跑属性、调度依赖等。
    1. 数据集成节点下,双击同步任务节点。
    2. 在同步任务节点的编辑页面的右侧单击调度配置,进行调度参数配置,详情请参见配置调度和依赖属性
  7. 提交同步任务。
    1. 在同步任务节点的编辑页面,单击submit图标。
    2. 提交新版本对话框,输入备注信息。
    3. 单击确认
      将同步任务提交到调度系统后,调度系统会根据配置的调度参数,自动定时执行同步任务。

步骤四:查看同步任务

  1. 进入运维中心。
    说明 您也可以在DataStudio控制台的右上角单击运维中心,快速进入运维中心。
    1. 以项目管理员身份登录DataWorks控制台
    2. 选择地域,在左侧导航栏,单击工作空间列表
    3. 工作空间列表页面,单击工作空间操作区域的进入运维中心
  2. 在运维中心控制台,选择周期任务运维 > 周期任务
  3. 周期任务页面,查看提交的同步任务详情。
    • 在左侧导航栏中,选择周期任务运维 > 周期实例,可以查看当天需要运行的周期任务。单击实例名称,可以查看任务运行详情。
    • 当单个任务在运行中或运行结束后,可以查看日志。

步骤五:查看导入到MaxCompute中的数据

  1. 进入数据地图。
    1. 以项目管理员身份登录DataWorks控制台
    2. 选择地域,在左侧导航栏,单击工作空间列表
    3. 工作空间列表页面,单击工作空间操作区域的进入数据地图
  2. 在数据地图控制台的导航栏,选择我的数据 > 我管理的数据
  3. 我管理的数据页签,单击导入数据的表名称。
  4. 在表详情页面,单击数据预览页签,查看导入的数据。