OSS数据离线同步至MaxCompute

本文以OSS离线同步写入MaxCompute场景为例,为您介绍OSS离线同步在数据源配置、网络联通、同步任务配置方面的最佳实践。

背景信息

阿里云对象存储OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的云存储服务,提供99.9999999999%(12个9)的数据持久性,99.995%的数据可用性。还有多种存储类型供您选择,全面优化存储成本。数据集成支持从OSS同步数据到其他目标端,也支持从其他目标端同步数据到OSS。本文以OSS离线同步写入MaxCompute为例,为您介绍OSS离线同步的完整流程。

获取OSS Bucket信息

进入OSS产品控制台。在Bucket列表下,找到您要进行数据同步的OSS Bucket,在Bucket信息页面概览处获取OSS Bucket的外网访问端口、内网访问端口。您可以根据不同的场景选择不同的访问端口。

  • 外网指的是互联网。通过外网访问OSS产生的流入流量(写)是免费的,流出流量(读)是收费的。OSS费用详情请参见OSS产品定价计费项

  • 内网指的是阿里云同地域产品之间的内部通信网络。例如您可以通过数据集成资源组访问同地域的OSS服务。内网产生的流入和流出流量均免费,如果您读写与数据集成资源组同地域的OSS Bucket,您可配置内网访问端口,否则,建议您配置外网访问端口。

  • Region和Endpoint对照表请参见访问域名和数据中心

bucket基本信息

添加数据源

新建OSS数据源

在DataWorks数据源管理页面,单击新建数据源,根据界面提示新建OSS数据源。OSS数据源支持RAM角色授权模式Access Key认证模式两种方式:

配置完成后,单击测试连通性,选择您已经完成与OSS网络联通的数据集成独享资源组,确保连通状态为可连通,即可实现OSS与对应数据集成独享资源组的网络联通。

新增MaxCompute数据源

新增MaxCompute数据源。详情请参见创建MaxCompute数据源

新建离线同步任务

在数据开发(DataStudio)页面的某个业务流程下,新建一个离线同步节点,根据界面提示配置节点的路径、名称等信息,操作详情请参见通过向导模式配置离线同步任务

配置数据来源:OSS侧参数

配置离线同步节点的数据来源相关参数。本实践将OSS数据增量同步至MaxCompute,数据来源为OSS文件,配置要点如下所示。oss

配置项

配置要点

数据源

选择上述新建的OSS数据源。

文本类型

选择您要同步的文件类型,目前向导模式支持读取CSV、TXT两种文件格式。

  • TXT:是一个纯文本文件,文本格式没有任何限制,您可以在此文件中存储任何类型的文本。

  • CSV(Comma-Separated Values,逗号分隔值,有时也称为字符分隔值,因为分隔字符也可以不是逗号):其文件以纯文本形式存储表格数据(数字和文本)。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。

文件路径

填写您要同步的文件路径。

  • 当指定单个OSS Object时,OSS Reader暂时只能使用单线程进行数据抽取。

  • 当指定多个OSS Object时,OSS Reader支持使用多线程进行数据抽取。可以根据具体要求配置线程并发数。

  • 当指定通配符时,OSS Reader尝试遍历出多个Object信息。例如配置为abc*[0-9]时,可以匹配到abc0abc1abc2abc3等;配置为abc?.txt时,可以匹配到以abc开头、 .txt结尾、中间有1个任意字符的文件。

列分隔符

配置CSV、TXT文件的列分隔符。

编码格式

设置读取源头文件所用的编码格式。

null值

null值定义了源头哪些字符串可以表示为null。例如,配置nullFormat="null",那么如果源头数据是null,数据同步系统会视作null字段。

压缩格式

源头文件的压缩格式,支持gzip、bzip2和zip。None为无压缩。

是否包含表头

类CSV格式文件可能存在表头为标题情况,可选择是否需要跳过。默认不跳过。

说明

压缩文件模式下不支持跳过表头。

配置数据去向:MaxCompute侧参数

本实践将数据同步至MaxCompute,数据去向是MaxCompute。配置要点如下。来源MaxCompute

配置项

配置要点

数据源

选择上述新建的MaxCompute数据源。如果您使用的是标准类型的DataWorks工作空间,会分别显示开发和生产项目的名称。

选择待同步的MaxCompute表。如果您使用的是标准类型的DataWorks工作空间,请确保在MaxCompute的开发环境和生产环境中存在同名且表结构一致的MaxCompute表。

说明

如果:

  • 开发环境不存在待同步的MaxCompute表,则选择此处配置离线同步节点的去向表的下拉框中无法搜到待同步表。

  • 生产环境不存在待同步的MaxCompute表,同步任务提交发布后,数据同步任务调度运行时将会由于无法找到待同步表而导致同步任务运行失败。

  • 开发环境和生产环境的表结构不一致,同步任务提交发布后,同步任务实际调度运行时的列对应关系,可能与此处离线同步节点配置的列对应关系不一致,最终导致数据写入不正确。

分区信息

如果表为分区表,您可以填入分区列的取值。

  • 取值可以是固定值,如ds=20220101

  • 取值可以是调度系统参数,如ds=${bizdate},当任务运行时,会自动替换调度系统参数。

其他参数保持默认即可。

配置字段映射

选择数据来源和数据去向后,需要指定读取端和写入端列的映射关系。您可以选择同名映射、同行映射、取消映射或自动排版。

配置通道控制

设置任务同步并发数,可容忍的脏数据条数等。

调度配置

单击右侧的调度配置,本实践示例涉及的调度配置要点如下。通用的调度配置指导及全量调度相关参数的介绍请参见调度配置

  • 重跑属性。

    可根据业务需求设置不同的重跑策略,设置失败可重跑策略可以有效降低因为网络抖动等偶发问题导致的任务失败。

  • 配置调度依赖。

    可根据业务需求设置不同的调度依赖。您可以通过设置依赖上一周期的本节点,保证本节点多个调度周期的任务实例是依次执行完成的,避免多任务实例同时调度运行。

数据集成资源组配置

单击右侧数据集成资源组配置按钮设置同步任务运行的同步资源组。选择在创建数据源时,与OSS数据源、MaxCompute数据源都完成连通性检查的数据集成资源组。资源组配置

试运行与提交执行任务

试运行

单击顶部的运行运行带参运行带参运行,可以试运行并查看同步结果是否符合预期。带参运行可以针对任务配置中使用的调度系统参数进行替换。

提交和发布任务

试运行没有问题后,您可以保存离线节点的配置,并提交发布至运维中心,后续离线同步任务将会周期性(分钟或小时或天)将OSS的数据写入MaxCompute的表中。提交发布的操作请参见发布任务

发布成功后,您可以在运维中心查看周期调度运行结果、进行补数据等操作。详情请参见周期任务运维