MaxCompute支持通过DataWorks的数据集成功能将其他数据源的数据以离线或实时方式导入MaxCompute。当您需要将其他数据源的数据导入MaxCompute中执行后续数据处理操作时,您可以使用数据集成功能导入数据。本文为您介绍如何将其他数据源的数据导入MaxCompute。
使用限制
离线导入场景中,每个离线同步节点仅支持将单张或多张表数据导入至MaxCompute的一张表中。
离线导入
- 添加MaxCompute数据源。
- 登录DataWorks控制台。
- 在左侧导航栏,单击工作空间列表。
- 选择工作空间所在地域后,单击相应工作空间后的数据集成。
- 在左侧导航栏,单击数据源,进入数据源管理页面。
- 在数据源管理页面,单击右上角的新增数据源。
- 在新增数据源对话框中,选择数据源类型为MaxCompute。
- 在新增MaxCompute数据源对话框中,配置各项参数。
参数 |
描述 |
数据源名称 |
数据源名称必须以字母、数字、下划线(_)组合,且不能以数字和下划线(_)开头。 |
数据源描述 |
对数据源进行简单描述,不得超过80个字符。 |
适用环境 |
可以选择开发或生产环境。
|
ODPS Endpoint |
默认只读,从系统配置中自动读取。 |
Tunnel Endpoint |
MaxCompute Tunnel服务的连接地址,详情请参见Endpoint。
|
ODPS项目名称 |
MaxCompute项目名称。 |
AccessKey ID |
访问密钥中的AccessKey ID,您可以进入用户信息管理页面进行复制。
|
AccessKey Secret |
访问密钥中的AccessKey Secret,相当于登录密码。 |
- 选择资源组连通性类型为数据集成。
- 在资源组列表,单击相应资源组后的测试连通性。
数据同步时,一个任务只能使用一种资源组。您需要测试每种资源组的连通性,以保证同步任务使用的数据集成资源组能够与数据源连通,否则将无法正常执行数据同步任务。如果您需要同时测试多种资源组,请选中相应资源组后,单击
批量测试连通性。详情请参见
配置资源组与网络连通。
说明
- (推荐)资源组列表默认仅显示独享数据集成资源组,为确保数据同步的稳定性和性能要求,推荐使用独享数据集成资源组。
- 如果您需要测试公共资源组或自定义资源组的连通性,请在资源组列表右下方,单击更多选项,在警告对话框单击确定,资源组列表会显示可供选择的公共资源组和自定义资源组。
- 测试连通性通过后,单击完成。
- 添加待导出数据源。
请根据MaxCompute导出的目标数据源类型,完成添加数据源操作。更多添加数据源操作,请参见
配置数据源。
- 创建业务流程。
- 登录DataWorks控制台。
- 在左侧导航栏,单击工作空间列表。
- 选择工作空间所在地域后,单击相应工作空间后的数据开发。
- 在数据开发页面,鼠标悬停至
图标,单击业务流程。
- 在新建业务流程对话框中,输入业务名称和描述。
重要 业务名称必须是大小写字母、中文、数字、下划线(_)以及小数点(.),且不能超过128个字符。
- 单击新建。
- 创建离线同步节点。
- 展开业务流程,右键单击数据集成。
- 单击。
- 在新建节点对话框中,输入节点名称,并选择目标文件夹。
重要 节点名称必须是大小写字母、中文、数字、下划线(_)以及小数点(.),且不能超过128个字符。
- 单击提交。
- 配置并运行数据同步任务。
- 如果您采用向导模式配置并运行数据同步任务,转6。
- 如果您采用脚本模式配置并运行数据同步任务,转7。
- 通过向导模式配置并运行数据同步任务。
- 通过向导模式配置离线同步任务。
在数据来源下的
数据源下拉列表选择数据源类型为待导入的数据源类型及数据源名称,在
表下拉列表选择待导入数据的表。

- 通过向导模式配置离线同步任务。
在数据去向下的
数据源下拉列表选择数据源类型为
ODPS及目标MaxCompute数据源名称,在
表下拉列表选择目标表。

- 通过向导模式配置离线同步任务。
指定数据来源表和数据去向表间字段的映射关系。

- 通过向导模式配置离线同步任务。
- 通过向导模式配置离线同步任务。
在同步任务中配置调度参数进行数据过滤。
- 在顶部菜单栏,单击
图标后,单击
图标,运行离线同步任务。
- 通过脚本模式配置并运行数据同步任务。
- 通过脚本模式配置离线同步任务。
在
来源类型下拉列表选择待导入数据源类型,对应
数据源为待导入数据源名称。在
目标类型下拉列表选择
ODPS,对应
数据源为创建好的MaxCompute数据源名称。

