You need to enable JavaScript to run this app.
导航
配置 TOS 数据源
最近更新时间:2024.10.23 10:39:14首次发布时间:2022.09.15 17:46:56

对象存储 TOS(Tinder Object Storage)是火山引擎提供的海量、安全、低成本、易用、高可靠、高可用的分布式云存储服务。DataSail 中 TOS 数据源为您提供读取和写入 TOS 数据的双向通道能力,实现不同数据源与 TOS 进行数据传输。
本文将为您介绍 DataSail 的 TOS 数据同步的能力支持情况。

1 使用限制

  1. 子账号新建数据源时,需要有项目的管理员角色,方可以进行新建数据源操作。各角色对应权限说明,详见:管理成员

  2. 已开通 TOS 服务,并创建 TOS 存储桶。详见创建存储桶

  3. TOS Reader 实现了从 TOS 读取数据并转为数据集成协议的能力,TOS 本身为无结构化数据存储。对于数据集成而言,TOS Reader 功能支持情况如下:

    支持

    不支持

    • 支持 TXT,CSV 格式,支持自定义分隔符,字符集支持 UTF-8 格式或 GBK 格式。
    • 支持 PARQUET 格式。
    • 支持文本文件,文本文件每行支持 json 或 pb 解析。
    • 单个 Object(File)不支持多线程并发读取。
    • 单个 Object 在压缩情况下,从技术上无法支持多线程并发读取。
    • 单个 Object(File)不超过 100 GB。

    注意

    准备 TOS 数据时,如果数据为 TXT、CSV 文件,则文本字段中不能包含分隔符,否则会串行。

2 支持的字段类型

TOS Reader 支持的字段类型如下:

类型分类

数据集成 column 配置类型

整数类

LONG

字符串类

STRING

浮点类

DOUBLE

布尔类

BOOLEAN

日期时间类

DATE

3 数据同步任务开发

3.1 数据源注册

新建数据源操作详见配置数据源,以下为您介绍不同接入方式的 TOS 数据源配置相关信息:

  1. 火山引擎 TOS 接入方式
    其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。

    参数

    说明

    基本配置

    *数据源类型

    TOS

    *接入方式

    火山引擎 TOS

    *数据源名称

    数据源的名称,可自行设置,仅支持中文,英文,数字,“_”,100个字符以内。

    参数配置

    *TOS 对象存储桶

    下拉选择当前租户下已创建成功的 TOS 存储桶名称信息。若现有存储桶不符合您的要求,您可前往 TOS 控制台创建。
    创建操作详见创建存储桶

    *Access key ID

    进入火山引擎,访问控制台的密钥管理界面,复制 Accesskey ID 填写到此处。如果为子用户的 AK/SK 信息,可联系主账号获取或创建子用户密钥。详见秘钥管理

    说明

    填写的 AK\SK 信息,需要有对应存储桶的读取权限。

    *Secret Access Key

    与 Access Key ID 配套使用,类似登录密码,用于签名您的访问参数,以防被篡改。

  2. 连接串形式的接入方式
    其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。

    参数

    说明

    基本配置

    *数据源类型

    TOS

    *接入方式

    连接串

    *数据源名称

    数据源的名称,可自行设置,仅支持中文,英文,数字,“_”,100个字符以内。

    参数配置

    *TOS 对象存储桶

    连接串形式需手动填写想访问对应租户下的存储桶名称。

    *Accesskey ID

    进入火山引擎,访问控制台的密钥管理界面,复制 Accesskey ID 填写到此处。如果为子用户的 AK/SK 信息,可联系主账号获取或创建子用户密钥。详见秘钥管理

    说明

    填写的 AK\SK 信息,需要有对应存储桶的读取权限。

    *Secret Access Key

    与 AccessKey ID 配套使用,类似登录密码,用于签名您的访问参数,以防被篡改。

3.2 新建离线任务

TOS 数据源测试连通性成功后,进入到数据开发界面,开始新建 TOS 相关通道任务。新建任务方式详见离线数据同步
任务创建成功后,您可根据实际场景,配置 TOS 离线读、TOS 离线写或 TOS 流式写等通道任务。

3.3 可视化配置 TOS 离线读

