数据集成服务

当您的现有业务对数据库的并发读写、扩展性和可用性的要求较高,且需要使用复杂的检索或大数据分析时,如果原有数据库的数据架构不能满足现在的业务需求或改造成本较大,则您可以通过DataWorks数据集成服务将现有数据库中的数据迁移到Tablestore表中存储和使用。您还可以通过DataWorks数据集成服务实现表格存储表中数据的跨实例或者跨账号迁移以及将表格存储数据迁移到OSS或者MaxCompute中备份和使用。

应用场景

DataWorks数据集成是稳定高效、弹性伸缩的数据同步平台,适用于MySQL、Oracle、MaxCompute、Tablestore等多种异构数据源之间的数据迁移同步。

表格存储支持通过DataWorks数据集成实现的数据迁移场景包括将数据库数据迁移到表格存储、表格存储数据跨实例或者跨账号迁移同步和将表格存储数据迁移到OSS或者MaxCompute。

将数据库数据迁移到表格存储

DataWorks提供各种异构数据源之间稳定高效的数据同步功能,可以实现将多种数据库迁移到表格存储,如下图所示。

说明

DataWorks支持的数据源与读写插件详情请参见DataWorks支持的数据源与读写插件

image.png

表格存储数据跨实例或者跨账号迁移同步

通过在DataWorks中配置表格存储相关的ReaderWriter插件,即可以完成表格存储数据表或者时序表的数据复制,如下图所示。表格存储相关的插件说明请参见下表。

插件

说明

OTSReader

用于读取表格存储表中的数据,并可以通过指定抽取数据范围实现数据增量抽取的需求。

OTSStreamReader

用于增量导出表格存储表中的数据。

OTSWriter

用于向表格存储中写入数据。

image.png

将表格存储数据迁移到OSS或者MaxCompute

表格存储数据支持迁移到OSS或者MaxCompute,请根据实际场景选择。

迁移方案

请根据实际业务需求通过DataWorks数据集成实现表格存储与不同数据源之间的数据迁移。

  • 数据导入的迁移方案包括同步MySQL数据到表格存储、同步Oracle数据到表格存储、同步Kafka数据到表格存储、同步HBase数据到表格存储、同步MaxCompute数据到表格存储、同步表格存储数据表中数据到另一个数据表和同步表格存储时序表中数据到另一个时序表。

  • 数据导出的迁移方案包括同步表格存储数据到MaxCompute和同步表格存储数据到OSS。

数据导入

数据导入相关的迁移方案说明请参见下表。

迁移方案

说明

同步MySQL数据到表格存储

MySQL数据库中的数据只能迁移到表格存储的数据表中。

迁移过程中会使用到MySQLReader脚本配置和表格存储的Writer脚本配置,具体数据源配置如下:

同步Oracle数据到表格存储

Oracle数据库中的数据只能迁移到表格存储的数据表中。

迁移过程中会使用到OracleReader脚本配置和表格存储的Writer脚本配置。具体数据源配置如下:

同步Kafka数据到表格存储

Kafka中的数据支持迁移到表格存储的数据表或者时序表中。

重要
  • 通过DataWorks数据集成服务,只能迁移Kafka数据到表格存储的数据表中。如果需要迁移Kafka数据到表格存储的时序表中,请使用Tablestore Sink Connector实现。具体操作,请参见同步Kafka数据到表格存储时序表

  • 由于表格存储支持宽表模型和时序模型,迁移Kafka数据前请根据实际业务场景选择合适的表格存储数据模型使用。更多信息,请参见宽表模型时序模型

迁移过程中会使用到KafkaReader脚本配置和表格存储的Writer脚本配置。具体数据源配置如下:

同步HBase数据到表格存储

HBase数据库中数据只支持迁移到表格存储的数据表中。

迁移过程中会使用到HBaseReader脚本配置和表格存储的Writer脚本配置。具体数据源配置如下:

同步MaxCompute数据到表格存储

MaxCompute的数据只支持迁移到表格存储的数据表中。

迁移过程中会使用到MaxComputeReader脚本配置和表格存储的Writer脚本配置。具体数据源配置如下:

同步PolarDB-X 2.0数据到表格存储

PolarDB-X 2.0的数据只支持迁移到表格存储的数据表中。

迁移过程中会使用到PolarDB-X 2.0Reader脚本配置和表格存储的Writer脚本配置,具体数据源配置如下:

同步表格存储数据表中数据到另一个数据表

表格存储数据表数据只支持迁移到表格存储另一个数据表中。

