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