- 通过脚本模式配置离线同步任务。
在脚本中配置离线同步任务读取的数据源,以及需要同步的表信息等。
{
"stepType": "mysql",
"parameter": {
"partition": [],
"datasource": "",
"envType": 0,
"column": [
"*"
],
"table": ""
},
"name": "Reader",
"category": "reader"
},
- stepType:待导入数据源的类型。
- partition:待导入表的分区信息。
- datasource:待导入数据源的名称。
- column:待导入表的列名称。需要与写入端MaxCompute中配置的列名称建立一一对应关系。
- table:待导入表的名称。
- name和category:取值为Reader,标识数据源为读取端。
- 通过脚本模式配置离线同步任务。
在脚本中配置离线同步任务写入的数据源,以及需要写入的表信息等。
{
"stepType":"odps",
"parameter":{
"partition":"",
"truncate":true,
"datasource":"odps_first",
"column":[
"*"
],
"table":""
},
"name":"Writer",
"category":"writer"
}
- stepType:目标数据源类型。设置为odps。
- partition:目标表的分区信息。您可以通过
show partitions <table_name>;
命令,查看表的分区信息。更多查看分区信息,请参见查看分区。
- datasource:MaxCompute数据源的名称。
- column:目标表的列名称。
- table:目标表的名称。您可以通过
show tables;
命令,查看表的名称。更多查看表信息,请参见表操作。
- name和category:取值为Writer,标识数据源为写入端。
- 通过向导模式配置离线同步任务。
"setting": {
"errorLimit": {
"record": "1024"
},
"speed": {
"throttle": false,
"concurrent": 1
}
},
- record:脏数据的最大容忍条数。
- throttle:设置是否进行限速。
- concurrent:设置离线同步任务内,可以从源并行读取或并行写入数据存储端的最大线程数。
- 通过向导模式配置离线同步任务。
- 在顶部菜单栏,单击
图标后,单击
图标,运行同步任务。
- 请前往MaxCompute数据源中确认MaxCompute表中是否已成功导入数据。
- 如果数据完整无遗漏,则同步完成。
- 如果数据未同步成功或数据存在遗漏,请参见离线同步常见问题。
同步单表数据(实时导入)
- 进入数据开发页面。
- 登录DataWorks控制台。
- 在左侧导航栏,单击工作空间列表。
- 选择工作空间所在地域后,单击相应工作空间后的进入数据开发。
- 鼠标悬停至
图标,单击。 您也可以展开目标业务流程,右键单击数据集成,选择。
- 在新建节点对话框中,选择同步方式为单表(Topic)到单表(Topic)ETL,输入节点名称,并选择目标文件夹。
重要 节点名称必须是大小写字母、中文、数字、下划线(_)以及英文句号(.),且不能超过128个字符。
- 单击提交。
- 在实时同步节点的编辑页面,单击并拖拽至编辑面板,连线已配置好的输入或转换节点。
- 单击MaxCompute节点,在节点配置对话框中,配置各项参数。

参数 |
描述 |
数据源 |
选择已经配置好的MaxCompute数据源,此处仅支持MaxCompute数据源。
如果您未配置数据源,请单击右侧的新建数据源,进入页面新建,详情请参见配置MaxCompute数据源。
|
表 |
选择当前数据源下需要同步的表名称。
您可以单击右侧的 一键建表创建新表,也可以单击 数据预览进行确认。
重要 新建目标数据表前,请先连线输入节点,并确认有输出字段。
|
分区方式 |
包括时间自动分区及根据字段内容动态分区。其中时间自动分区是根据_execute_time_字段进行分区的,详情请参见实时同步字段格式。根据字段内容动态分区通过指定源端表某字段与目标MaxCompute表分区字段对应关系,实现源端对应字段所在数据行写入到MaxCompute表对应的分区中。
|
分区讯息 |
为您展示MaxCompute分区表的信息。 |
字段映射 |
单击字段映射,设置源端和目标端字段的映射。同步任务会根据字段的映射关系同步数据。
|
如果您需要新建表,请单击
一键建表后,在
新建数据表对话框中,配置各项参数。

参数 |
描述 |
表名称 |
实时同步写入的MaxCompute表的名称。 |
生命周期 |
实时同步写入的MaxCompute表的生命时间长度,详情请参见生命周期。
|
数据字段结构 |
实时同步写入的MaxCompute表的字段结构。如果您需要新增字段,请单击添加。
|
分区设置 |
实时同步写入的MaxCompute表的分区信息。 实时同步写入MCompute表支持时间自动分区与根据字段内容动态分区两种分区方式
- 时间自动分区:根据_execute_time_字段将数据写入到对应时间分区中,详情请参见实时同步字段格式,

重要
- 您最少需要设置二级分区(月和年),最多支持设置五级分区(分钟、小时、天、月和年)。
- 关于MaxCompute表的介绍可参考文档:分区
- 根据字段内容动态分区:通过指定源端表某字段与目标MaxCompute表分区字段对应关系,实现源端对应字段所在数据行写入到MaxCompute表对应的分区中。
例如:配置MaxCompute表分区字段值来源为源端字段A,当A字段值为aa时,实时同步会将数据写入到MaxCompute表对应的aa分区中,当A字段值为bb时,实时同步会将数据写入到MaxCompute表对应的bb分区中。
|
- 单击工具栏中的
图标。