迁移过程中会使用到表格存储的Reader脚本配置和Writer脚本配置,具体数据源配置请参见Tablestore数据源。实际使用过程中请参考读写宽表数据的相关内容进行配置。

同步表格存储时序表中数据到另一个时序表

表格存储时序表数据只支持迁移到表格存储另一个时序表中。

迁移过程中会使用到表格存储的Reader脚本配置和Writer脚本配置,具体数据源配置请参见Tablestore数据源。实际使用过程中请参考读写时序数据的相关内容进行配置。

数据导出

数据导出相关的迁移方案说明请参见下表。

迁移方案

说明

同步表格存储数据到MaxCompute

您可以使用MaxCompute备份表格存储数据或者将表格存储数据迁移到MaxCompute中使用。

迁移过程中会使用到表格存储的Reader脚本配置和MaxComputeWriter脚本配置。具体数据源配置如下:

同步表格存储数据到OSS

同步到OSS中的文件可自由下载,也可作为表格存储数据的备份存储于OSS。

迁移过程中会使用到表格存储的Reader脚本配置和OSSWriter脚本配置。具体数据源配置如下:

前提条件

确定迁移方案后,完成相应准备工作。

  • 已确保源数据源和DataWorks之间以及目标数据源和DataWorks之间的网络连通。

  • 已完成源数据源的版本确认、账号准备、权限配置、产品特有配置等操作。更多信息,请参见相应数据源文档中的配置要求。

  • 已完成目标数据源的服务开通、所需资源创建等操作。更多信息,请参见相应数据源文档中的配置要求。

注意事项

重要

如果使用过程中遇到任何问题,请提交工单或者加入钉钉群36165029092(表格存储技术交流群-3)联系我们。

  • 请确保DataWorks数据集成服务支持迁移相应产品版本的数据。

  • 目标数据源的数据类型必须与源数据源的数据类型相匹配,否则迁移过程中会产生脏数据。

  • 确定迁移方案后,请务必仔细阅读相应数据源文档中的使用限制、注意事项等信息。

  • 迁移Kafka数据前,请务必根据实际业务场景选择合适的表格存储数据模型存储数据。

配置流程

请根据迁移方案了解通过DataWorks数据集成实现数据迁移的配置流程。

image

具体步骤说明请参见下表。

序号

步骤

说明

1

新增源数据源和目标数据源

请根据迁移方案创建所需数据源。

  • 如果要进行数据导入操作,则目标数据源为表格存储数据源,源数据源为其他数据源(例如MySQL数据源、MaxCompute数据源)或者表格存储数据源。

  • 如果要进行数据导出操作,则源数据源为表格存储数据源,目标数据源为MaxCompute数据源或者OSS数据源。

2

通过向导模式配置离线同步任务

DataWorks数据集成提供向导式的开发引导,通过可视化的填写和下一步的引导,助您快速完成数据同步任务的配置工作。向导模式的学习成本低,但无法支持部分高级功能。

3

数据迁移结果验证

请根据迁移方案在相应数据源中查看导入的数据。

  • 完成数据导入操作后,请在表格存储控制台查看导入的数据。

  • 完成数据导出操作后,请在MaxCompute控制台或OSS控制台查看导入的数据。

配置示例

数据导入

通过DataWorks数据集成,您可以导入MySQL、Oracle、MaxCompute等数据到表格存储数据表中。此处以同步MaxCompute数据到表格存储数据表为例介绍数据迁移操作。

前提条件

请确保已完成以下准备工作后再进行后续操作。

  • 已确认和记录MaxCompute中要同步到表格存储的表信息。

  • 已创建RAM用户并为RAM用户授予管理表格存储权限(AliyunOTSFullAccess)和管理DataWorks权限(AliyunDataWorksFullAccess)。具体操作,请参见创建RAM用户RAM用户授权

  • 已为RAM用户创建AccessKey。具体操作,请参见创建AccessKey

  • 已开通DataWorks服务并创建工作空间。具体操作,请参见开通DataWorks服务创建工作空间

  • 已开通表格存储服务,创建表格存储实例以及创建数据表。具体操作,请参见开通表格存储服务创建实例创建数据表

    重要

    表格存储中数据表主键的名称和类型必须与MaxCompute中要写入主键的名称和类型相匹配。表格存储中数据表属性列不需要定义,属性列的列名可在写入数据时指定。

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

此处以创建表格存储数据源为例介绍数据源的新增操作,请根据实际创建所需数据源。

重要