Image
数据来源选择 TOS,并完成以下相关参数配置:
其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。

参数

说明

*数据源类型

下拉选择 TOS 数据源类型。

*数据源名称

已在数据源管理中注册成功的 TOS 数据源,下拉可选。
若还未建立相应数据源,可单击数据源管理按钮,前往创建 TOS 数据源。

*文件路径

填写需要采集的 TOS 数据文件所在路径,可在 TOS 中查看。

说明

  • 路径中包括 ^ , * , ? , [ , ] , { , } , ( , ) , \ 等符号,则会被判定为正则形式的路径。
  • 文件路径填写说明:
    • 不需要包含 Bucket 名称,且不用 / 开头;
    • 您可配置目录,可配置具体的文件名称。若配置目录,仅读取当前目录下的子文件,但不递归子目录;若配置具体的文件,不支持 “.” 或 “_” 开头的文件名;
    • 支持 “*” 通配符形式配置文件路径信息;
    • 支持配置日期正则参数形式,如 bigdata/t_user/${date}

*数据类型

支持选择 json、pb、parquet、csv、txt 等几种数据类型:

  • Parquet 类型:字段 Schema,可通过同名映射的方式配置。
  • Json 类型:
    数据类型为 json 时,需添加示例数据,以 json 字符串形式描述 schema,需填写完整的数据。例如:{"uid":123, "ut":12, "user_name": "xxx"}。 若没有示例数据,则 Schema 信息不准确,您需手动添加 Schema 字段映射配置。
  • csv、txt 类型:需添加分隔符、原始字符集、导入起始行参数:
    • 分隔符:选择原始文件的分隔符,如“,”、“Tab”、“;”等,下拉可选,同时也支持自定义分隔符的方式指定。
    • 原始字符集:需选择原始文件的字符集,支持选择 GBK、UTF-8 格式。
    • 导入起始行:无表头请填0,有表头请填1。
  • PB 类型:需填写 Pb 类定义和 Pb 类名信息
    • Pb 类定义:
      输入 Pb 类定义文件信息,只支持一个 Pb 类定义,填写示例如下:

      syntax = "proto2";
      package abase_test;
      message AbaseTest {
      required int64 first_id = 1;
      required int64 latest_id = 2;
      }
      
    • Pb 类名:Pb 类名需填写为 message 名称,例如上方定义的 Pb 类,对应 PB Class 为 AbaseTest。

3.4 可视化配置 TOS 离线写

Image
数据目标端选择 TOS,并完成以下相关参数配置:
其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。

参数

说明

*目标类型

下拉选择 TOS 数据源类型。

*数据源名称

已在数据源管理中注册成功的 TOS 数据源,下拉可选。
若还未建立相应数据源,可单击数据源管理按钮,前往创建 TOS 数据源。

*文件路径

填写需要写入的 TOS 数据文件所在路径,支持填写日期变量形式,如 ${date},具体路径可在 TOS 中查看。

说明

文件路径填写说明:

  • 不需要包含 Bucket 名称,且不用 / 开头;
  • 支持配置日期正则参数形式,如 bigdata/t_user/${date}

*文件名前缀

输入 TOS 目标文件名的前缀信息,如填写 tos_writer,则生成的文件名会以 tos_writer 开头。
文件名自动生成规则如下:
filePrefix_{jobId}{subTaskId}{file_count}_{generate_timestamp}.{fileFormat}.{compression_suffix}。

  • filePrefix:即您在输入框中输入的前缀信息;
  • jobId:当前任务 ID,可在调度设置 > 基本信息中查看;
  • subTaskId:并发 Task 的序号;
  • file_count:当前该 Task 写的第几个文件;
  • generate_timestamp:文件创建时间;
  • fileFormat:文件格式,即文本类型中选择的 csv、json 等类型;
  • compresion_suffix:文件压缩格式,如 .gz、.snappy 等格式,其中压缩格式为 None 时,文件名中显示为空

*文件名称冲突

依据实际业务场景,下拉选择数据写入时,针对文件名称冲突状况下的任务处理形式,支持以下三种处理方式:

  • 覆盖(替换原有文件): 默认为覆盖方式,先删除原有数据再写入新数据;
  • 追加(保留原有文件): 直接写入新数据;
  • 冲突报错:文件名称冲突时,任务会提示异常并退出。

