DataSail 支持将 TOS 作为离线读取、离线写入和实时写入数据源。本文为您介绍在 DataSail 中配置火山引擎对象存储 TOS 数据源的方法,以及 TOS 数据源支持的同步能力、文件格式、字段类型、权限要求等信息。
数据源 | 离线读取 | 离线写入 | 实时读取 | 实时写入 |
|---|---|---|---|---|
TOS | 支持 | 支持 | 不支持 | 支持 |
文件格式 | 读取 | 写入 | 说明 |
|---|---|---|---|
CSV | 支持 | 支持 | 适用于使用分隔符组织的文本数据。 |
TXT | 支持 | 不支持 | 读取时需正确配置分隔符。 |
JSON | 支持 | 支持 | 支持结构化 JSON 数据。 |
Parquet | 支持 | 支持 | 列式存储格式。推荐用于结构化大数据量。 |
ORC | 不支持 | 支持 | 列式存储格式。 |
PB(Protocol Buffers) | 支持 | 不支持 | 读取时需提供相应的解析配置。 |
ZIP | 支持 | 不支持 | 读取时需设置 compress_codec=zip。 |
说明
写入 CSV、JSON、Parquet 或 ORC 文件时,可根据文件格式选择 None、Snappy、Lz4、Gzip 或 Zstd 等压缩方式。实际可选项以任务配置页面为准。
DataSail 通过 AK/SK 访问 TOS 存储桶,所使用的密钥需要具备以下权限:
操作 | 所需最低权限 | 说明 |
|---|---|---|
离线读 |
| 读取 Bucket 内文件列表和文件内容。 |
离线写 |
| 写入文件到 Bucket。 |
覆盖写入 |
| 覆盖模式需先删除原有文件。 |
推荐的 IAM 策略配置如下:
{ "Statement": [ { "Effect": "Allow", "Action": [ "tos:GetObject", "tos:PutObject", "tos:DeleteObject", "tos:ListBucket" ], "Resource": [ "trn:tos:::your-bucket-name", "trn:tos:::your-bucket-name/*" ] } ] }
说明
策略配置采用最小权限原则:如果仅做读取同步,只需配置 GetObject + ListBucket;如果需要写入且使用覆盖模式,需额外配置 DeleteObject。
确保同步任务使用的独享集成资源组能够访问 TOS 服务的 Endpoint:
网络环境 | TOS Endpoint 示例 | 说明 |
|---|---|---|
同 Region 内网 |
| 推荐,无公网流量费用。 |
跨 Region / 公网 |
| 需开通资源组公网。 |
说明
独享集成资源组与 TOS 存储桶在同一 Region 时,默认通过内网访问,无需额外网络配置。跨 Region 需开通公网访问,详见开通公网。
限制项 | 说明 |
|---|---|
单个 Object 大小上限 | 不超过 100 GB。 |
并发限制 | 单个 Object(File)不支持多线程并发读取。 |
压缩文件并发 | 压缩文件技术上无法支持多线程并发读取。 |
数据格式 | 仅支持能够抽象为逻辑二维表的结构化/半结构化数据。 |
Proton 桶类型 | 以白名单形式控制,需提工单申请开通。 |
注意
准备 TOS 数据时,如果数据为 TXT、CSV 文件,则文本字段中不能包含分隔符,否则会导致字段错位(串行)。
TOS Reader 字段类型
类型分类 | 数据集成 column 配置类型 |
|---|---|
整数 | Long |
字符串 | String |
浮点 | Double |
布尔 | Boolean |
日期时间 | Date |
TOS Writer 字段类型
类型分类 | 数据集成 column 配置类型 |
|---|---|
整数 | Tinyint、Smallint、Int、Long、Bigint |
字符串 | String、Varchar、Char |
浮点数与定点数 | Float、Double、Decimal |
布尔 | Boolean |
二进制 | Binary |
日期时间 | Date、Timestamp |
说明
Reader 和 Writer 存在以下类型差异:
新建数据源操作详见配置数据源,下面为您介绍不同接入方式的 TOS 数据源配置相关信息。
火山引擎 TOS 接入方式的参数说明如下表所示,其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。
参数 | 说明 |
|---|---|
基本配置 | |
*数据源类型 | TOS |
*接入方式 | 火山引擎 TOS |
*数据源名称 | 数据源的名称,可自行设置,仅支持中文,英文,数字,“_”,100个字符以内。 |
参数配置 | |
*TOS 对象存储桶 | 下拉选择当前租户下已创建成功的 TOS 存储桶名称信息。若现有存储桶不符合您的要求,您可前往 TOS 控制台创建。 |
*Access key ID | 进入火山引擎,访问控制台的密钥管理界面,复制 Accesskey ID 填写到此处。如果为子用户的 AK/SK 信息,可联系主账号获取或创建子用户密钥。详见秘钥管理。 说明 填写的 AK/SK 信息,需要有对应存储桶的读取权限。 |
*Secret Access Key | 与 Access Key ID 配套使用,类似登录密码,用于签名您的访问参数,以防被篡改。 |
连接串形式接入方式的参数说明如下表所示,其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。
参数 | 说明 |
|---|---|
基本配置 | |
*数据源类型 | TOS |
*接入方式 | 连接串 |
*数据源名称 | 数据源的名称,可自行设置,仅支持中文,英文,数字,“_”,100个字符以内。 |
参数配置 | |
*TOS 对象存储桶 | 连接串形式需手动填写想访问对应租户下的存储桶名称。 |
*Accesskey ID | 进入火山引擎,访问控制台的密钥管理界面,复制 Accesskey ID 填写到此处。如果为子用户的 AK/SK 信息,可联系主账号获取或创建子用户密钥。详见秘钥管理。 说明 填写的 AK/SK 信息,需要有对应存储桶的读取权限。 |
*Secret Access Key | 与 AccessKey ID 配套使用,类似登录密码,用于签名您的访问参数,以防被篡改。 |
火山引擎 TOS 方式可直接选择当前账号可见的 Bucket,配置更便捷;连接串方式适用于跨账号、手动指定 Bucket 或兼容 S3 协议存储的场景。
如需接入 AWS S3、阿里云 OSS、腾讯云 COS、MinIO 等兼容 S3 协议的对象存储,可使用连接串方式注册,并在任务高级参数中指定 S3 Endpoint。
注意
不同厂商对签名、Path Style、区域和 TLS 的要求不同。上线前请使用实际 Bucket、Endpoint 和资源组完成连接与读写验证。
数据源注册完成后,可在离线集成任务或流式集成任务中选择该数据源。配置 TOS 任务的详细说明,请参见配置 TOS 任务。