导出全量数据到MaxCompute

通过DataWorks大数据开发治理平台的数据集成功能,您可以将表格存储(Tablestore)的数据全量导出到MaxCompute。

前提条件

重要

如果MaxCompute实例和Tablestore实例不在同一地域,请参考以下操作步骤创建VPC对等连接实现跨地域网络连通。

创建VPC对等连接实现跨地域网络连通

此处以DataWorks工作空间与MaxCompute实例位于同一地域(华东1(杭州)),而Tablestore实例位于华东2(上海)为例进行说明。

  1. Tablestore实例绑定VPC。

    1. 登录表格存储控制台,在页面上方选择地域。

    2. 单击实例别名进入实例管理页面。

    3. 切换到网络管理页签,单击绑定VPC,选择VPC和交换机并填写VPC名称,然后单击确定

    4. 请耐心等待一段时间,VPC绑定成功后页面将自动刷新,您可以在VPC列表查看绑定的VPC IDVPC访问地址

      说明

      后续在DataWorks控制台添加Tablestore数据源时,将使用该VPC访问地址。

      image

  2. 获取DataWorks工作空间资源组的VPC信息。

    1. 登录DataWorks控制台,在页面上方选择工作空间所在地域,然后单击左侧工作空间菜单,进入工作空间列表页面。

    2. 单击工作空间名称进入空间详情页面,单击左侧资源组菜单,查看工作空间绑定的资源组列表。

    3. 在目标资源组右侧单击网络设置,在资源调度 & 数据集成区域查看绑定的专有网络,即VPC ID

  3. 创建VPC对等连接并配置路由。

    1. 登录专有网络VPC控制台。在页面左侧单击专有网络菜单,依次选择Tablestore实例和DataWorks工作空间所在地域,并记录VPC ID对应的网段地址。

      image

    2. 在页面左侧单击VPC对等连接菜单,然后在VPC对等连接页面单击创建对等连接

    3. 创建对等连接页面,输入对等连接名称,选择发起端VPC实例、接收端账号类型、接收端地域和接收端VPC实例,单击确定

    4. VPC对等连接页面,找到已创建的VPC对等连接,分别在发起端VPC实例列和接收端VPC实例列单击配置路由条目

      目标网段需填写对端VPC的网段地址。即在发起端VPC实例配置路由条目时,填写接收端VPC实例的网段地址;在接收端VPC实例配置路由条目时,填写发起端VPC实例的网段地址。

操作步骤

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

  1. 进入数据集成页面。

    登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的数据集成 > 数据集成,在下拉框中选择对应工作空间后单击进入数据集成

  2. 在左侧导航栏,单击数据源

  3. 数据源列表页面,单击新增数据源

  4. 新增数据源对话框,搜索并选择数据源类型为Tablestore

  5. 新增OTS数据源对话框,根据下表配置数据源参数。

    参数

    说明

    数据源名称

    数据源名称必须以字母、数字、下划线(_)组合,且不能以数字和下划线(_)开头。

    数据源描述

    对数据源进行简单描述,不得超过80个字符。

    地域

    选择Tablestore实例所属地域。

    Table Store实例名称

    Tablestore实例的名称。

    Endpoint

    Tablestore实例的服务地址,推荐使用VPC地址

    AccessKey ID

    阿里云账号或者RAM用户的AccessKey IDAccessKey Secret。

    AccessKey Secret

  6. 测试资源组连通性。创建数据源时,您需要测试资源组的连通性,以保证同步任务使用的资源组能够与数据源连通,否则将无法正常执行数据同步任务。

    1. 连接配置区域,单击相应资源组连通状态列的测试连通性

    2. 测试连通性通过后,连通状态显示可连通,单击完成。您可以在数据源列表中查看新建的数据源。

      说明

      如果测试连通性结果为无法通过,您可使用连通性诊断工具自助解决。如仍无法连通资源组与数据源,请提交工单处理。

步骤二:新增MaxCompute数据源

操作与步骤一相似,在新增数据源对话框中搜索并选择数据源类型为MaxCompute,随后配置相关的数据源参数。

步骤三:配置离线同步任务

数据开发(Data Studio)旧版

一、新建任务节点

  1. 进入数据开发页面。

    1. 登录DataWorks控制台

    2. 在页面上方,选择资源组和地域。

    3. 在左侧导航栏,单击数据开发与运维 > 数据开发

    4. 数据开发页面的下拉框中,选择对应工作空间后单击进入数据开发

  2. DataStudio控制台的数据开发页面,单击业务流程节点下的目标业务流程。

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

  3. 数据集成节点上右键单击,然后选择新建节点 > 离线同步

  4. 新建节点对话框,选择路径并填写名称,然后单击确认

    数据集成节点下,将显示新建的离线同步节点。