当新增MaxCompute数据源时,只需在新增数据源对话框找到并单击MaxCompute后进行相应配置即可。

  1. 进入数据集成页面。

    1. 以项目管理员身份登录DataWorks控制台

    2. 在左侧导航栏,单击工作空间列表后,选择地域。

    3. 工作空间列表页面,在目标工作空间操作列选择快速进入>数据集成

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

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

  4. 新增数据源对话框,找到Tablestore区块,单击Tablestore

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

    参数

    说明

    数据源名称

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

    数据源描述

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

    Endpoint

    Tablestore实例的服务地址。更多信息,请参见服务地址

    如果Tablestore实例和目标数据源的资源在同一个地域,填写VPC地址;如果Tablestore实例和目标数据源的资源不在同一个地域,填写公网地址。

    Table Store实例名称

    Tablestore实例的名称。更多信息,请参见实例

    AccessKey ID

    阿里云账号或者RAM用户的AccessKey IDAccessKey Secret。获取方式请参见创建AccessKey

    AccessKey Secret

  6. 测试资源组连通性。

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

    重要

    数据同步时,一个任务只能使用一种资源组。资源组列表默认显示仅数据集成公共资源组。为确保数据同步的稳定性和性能要求,推荐使用独享数据集成资源组。

    1. 单击前往购买进行全新创建或单击绑定已购资源组绑定已有资源组。具体操作,请参见新增和使用独享数据集成资源组

    2. 单击相应资源组操作列的测试连通性

      当连通状态显示为可连通时,表示连通成功。

  7. 测试连通性通过后,单击完成

    在数据源列表中,可以查看新建的数据源。

步骤二:通过向导模式配置离线同步任务

  1. 新增同步任务节点。

    1. 进入数据开发页面。

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

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

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

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

    4. 新建节点对话框,输入名称,然后单击确认

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

  2. 配置网络与资源链路。

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

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

    2. 网络与资源配置步骤,选择数据来源MaxCompute(ODPS),并选择数据源名称MaxCompute数据源。

    3. 选择资源组。

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

      重要

      请与新增数据源时选择的资源组保持一致。

    4. 选择数据去向OTS,并选择数据源名称为表格存储数据源。

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

    5. 测试数据源可连通后,单击下一步

  3. 配置数据来源与数据去向。

    1. 配置数据来源与去向区域,根据下表说明配置数据来源。

      参数

      说明

      Tunnel资源组

      MaxCompute的数据传输资源。默认值为公共传输资源,即MaxCompute的免费配额。

      说明

      部分地域支持使用独享数据传输资源组来获取更好的数据同步稳定性和同步的并发数。具体操作,请参见购买与使用独享数据传输服务资源组

      MaxCompute中的表名称。

      分区信息

      读取的数据所在的分区信息。

    2. 配置数据来源与去向区域,根据下表说明配置数据去向。

      参数

      说明

      表格存储中的数据表名称。

      主键信息

      表格存储数据表的主键信息,以JSON格式的数组表示。数据表的主键由1~4个主键列组成,请根据实际主键列个数进行配置。

      重要

      主键信息的主键列个数、顺序以及类型必须与数据表中实际的主键配置信息一致。

      配置示例如下:

      [
       {
       "name": "pk",
       "type": "string"
       }
      ]

      写入模式

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

      • PutRow:对应于Tablestore API PutRow,插入数据到指定的行。如果该行不存在,则新增一行。如果该行存在,则覆盖原有行。

      • UpdateRow:对应于Tablestore API UpdateRow,更新指定行的数据。如果该行不存在,则新增一行。如果该行存在,则根据请求的内容在这一行中新增、修改或者删除指定列的值。

  4. 配置字段映射关系。

    选择数据来源和数据去向后,需要指定读取端列和写入端列的映射关系,配置字段映射关系后,任务将根据字段映射关系,将源端字段写入目标端对应类型的字段中。系统默认按同行映射执行字段映射。

    重要
    • 如需改变映射顺序,您可以单击来源字段后的目标字段后的image.png图标进行编辑。其中来源字段中的单个字段直接填写字段名称即可,目标字段中的单个字段要以JSON格式表示,例如{"name":"age","type":"INTEGER"}。一行表示一个字段。

    • 表格存储中数据表属性列的数据类型必须与MaxCompute中要写入字段的数据类型相匹配。数据表属性列的名称可与MaxCompute中要写入的字段名称不同,

    由于数据去向参数中默认会配置主键列信息,因此您需要手动删除目标字段中的主键列信息,否则任务执行失败。

    1. 单击目标字段后的image.png图标。

    2. 手动编辑表字段对话框中,删除目标字段中的主键列信息,并根据需要增加或修改属性列信息。

    3. 单击确认

  5. 配置通道。

    通道控制区域,配置任务运行参数,例如同步速率、脏数据同步策略等。关于参数配置的更多信息,请参见配置通道

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

    说明

    执行后续操作时,如果未保存配置,则系统会出现保存确认的提示,单击确认即可。

  7. 执行同步任务。

    重要

    全量数据一般只需要同步一次,无需配置调度属性。

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

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

    3. 单击运行

      运行结束后,在同步任务的运行日志页签,单击Detail log url对应的链接后。在任务的详细运行日志页面,查看Current task status对应的状态。

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