*文本类型

支持选择 json、parquet、csv、orc 等几种数据类型:

  • json、parquet、orc 类型:无需填写其他配置信息。
  • csv 类型:需填写是否配置表头、分隔符信息:
    • 是否配置表头:根据实际情况,选择产出文件是否需要配置表头,若选择是,则默认将字段映射的所有字段配置为表头。
    • 分隔符:选择原始文件的分隔符,如“,”、“Tab”、“;”等,下拉可选,同时也支持自定义分隔符的方式指定。

*压缩格式

选择写入 TOS 中数据文件的压缩格式,支持选择 None、Snappy、Lz4、Gzip、Zstd 等压缩格式。

3.5 可视化配置 TOS 实时写

Image
流式集成任务实时写入 TOS 数据源,数据目标类型选择 TOS,并完成以下相关参数配置:
其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。

参数

说明

*目标类型

下拉选择 TOS 数据源类型。

*数据源名称

已在数据源管理中注册成功的 TOS 数据源,下拉可选。
若还未建立相应数据源,可单击数据源管理按钮,前往创建 TOS 数据源。

*TOS 保存地址

填写需要写入数据的 TOS 存储路径信息。

说明

文件路径填写说明:

  • 不需要包含 Bucket 名称,且不用 / 开头;
  • 支持配置日期正则参数形式,如 bigdata/t_user/${date}

3.5 字段映射

可视化离线读 TOS,数据来源和目标端配置完成后,需要指定来源和目标端的字段映射关系,根据字段映射关系,数据集成任务将源端字段中的数据,写入到目标端对应字段中。
字段映射支持选择基础模式转换模式配置映射:

注意

基础模式和转换模式不支持互相切换,模式切换后,将清空现有字段映射中所有配置信息,一旦切换无法撤销,需谨慎操作。

  • 转换模式:
    字段映射支持数据转换,您可根据实际业务需求进行配置,将源端采集的数据,事先通过数据转换后,以指定格式输入到目标端数据库中。
    转换模式详细操作说明详见4.1 转换模式
    在转换模式中,你可依次配置:来源节点、数据转换、目标节点信息:

    配置节点

    说明

    来源节点

    配置数据来源 Source 节点信息:

    • 节点名称:自定义输入来源节点名称信息,只允许由数字、字母、下划线、-和.组成;且长度不能超过10。
    • 数据字段:通过自动添加、手动添加等方式添加数据来源字段信息。

    配置完成后,单击确认按钮,完成来源节点配置。

    数据转换

    单击数据转换右侧添加按钮,选择 SQL 转换方式,配置转换信息和规则:

    • 节点名称:自定义输入来源节点名称信息,只允许由数字、字母、下划线、-和.组成;且长度不能超过10。
    • SQL 脚本:输入 SQL 脚本转换规则,目前仅支持添加一个转换的 SQL 语句,且不能包括 “;”。

    配置完成后,单击确认按钮,完成数据转换节点配置。SQL 脚本示例详见4.1.2 添加转换节点

    目标节点

    配置目标节点 Sink 信息:

    • 节点名称:自定义输入来源节点名称信息,只允许由数字、字母、下划线、-和.组成;且长度不能超过10。
    • 数据字段:通过自动添加、手动添加等方式添加数据目标字段信息。

    配置完成后,单击确认按钮,完成目标节点配置。

  • 基础模式:

    基础模式您可通过以下四种方式操作字段映射关系:

    • 自动添加:源端 TOS 数据类型为 csv、txt、json、pb 时,单击自动添加按钮,源端字段信息可通过自动添加按钮操作。
    • 同名映射:源端 TOS 数据类型为 Parquet 时,您可在配置完目标端字段信息后,单击源端字段映射中的同名映射按钮,进行同名字段映射配置。
    • 手动添加:单击手动添加按钮,可以手动编辑来源和目标的字段信息,可以逐个添加。
    • 移动\删除字段:您也可以根据需要移动字段映射顺序或删除字段。

    说明

    当上游为 BMQ、RocketMQ、Kafka 和 DataSail 这四种消息队列的数据源时,写入 TOS 不需要配置 column 字段。