二、配置同步任务

  1. 数据集成节点下,双击打开新建的离线同步任务节点。

  2. 配置网络与资源。

    选择离线同步任务的数据来源、数据去向以及用于执行同步任务的资源组,并测试连通性。

    1. 网络与资源配置步骤,选择数据来源Tablestore,并选择数据源名称为新增的表格存储数据源。

    2. 选择资源组。

      选择资源组后,系统会显示资源组的地域、规格等信息以及自动测试资源组与所选数据源之间连通性。

      说明

      Serverless资源组支持为同步任务指定运行CU上限,如果您的同步任务因资源不足出现OOM现象,请适当调整资源组的CU占用取值。

    3. 选择数据去向MaxCompute(ODPS),并选择数据源名称为新增的MaxCompute数据源。

      系统会自动测试资源组与所选数据源之间连通性。

    4. 测试可连通后,单击下一步

  3. 配置任务并保存。

    向导模式

    1. 配置任务步骤的配置数据来源与去向区域,根据实际情况配置数据来源和数据去向。

      数据来源

      参数

      说明

      数据源

      默认显示上一步选择的Tablestore数据源。

      源数据表。

      主键区间分布(起始)

      数据读取的起始主键和结束主键,格式为JSON数组。

      起始主键和结束主键需要是有效的主键或者是由INF_MININF_MAX类型组成的虚拟点,虚拟点的列数必须与主键相同。其中INF_MIN表示无限小,任何类型的值都比它大;INF_MAX表示无限大,任何类型的值都比它小。

      数据表中的行按主键从小到大排序,读取范围是一个左闭右开的区间,返回的数据是大于等于起始主键且小于结束主键的所有行。

      主键区间分布(结束)

      切分配置信息

      自定义切分配置信息,普通情况下不建议配置。

      Tablestore数据存储发生热点,且使用Tablestore Reader自动切分的策略不能生效时,建议使用自定义的切分规则。切分指定的是在主键起始和结束区间内的切分点,仅配置切分键,无需指定全部的主键。格式为JSON数组。

      数据去向

      参数

      说明

      数据源

      默认显示上一步选择的MaxCompute数据源。

      Tunnel资源组

      Tunnel Quota,默认值为公共传输资源,即MC的免费quota。

      MaxCompute的数据传输资源选择,具体请参见购买与使用独享数据传输服务资源组

      说明

      如果独享tunnel quota因欠费或到期不可用,任务在运行中将会自动切换为“公共传输资源”。

      目标MaxCompute表。

      分区信息

      如果您每日增量数据限定在对应日期的分区中,可以使用分区做每日增量,比如配置分区pt值为${bizdate}。

      写入模式

      数据写入表中的模式。取值范围如下:

      • 写入前保留已有数据(Insert Into):直接向表或静态分区中插入数据。

      • 写入前清理已有数据(Insert Overwrite):先清空表中的原有数据,再向表或静态分区中插入数据。

      空字符串转为Null写入

      如果源头数据为空字符串,在向目标MaxCompute列写入时是否转为Null值写入。默认值为否。

      同步完成才可见

      单击高级配置后才会显示该参数。

      同步到MaxCompute中的数据是否在同步完成后才能被查询到。默认值为否。

    2. 配置字段映射。

      配置数据来源与数据去向后,需要指定来源字段目标字段的映射关系。配置字段映射关系后,任务将根据字段映射关系,将源表字段写入目标表对应类型的字段中。更多信息,请参见配置字段映射关系

    3. 配置通道控制。

      您可以通过通道配置,控制数据同步过程相关属性。相关参数说明详情可参见离线同步并发和限流之间的关系

    4. 单击image.png图标,保存配置。

    脚本模式

    1. 配置任务步骤,单击image.png图标,然后在弹出的对话框中单击确定image

    2. 在脚本配置页面,编辑脚本。

      脚本配置示例如下,请根据您的同步信息和需求替换配置文件内的参数信息。

      {
        "type": "job",
        "version": "2.0",
        "steps": [
          {
            "stepType": "ots",
            "parameter": {
              "datasource": "MyTablestoreDataSource",
              "table": "source_table",
              "newVersion": "true",
              "column": [
                {
                  "name": "pk"
                },
                {
                  "name": "col_string"
                },
                {
                  "name": "col_long"
                },
                {
                  "name": "col_double"
                },
                {
                  "name": "col_bool"
                },
                {
                  "name": "col_binary"
                }
              ]
            },
            "name": "Reader",
            "category": "reader"
          },
          {
            "stepType": "odps",
            "parameter": {
              "partition": "",
              "truncate": true,
              "datasource": "MyMaxComputeDataSource",
              "table": "target_table",
              "column": [
                "pk", "col_string", "col_long", "col_double", "col_bool", "col_binary"
              ]
            },
            "name": "Writer",
            "category": "writer"
          },
          {
            "name": "Processor",
            "stepType": null,
            "category": "processor",
            "parameter": {}
          }
        ],
        "setting": {
          "executeMode": null,
          "errorLimit": {
            "record": "0"
          },
          "speed": {
            "throttle": true,
            "concurrent": 1,
            "mbps": "12"
          }
        },
        "order": {
          "hops": [
            {
              "from": "Reader",
              "to": "Writer"
            }
          ]
        }
      }
      • Tablestore Reader需要替换的参数说明如下:

        参数名称

        说明

        datasource

        源表的Tablestore数据源名称。

        table

        源表名称。

        column

        读取源表的列信息。

      • MaxCompute Writer需要替换的参数说明如下:

        参数名称

        说明

        datasource

        目标表的MaxCompute数据源名称。

        table

        目标表名称。

        column

        需要写入的属性列。

        重要

        写入目标表的列顺序必须与读取源表的列顺序保持一致。

    3. 单击image.png图标,保存配置。