步骤三:查看导入到表格存储中的数据

在表格存储控制台查看表格存储数据同步结果。

  1. 登录表格存储控制台

  2. 概览页面上方,选择地域。

  3. 单击实例名称。

  4. 实例详情页签下的数据表列表页签,单击目标数据表名称。

  5. 数据管理页签,即可查看同步到该数据表中的数据。

数据导出

通过DataWorks数据集成,您可以将表格存储数据导出到MaxComputeOSS中。

计费说明

  • 当导入数据到表格存储时,表格存储会根据数据存储量收取相应存储费用。

  • 通过迁移工具访问表格存储时,表格存储会根据所用计费方式收取读写数据的费用。

    计费模式

    计算能力说明

    VCU模式(预留模式)

    按照资源评估结果预先购买预留VCU或开启弹性能力后按实际使用量支付计算性能消耗费用。计算能力中涵盖数据读写的计算消耗。

    CU模式(按量模式)

    根据具体的读写请求按照读写吞吐量计量计费。同时根据实例类型不同,计费时需要区分按量读写CU以及预留读写CU。

    说明

    关于实例类型和CU的更多信息,请分别参见实例读写吞吐量

  • 使用DataWorks工具时,DataWorks会收取相关的功能费用和资源费用。更多信息,请参见DataWorks购买指引

其他方案

您可以根据需要下载表格存储数据到本地文件。具体操作,请参见将表格存储数据下载到本地文件

您也可以通过DataX、通道服务等其他迁移工具完成数据导入。

迁移工具

说明

迁移方案

DataX

DataX将不同数据源的同步抽象为从源头数据源读取数据的Reader插件,以及向目标端写入数据的Writer插件。

通道服务

通道服务(Tunnel Service)是基于表格存储数据接口之上的全增量一体化服务。适用于源表为表格存储数据表的数据迁移同步。

通道服务提供了增量、全量、增量加全量三种类型的分布式数据实时消费通道。通过为数据表建立数据通道,可以简单地实现对表中历史存量和新增数据的消费处理。

同步表格存储数据表中数据到另一个数据表

数据传输服务DTS

数据传输服务DTS(Data Transmission Service)是阿里云提供的实时数据流服务,支持关系型数据库(RDBMS)、非关系型数据库(NoSQL)、数据多维分析(OLAP)等数据源间的数据交互,集数据同步、迁移、订阅、集成、加工于一体,助您构建安全、可扩展、高可用的数据架构。

canal

canal基于MySQL数据库增量日志解析,提供增量数据订阅和消费功能,是阿里开源CDC工具,它可以获取MySQL binlog数据并解析,然后将数据变动传输给下游。基于canal,您可以实现从MySQL到其他数据库的实时同步。

同步MySQL数据到表格存储

Tapdata Cloud

Tapdata Cloud是由Tapdata提供的集数据复制、数据开发为一体的实时数据服务,能够在跨云、跨地域、多类型数据源的场景下,提供毫秒级的实时数据同步服务和数据融合服务。

附录:字段类型映射

以下列出了常用产品与表格存储的字段类型映射关系,实际使用时请按照相应字段类型映射信息进行字段映射配置。

MaxComputeTablestore字段类型映射

MaxCompute字段类型

Tablestore字段类型

STRING

STRING

BIGINT

INTEGER

DOUBLE

DOUBLE

BOOLEAN

BOOLEAN

BINARY

BINARY

MySQLTablestore字段类型映射

MySQL字段类型

Tablestore字段类型

STRING

STRING

INT、INTEGER

INTEGER

DOUBLE、FLOAT、DECIMAL

DOUBLE

BOOL、BOOLEAN

BOOLEAN

BINARY

BINARY

KafkaTablestore字段类型映射

Kafka Schema Type

Tablestore字段类型

STRING

STRING

INT8、INT16、INT32、INT64

INTEGER

FLOAT32、FLOAT64

DOUBLE

BOOLEAN

BOOLEAN

BYTES

BINARY