OSS单表离线同步至MaxCompute

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

背景信息

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

获取OSS Bucket信息

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

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

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

  • RegionEndpoint对照表请参见地域和Endpoint

前提条件

使用限制

暂不支持将源端数据同步至MaxCompute外部表。

操作步骤

说明

本文以数据开发(Data Studio)(新版)界面操作为例,演示离线同步任务配置。

一、新建节点与任务配置

对于通用的节点创建和向导配置步骤,本文将直接引用通用操作指南向导模式配置,不再赘述。

二、配置数据来源与去向

配置数据来源(OSS)

本文档将OSS数据单表离线同步至MaxCompute,数据来源为OSS文件,配置要点如下。

配置项

配置要点

文本类型

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

文件路径

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

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

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

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

列分隔符

配置文件中的列分隔符。

编码

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

null

  • 选择“不处理”时,即对于源端读取的值将继续保持原值不做任何处理

  • 选择“可见字符”时,请输入表示null值的字符串,置空则代表为空字符串。

  • 选择“不可见字符”时,请输入Unicode编码,比如\u001b\u007c,或者\t等转义符号,但不允许置空。

压缩格式

源头文件的压缩格式,支持GzipBzip2Zip和不压缩。

是否跳过表头

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

说明

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

表数据结构

数据来源相关参数配置完成后,请单击确认表数据结构,查看获取数据的格式是否符合预期。

配置数据去向(MaxCompute)

本文档将OSS数据单表离线同步至MaxCompute,数据去向为表,配置要点如下。

说明

下表中未说明参数保持默认即可。

配置项

配置要点

Tunnel资源组

MaxCompute的数据传输资源Tunnel Quota,默认选择“公共传输资源”,即MC的免费quota。如果独享Tunnel Quota因欠费或到期不可用,任务在运行中将会自动切换为“公共传输资源”。

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

您也可以单击一键生成目标表结构,系统将自动创建表接收数据,支持手动调整建表语句。

说明

如果:

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

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

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

分区信息

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

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

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

写入模式

写入目标表时可选择清理已有数据,或者保留已有数据。

三、配置字段映射

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

四、配置通道控制

离线同步任务支持设置任务期望最大并发数脏数据策略等。本教程脏数据策略配置为不容忍脏数据,其他配置保持默认。更多信息,请参见向导模式配置

五、调试配置并运行

  1. 单击离线同步节点编辑页面右侧的调试配置,设置调试运行使用的资源组脚本参数,然后单击顶部工具栏的运行,测试同步链路是否成功运行。

  2. 您可以在左侧导航栏单击image,然后单击个人目录右侧的image,创建一个后缀为.sql的文件,执行如下SQL查询数据去向表中的数据是否符合预期。

    说明
    SELECT * FROM <MaxCompute侧目标表名> WHERE pt=<指定分区> LIMIT 20;

六、调度配置与发布

单击离线同步任务右侧的调度配置,设置周期运行所需的调度配置参数后,单击顶部工具栏的发布,进入发布面板,根据页面提示完成发布