运行同步任务

  1. 单击1680170333627-a1e19a43-4e2a-4340-9564-f53f2fa6806e图标。

  2. 参数对话框,选择运行资源组的名称。

  3. 单击运行

数据开发(Data Studio)新版

一、新建任务节点

  1. 进入数据开发页面。

    1. 登录DataWorks控制台

    2. 在页面上方,选择资源组和地域。

    3. 在左侧导航栏,单击数据开发与运维 > 数据开发

    4. 数据开发页面的下拉框中,选择对应工作空间后单击进入Data Studio

  2. DataStudio控制台的数据开发页面,单击项目目录右侧的image图标,然后选择新建节点 > 数据集成 > 离线同步

    说明

    首次使用项目目录时,也可以直接单击新建节点按钮。

  3. 新建节点对话框,选择路径并填写名称,然后单击确认

    项目目录下,将显示新建的离线同步节点。

二、配置同步任务

  1. 项目目录下,单击打开新建的离线同步任务节点。

  2. 配置网络与资源。

    选择离线同步任务的数据来源、数据去向以及用于执行同步任务的资源组,并测试连通性。

    1. 网络与资源配置步骤,选择数据来源Tablestore,并选择数据源名称为新增的表格存储数据源。

    2. 选择资源组。

      选择资源组后,系统会显示资源组的地域、规格等信息以及自动测试资源组与所选数据源之间连通性。

      说明

      Serverless资源组支持为同步任务指定运行CU上限,如果您的同步任务因资源不足出现OOM现象,请适当调整资源组的CU占用取值。

    3. 选择数据去向MaxCompute(ODPS),并选择数据源名称为新增的MaxCompute数据源。

      系统会自动测试资源组与所选数据源之间连通性。

    4. 测试可连通后,单击下一步

  3. 配置任务并保存。

    向导模式

    1. 配置任务步骤的配置数据来源与去向区域,根据实际情况配置数据来源和数据去向。

      数据来源

      参数

      说明

      数据源

      默认显示上一步选择的Tablestore数据源。

      源数据表。

      主键区间分布(起始)

      数据读取的起始主键和结束主键,格式为JSON数组。

      起始主键和结束主键需要是有效的主键或者是由INF_MININF_MAX类型组成的虚拟点,虚拟点的列数必须与主键相同。其中INF_MIN表示无限小,任何类型的值都比它大;INF_MAX表示无限大,任何类型的值都比它小。

      数据表中的行按主键从小到大排序,读取范围是一个左闭右开的区间,返回的数据是大于等于起始主键且小于结束主键的所有行。

      主键区间分布(结束)

      切分配置信息

      自定义切分配置信息,普通情况下不建议配置。

      Tablestore数据存储发生热点,且使用Tablestore Reader自动切分的策略不能生效时,建议使用自定义的切分规则。切分指定的是在主键起始和结束区间内的切分点,仅配置切分键,无需指定全部的主键。格式为JSON数组。

      数据去向

      参数

      说明

      数据源

      默认显示上一步选择的MaxCompute数据源。

      Tunnel资源组

      Tunnel Quota,默认值为公共传输资源,即MC的免费quota。

      MaxCompute的数据传输资源选择,具体请参见购买与使用独享数据传输服务资源组

      说明

      如果独享tunnel quota因欠费或到期不可用,任务在运行中将会自动切换为“公共传输资源”。

      目标MaxCompute表。

      分区信息

      如果您每日增量数据限定在对应日期的分区中,可以使用分区做每日增量,比如配置分区pt值为${bizdate}。

      写入模式

      数据写入表中的模式。取值范围如下:

      • 写入前保留已有数据(Insert Into):直接向表或静态分区中插入数据。

      • 写入前清理已有数据(Insert Overwrite):先清空表中的原有数据,再向表或静态分区中插入数据。

      空字符串转为Null写入

      如果源头数据为空字符串,在向目标MaxCompute列写入时是否转为Null值写入。默认值为否。

      同步完成才可见

      单击高级配置后才会显示该参数。

      同步到MaxCompute中的数据是否在同步完成后才能被查询到。默认值为否。

    2. 配置字段映射。

      配置数据来源与数据去向后,需要指定来源字段目标字段的映射关系。配置字段映射关系后,任务将根据字段映射关系,将源表字段写入目标表对应类型的字段中。更多信息,请参见配置字段映射关系

    3. 配置通道控制。

      您可以通过通道配置,控制数据同步过程相关属性。相关参数说明详情可参见离线同步并发和限流之间的关系

    4. 单击保存,保存配置。

    脚本模式

    1. 配置任务步骤,单击脚本模式,然后在弹出的对话框中单击确定image

    2. 在脚本配置页面,编辑脚本。

      脚本配置示例如下,请根据您的同步信息和需求替换配置文件内的参数信息。

      {
        "type": "job",
        "version": "2.0",
        "steps": [
          {
            "stepType": "ots",
            "parameter": {
              "datasource": "MyTablestoreDataSource",
              "table": "source_table",
              "newVersion": "true",
              "column": [
                {
                  "name": "pk"
                },
                {
                  "name": "col_string"
                },
                {
                  "name": "col_long"
                },
                {
                  "name": "col_double"
                },
                {
                  "name": "col_bool"
                },
                {
                  "name": "col_binary"
                }
              ]
            },
            "name": "Reader",
            "category": "reader"
          },
          {
            "stepType": "odps",
            "parameter": {
              "partition": "",
              "truncate": true,
              "datasource": "MyMaxComputeDataSource",
              "table": "target_table",
              "column": [
                "pk", "col_string", "col_long", "col_double", "col_bool", "col_binary"
              ]
            },
            "name": "Writer",
            "category": "writer"
          },
          {
            "name": "Processor",
            "stepType": null,
            "category": "processor",
            "parameter": {}
          }
        ],
        "setting": {
          "executeMode": null,
          "errorLimit": {
            "record": "0"
          },
          "speed": {
            "throttle": true,
            "concurrent": 1,
            "mbps": "12"
          }
        },
        "order": {
          "hops": [
            {
              "from": "Reader",
              "to": "Writer"
            }
          ]
        }
      }
      • Tablestore Reader需要替换的参数说明如下:

        参数名称

        说明

        datasource

        源表的Tablestore数据源名称。

        table

        源表名称。

        column

        读取源表的列信息。

      • MaxCompute Writer需要替换的参数说明如下:

        参数名称

        说明

        datasource

        目标表的MaxCompute数据源名称。

        table

        目标表名称。

        column

        需要写入的属性列。

        重要

        写入目标表的列顺序必须与读取源表的列顺序保持一致。

    3. 单击保存,保存配置。

三、运行同步任务

  1. 单击任务右侧的调试配置,选择运行的资源组。

  2. 单击运行

步骤四:查看同步结果

运行同步任务后,您可以通过日志查看任务的执行状态,并在DataWorks控制台查看目标数据表的同步结果。

  1. 查看任务执行状态。

    1. 在同步任务的结果页签,查看Current task status对应的状态。

      Current task status的值为FINISH时,表示任务运行完成。

    2. 如需查看更详细的运行日志,您可以单击Detail log url对应的链接。

  2. 查看目标表的同步结果。

    DataWorks控制台的数据地图模块,您可以查看目标MaxCompute表的详细信息。更多信息,请参见MaxCompute表数据

常见问题