跳至主要内容

S3

本页指导您设置 S3 目标连接器。

先决条件

  1. 允许来自 Airbyte 到您的 AWS S3/Minio S3 集群的连接(如果它们位于不同的 VPC 中)。

  2. 强制加密传输中的数据.

  3. 具有凭证、Role ARN 或配置了主机(EC2、EKS)的实例配置文件的 S3 存储桶,具有读/写权限。

    • 这些字段始终是必需的

      • S3 存储桶名称
      • S3 存储桶路径
      • S3 存储桶区域
    • 如果您使用 STS Assume Role,则必须提供

      • Role ARN
    • 如果您使用 AWS 凭证,则必须提供

      • 访问密钥 ID
      • 秘密访问密钥
    • 如果您使用实例配置文件,您可以省略访问密钥 ID、秘密访问密钥和 Role ARN。

设置指南

步骤 1:设置 S3

登录到您的 AWS 账户。

准备将用作目标的 S3 存储桶,请参阅此处以创建 S3 存储桶。

注意:如果 S3 集群未配置为使用 TLS,则与 Amazon S3 的连接将无声地恢复为未加密的连接。Airbyte 建议所有连接都配置为使用 TLS/SSL,因为支持 AWS 的共享责任模型

创建存储桶策略

  1. 打开IAM 控制台
  2. 在 IAM 仪表板中,选择策略,然后单击创建策略
  3. 选择JSON 选项卡,然后将以下 JSON 粘贴到策略编辑器中(请务必替换您的存储桶名称)
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject",
"s3:PutObjectAcl",
"s3:ListBucket",
"s3:ListBucketMultipartUploads",
"s3:AbortMultipartUpload",
"s3:GetBucketLocation"
],
"Resource": [
"arn:aws:s3:::YOUR_BUCKET_NAME/*",
"arn:aws:s3:::YOUR_BUCKET_NAME"
]
}
]
}
注意

目前,仅对象级权限不足以成功验证连接。请确保包含提供的示例中的存储桶级权限。

  1. 为您的策略指定一个描述性名称,然后单击创建策略

身份验证选项 1:使用 IAM 角色(最安全)

注意

使用 IAM 角色成员进行 S3 身份验证必须由 Airbyte 团队的成员启用。如果您想使用此功能,请联系销售团队以获取更多信息。

  1. 在 IAM 仪表板中,单击角色,然后创建角色
  2. 选择适当的信任实体并附加您创建的策略。
  3. 设置角色的信任关系。例如,对于AWS 账户受信任实体,请使用实例上的默认 AWS 账户(它将用于承担角色)。要使用外部 ID,请将其设置为环境变量,如export AWS_ASSUME_ROLE_EXTERNAL_ID="{your-external-id}"。编辑信任关系策略以反映这一点
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::{your-aws-account-id}:user/{your-username}"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:ExternalId": "{your-external-id}"
}
}
}
]
}
  1. 选择AWS 账户受信任实体类型。
  2. 设置角色的信任关系。这允许 Airbyte 实例的 AWS 账户承担此角色。您还需要指定外部 ID,这是一个受信任服务(Airbyte)和受信任角色(您正在创建的角色)都知道的密钥。此 ID 用于防止“困惑的代理”问题。外部 ID 应为您的 Airbyte 工作区 ID,可以在您的工作区页面的 URL 中找到。编辑信任关系策略以包含外部 ID
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::094410056844:user/delegated_access_user"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:ExternalId": "{your-airbyte-workspace-id}"
}
}
}
]
}
  1. 完成角色创建并记下 Role ARN。
  2. 选择直接附加权限,然后找到并选中您的新策略。单击下一步,然后单击添加权限
身份验证选项 2:使用 IAM 用户

使用现有或创建新的访问密钥 ID 和秘密访问密钥

  1. 在 IAM 仪表板中,单击用户。选择现有 IAM 用户或通过单击添加用户创建新用户。
  2. 如果您正在使用现有IAM 用户,请单击添加权限下拉菜单并选择添加权限。如果您正在创建用户,您将在选择名称后被带到权限屏幕。
  3. 选择直接附加权限,然后找到并选中您的新策略。单击下一步,然后单击添加权限
  4. 成功创建用户后,选择安全凭证选项卡并单击创建访问密钥。系统将提示您选择用例并为您的访问密钥添加可选标签。单击创建访问密钥以生成密钥。

步骤 2:在 Airbyte 中设置 S3 目标连接器

对于 Airbyte Cloud

  1. 登录到您的 Airbyte Cloud 账户。
  2. 在左侧导航栏中,单击目标。在右上角,单击+ 新目标
  3. 在目标设置页面,从“目标类型”下拉菜单中选择S3,并为该连接器输入名称。
  4. 配置字段
    • 访问密钥 ID
      • 请参阅此处了解如何生成访问密钥。
      • 我们建议创建一个 Airbyte 专用用户。该用户需要读写权限到存储桶中的对象。
    • 秘密访问密钥
      • 与上述密钥 ID 对应的密钥。
    • Role ARN
      • 请参阅此处了解如何创建角色。
    • S3 存储桶名称
      • 请参阅此处以创建 S3 存储桶。
    • S3 存储桶路径
      • 要将数据同步到的 bucket 下的子目录。注意:默认值为 airbyte-data
    • S3 存储桶区域:
      • 有关所有区域代码,请参阅 此处
    • S3 路径格式
      • 在 S3 Bucket 路径下存储数据的附加字符串格式。默认值为 ${NAMESPACE}/${STREAM_NAME}/${YEAR}_${MONTH}_${DAY}_${EPOCH}_
    • S3 端点
      • 如果使用 AWS S3,请留空;如果使用 Minio S3,请填写 S3 URL。
    • S3 文件名模式
      • 该模式允许您设置 S3 暂存文件(s)的文件名格式,当前支持以下占位符组合:{date}{date:yyyy_MM}{timestamp}{timestamp:millis}{timestamp:micros}{part_number}{sync_id}{format_extension}。请勿使用空格和不支持的占位符,因为它们将无法识别。
  5. 点击 设置目标地址

对于 Airbyte 开源版

  1. 转到本地 Airbyte 页面。

  2. 在左侧导航栏中,单击目标。在右上角,单击+ 新目标

  3. 在目标设置页面,从“目标类型”下拉菜单中选择S3,并为该连接器输入名称。

  4. 配置字段

    • 访问密钥 ID
      • 请参阅此处了解如何生成访问密钥。
      • 有关如何创建实例配置文件,请参阅 此处
      • 我们建议创建一个 Airbyte 专用用户。该用户需要具有对暂存 bucket 中的对象进行读写权限
      • 如果未提供访问密钥和密钥访问密钥,则身份验证将依赖于使用 STS Assume Role 的 Role ARN 或实例配置文件。
    • 秘密访问密钥
      • 与上述密钥 ID 对应的密钥。
      • 确保运行 Airbyte 的机器可以访问您的 S3 bucket。
      • 这取决于您的网络设置。
      • 您可以查看 AWS S3 文档,其中包含有关如何正确配置 S3 访问权限的教程 此处
      • 如果使用实例配置文件身份验证,请确保该角色具有对 bucket 进行读/写权限。
      • 验证 Airbyte 是否能够连接到您的 S3 bucket 的最简单方法是使用 UI 中的检查连接工具。
    • S3 存储桶名称
      • 请参阅此处以创建 S3 存储桶。
    • S3 存储桶路径
      • 要在上述 bucket 下同步数据的子目录。
    • S3 存储桶区域
      • 有关所有区域代码,请参阅 此处
    • S3 路径格式
      • 在 S3 Bucket 路径下存储数据的附加字符串格式。默认值为 ${NAMESPACE}/${STREAM_NAME}/${YEAR}_${MONTH}_${DAY}_${EPOCH}_
    • S3 端点
      • 如果使用 AWS S3,请留空;如果使用 Minio S3,请填写 S3 URL。
    • S3 文件名模式
      • 该模式允许您设置 S3 暂存文件(s)的文件名格式,当前支持以下占位符组合:{date}{date:yyyy_MM}{timestamp}{timestamp:millis}{timestamp:micros}{part_number}{sync_id}{format_extension}
      • 请勿使用空格和不支持的占位符,因为它们将无法识别。
  5. 点击 设置目标地址

使用默认 S3 路径格式 ${NAMESPACE}/${STREAM_NAME}/${YEAR}_${MONTH}_${DAY}_${EPOCH}_ 的完整输出路径是

<bucket-name>/<source-namespace-if-exists>/<stream-name>/<upload-date>_<epoch>_<partition-id>.<format-extension>

例如

testing_bucket/data_output_path/public/users/2021_01_01_1234567890_0.csv.gz
↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
| | | | | | | format extension
| | | | | | unique incremental part id
| | | | | milliseconds since epoch
| | | | upload date in YYYY_MM_DD
| | | stream name
| | source namespace (if it exists)
| bucket path
bucket name

这种命名模式背后的原因在于

  1. 每个流都有自己的目录。
  2. 数据输出文件可以按上传时间排序。
  3. 上传时间由日期部分和毫秒部分组成,因此既易于阅读又具有唯一性。

但可以通过使用可用的变量来格式化 bucket 路径进一步自定义。

  • ${NAMESPACE}:流来自的命名空间或由连接命名空间字段配置的命名空间。
  • ${STREAM_NAME}:流的名称
  • ${YEAR}:同步写入输出数据时的年份。
  • ${MONTH}:同步写入输出数据时的月份。
  • ${DAY}:同步写入输出数据时的日期。
  • ${HOUR}:同步写入输出数据时的小时。
  • ${MINUTE}:同步写入输出数据时的分钟。
  • ${SECOND}:同步写入输出数据时的秒。
  • ${MILLISECOND}:同步写入输出数据时的毫秒。
  • ${EPOCH}:同步写入输出数据时的自 Epoch 以来的毫秒数。
  • ${UUID}:随机 uuid 字符串

注意

  • S3 路径中的多个 / 字符将被折叠成单个 / 字符。
  • 如果输出 bucket 包含太多文件,则 part id 变量将使用 UUID 代替。否则,它使用顺序 ID。

请注意,如果连接上配置了前缀,则流名称可能包含前缀。数据同步可能会创建多个文件,因为输出文件可以按大小进行分区(目标压缩大小为 200MB 或更小)。

支持的同步模式

功能支持备注
完全刷新 - 覆盖同步警告:此模式将删除配置的 bucket 路径中所有先前同步的数据。
增量 - 追加同步警告:Airbyte 提供至少一次交付。根据您的源,您可能会看到重复的数据。了解更多信息 此处
增量 - 追加 + 去重
命名空间设置特定的 bucket 路径等同于拥有单独的命名空间。

Airbyte S3 目标允许您将数据同步到 AWS S3 或 Minio S3。每个流都写入 bucket 下的自己的目录。

⚠️ 请注意,在“完全刷新覆盖同步”模式下,在成功同步后保留来自同一代的数据,同时删除所有先前的数据。如果在不同代之间发生故障,直到后续成功同步,来自多个代的数据可能会保留。每个 S3 对象都标记有 x-amz-meta-ab-generation-id 以标识其代。我们建议为此次同步配置一个专用的 S3 资源,以避免由于配置错误而导致意外删除数据。⚠️

支持的输出模式

每个流将根据配置输出到其专用目录。每个流的完整数据存储包括该目录下的所有输出文件。您可以将该目录视为数据库世界中的表。

  • 在完全刷新同步模式下,在创建新文件之前将清除旧输出文件。
  • 在增量 - 追加同步模式下,将添加仅包含新数据的新输出文件。

Avro

Apache Avro 以紧凑的二进制格式序列化数据。目前,Airbyte S3 Avro 连接器始终使用 二进制编码,并假定所有数据记录都遵循相同的模式。

配置

这里可用的压缩编解码器是

  • 无压缩
  • deflate
    • 压缩级别
      • 范围 [0, 9]。默认值为 0。
      • 级别 0:无压缩和最快。
      • 级别 9:最佳压缩和最慢。
  • bzip2
  • xz
    • 压缩级别
      • 范围 [0, 9]。默认值为 6。
      • 级别 0-3 速度快,压缩率中等。
      • 级别 4-6 速度较慢,压缩率高。
      • 级别 7-9 类似于级别 6,但使用更大的字典并具有更高的内存要求。除非文件的未压缩大小超过 8MB、16MB 或 32MB,否则使用预设 7、8 或 9 会浪费内存。
  • zstandard
    • 压缩级别
      • 范围 [-5, 22]。默认值为 3。
      • 负级别是类似于 lz4snappy 的“快速”模式。
      • 高于 9 的级别通常用于存档目的。
      • 高于 18 的级别使用大量内存。
    • 包含校验和
      • 如果设置为 true,则将在每个数据块中包含校验和。
  • snappy

数据模式

在底层,Airbyte 数据流在 JSON 模式下首先转换为 Avro 模式,然后 JSON 对象转换为 Avro 记录。由于数据流可以来自任何数据源,因此 JSON 到 Avro 的转换过程具有任意规则和限制。了解更多关于如何将源数据转换为 Avro 以及当前限制的信息 此处

CSV

与大多数其他 Airbyte 目标连接器一样,输出通常有三列:一个 UUID、一个提取时间戳和一个数据 blob。使用 CSV 输出,可以规范化(展平)数据 blob 到多个列。

条件描述
_airbyte_raw_id始终存在。Airbyte 分配给每个处理记录的 uuid。
_airbyte_extracted_at始终存在。表示从数据源提取事件的时间戳。
_airbyte_generation_id始终存在。一个整数标识符,每次新的刷新都会增加。
_airbyte_meta始终存在。一个结构化对象,包含有关记录的元数据。
_airbyte_data当不需要规范化(展平)时,所有数据都位于此列下,作为 JSON blob。
根级别字段当选择根级别规范化(展平)时,根级别字段将被展开。

_airbyte_meta 的模式是

字段名称类型描述
changeslist一个结构化更改对象的列表。
sync_id整数同步作业的整数标识符。

更改对象的模式是

字段名称类型描述
field字符串更改字段的名称。
change字符串更改类型(例如,NULLEDTRUNCATED)。
reason字符串更改的原因,包括其来源系统(即,是源、目标还是平台错误)。

例如,给定来自源的以下 JSON 对象

{
"user_id": 123,
"name": {
"first": "John",
"last": "Doe"
}
}

如果不进行规范化,则输出 CSV 为

_airbyte_raw_id_airbyte_extracted_at_airbyte_generation_id_airbyte_meta_airbyte_data
26d73cde-7eb1-4e1e-b7db-a4c03b4cf206162213580500011{"changes":[], "sync_id": 10111 }{ "user_id": 123, name: { "first": "John", "last": "Doe" } }

如果选择根级别规范化,则输出 CSV 为

_airbyte_raw_id_airbyte_extracted_at_airbyte_generation_id_airbyte_metauser_idname.firstname.last
26d73cde-7eb1-4e1e-b7db-a4c03b4cf206162213580500011{"changes":[], "sync_id": 10111 }123JohnDoe

输出文件可以被压缩。默认选项是 GZIP 压缩。如果选择了压缩,则输出文件名将具有额外的扩展名(GZIP:.csv.gz)。

JSON Lines (JSONL)

JSON Lines 是一种每行包含一个 JSON 对象的文本格式。每行都有如下结构

{
"_airbyte_raw_id": "<uuid>",
"_airbyte_extracted_at": "<timestamp>",
"_airbyte_generation_id": "<generation-id>",
"_airbyte_meta": "<json-meta>",
"_airbyte_data": "<json-data-from-source>"
}

例如,给定来自源的以下两个 JSON 对象

[
{
"user_id": 123,
"name": {
"first": "John",
"last": "Doe"
}
},
{
"user_id": 456,
"name": {
"first": "Jane",
"last": "Roe"
}
}
]

它们在输出文件中的样子如下

{ "_airbyte_raw_id": "26d73cde-7eb1-4e1e-b7db-a4c03b4cf206", "_airbyte_extracted_at": "1622135805000", "_airbyte_generation_id": "11", "_airbyte_meta": { "changes": [], "sync_id": 10111 }, "_airbyte_data": { "user_id": 123, "name": { "first": "John", "last": "Doe" } } }
{ "_airbyte_ab_id": "0a61de1b-9cdd-4455-a739-93572c9a5f20", "_airbyte_extracted_at": "1631948170000", "_airbyte_generation_id": "12", "_airbyte_meta": { "changes": [], "sync_id": 10112 }, "_airbyte_data": { "user_id": 456, "name": { "first": "Jane", "last": "Roe" } } }

输出文件可以被压缩。默认选项是 GZIP 压缩。如果选择了压缩,输出文件名将具有额外的扩展名 (GZIP: .jsonl.gz)。

Parquet

配置

以下配置可用于配置 Parquet 输出

参数类型默认值描述
compression_codecenumUNCOMPRESSED压缩算法。可用的选项有:UNCOMPRESSEDSNAPPYGZIPLZOBROTLILZ4ZSTD
block_size_mb整数128 (MB)块大小(行组大小),单位为 MB。这是在内存中缓冲的行组的大小。它限制了写入时的内存使用量。较大的值将提高读取时的 IO,但会消耗更多的写入内存。
max_padding_size_mb整数8 (MB)最大填充大小,单位为 MB。这是允许作为填充来对齐行组的最大大小。这同时也是行组的最小大小。
page_size_kb整数1024 (KB)页面大小,单位为 KB。页面大小用于压缩。一个块由页面组成。页面是访问单个记录必须完全读取的最小单元。如果此值太小,压缩效果会下降。
dictionary_page_size_kb整数1024 (KB)字典页面大小,单位为 KB。当使用字典编码时,每个列的每个行组都有一个字典页面。字典页面大小类似于页面大小,但用于字典。
dictionary_encoding布尔值true字典编码。此参数控制是否启用字典编码。

这些参数与 ParquetOutputFormat 相关。有关更多详细信息,请参阅 Java 文档。另请参阅 Parquet 文档,了解其推荐的配置(512 - 1024 MB 块大小,8 KB 页面大小)。

数据模式

在底层,Airbyte 数据流的 JSON 模式首先转换为 Avro 模式,然后 JSON 对象转换为 Avro 记录,最后将 Avro 记录输出到 Parquet 格式。由于数据流可以来自任何数据源,因此 JSON 到 Avro 的转换过程具有任意规则和限制。了解更多关于源数据如何转换为 Avro 以及当前限制的信息 请在此处查看

为了使一切正常工作,使用“S3 Key Id”和“S3 Access Key”的用户也必须能够访问存储桶及其内容。要使用的策略

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::YOUR_BUCKET_NAME/*",
"arn:aws:s3:::YOUR_BUCKET_NAME"
]
}
]
}

限制和故障排除

要查看连接器限制或排查 S3 连接器的问题,请参阅更多 我们的 s3 排错指南

参考

配置字段参考

字段
类型
属性名称
对象
format
字符串
s3_bucket_name
字符串
s3_bucket_path
字符串
s3_bucket_region
字符串
access_key_id
字符串
file_name_pattern
字符串
role_arn
字符串
s3_endpoint
字符串
s3_path_format
字符串
secret_access_key

变更日志

展开以查看
版本日期拉取请求主题
1.9.52025-11-0469134升级到 Bulk CDK 0.1.61。
1.9.42025-10-2167153实现新的 proto 模式实现
1.9.32025-10-0667078删除同步作业的内存限制,以提高性能和资源利用率。
1.9.22025-09-1966523通过强制使用路径式存储桶访问来修复 Minio 兼容性。
1.9.12025-07-3164138将发布候选版本 1.9.1-rc.1 提升到主版本。
1.9.1-rc.12025-07-2864101准备带有速度模式修复的发布候选版本。
1.9.02025-07-2463759将发布候选版本 1.9.0-rc.4 提升到主版本。
1.9.0-rc.42025-07-1763350发布候选版本 4
1.9.0-rc.32025-07-1062890发布候选版本 3
1.9.0-rc.22025-07-0762829带有错误修复的发布候选版本 2
1.9.0-rc.12025-07-0262068准备启用速度改进
1.8.82025-06-2762127与 1.8.6 相同。镜像从 PR 62071 发布。
1.8.72025-06-1361588发布版本以考虑管道中可能发生的重复发布。无操作更改。 警告:这存在一个错误。请勿使用。
1.8.62025-05-3060327IPC 元数据,内部重构。
1.8.52025-05-1660327修复文件分区越界错误。
1.8.42025-05-1460313重新连接时间窗口触发器。文件路径正确释放内存。
1.8.32025-05-1460287更新规范。
1.8.22025-05-0759721旧文件传输使用新的 CDK 接口
1.8.12025-05-0759710CDK 反压错误修复
1.8.02025-04-3059168将发布候选版本 1.8.0-rc.1 提升到主版本。
1.8.0-rc.12025-04-2959148升级到支持文件+记录的最新 CDK
1.7.42025-04-2158146升级到最新 CDK
1.7.32025-04-1858140升级到最新 CDK
1.7.22025-04-0756391内部代码重构
1.7.12025-04-0256974非功能性更改:固定 cdk 版本
1.7.02025-04-0256974发布 1.7.0 发布候选版本
1.7.0-rc.12025-03-3156935内部性能重构
1.6.02025-03-2856458不要删除 CSV/JSONL 数据中小数的尾随 .0
1.5.82025-03-2556398内部 CDK 更改,将旧的 Avro 和 Parquet 格式标记为已弃用
1.5.72025-03-2456355升级到 airbyte/java-connector-base:2.0.1 以兼容 M4。
1.5.62025-03-2455849内部重构
1.5.52025-03-2055875错误修复:同步可能因 OOM 而挂起
1.5.42025-03-0554695非功能性更改以支持性能测试
1.5.32025-03-0454661非功能性更改以支持性能测试
1.5.22025-02-2554661非功能性清理;删除了未使用的暂存代码
1.5.12025-02-1153636非功能性 CDK 版本固定。
1.5.02025-02-1153632将发布候选版本 1.5.0-rc.20 提升到主版本。
1.5.0-rc.202025-02-0453173调整规范措辞
1.5.0-rc.192025-02-0453163各种修复以截断同步
1.5.0-rc.182025-01-2952703强制执行列表调用评估,然后再进行 head 调用
1.5.0-rc.172025-01-2952610固定 CDK 0.296
1.5.0-rc.162025-01-2952610修复 assume role 行为
1.5.0-rc.152025-01-2352103使连接器使用我们的非 root 基本镜像。
1.5.0-rc.142025-01-2451600内部重构
1.5.0-rc.132025-01-2252076测试改进。
1.5.0-rc.122025-01-2252072错误修复:配置 OpenStreamTask 并发性以处理连接,以减少 http 连接错误。
1.5.0-rc.112025-01-1751051输入完全读取后,流结束现在正确标记为瞬态
1.5.0-rc.102025-01-1550960错误修复:容忍重复的路径变量;avro meta 字段模式与旧 cdk 匹配
1.5.0-rc.92025-01-1050960错误修复:变量在存储桶路径中得到尊重;同步不会挂起在没有状态的流中
1.5.0-rc.82025-01-0850960使用 airbyte/java-connector-base 基本镜像。
1.5.0-rc.72025-01-0951021错误修复:使用 CRT HTTP 客户端以避免 OkHttp 空闲连接处理错误
1.5.0-rc.62025-01-0650954错误修复:由于生成跟踪器中的错误导致的瞬态故障
1.5.0-rc.52025-01-0650954错误修复:由于文件名冲突预防中的错误导致的瞬态故障
1.5.0-rc.42025-01-0650954错误修复:StreamLoader::close 对每个流多次分发
1.5.0-rc.32025-01-0650949错误修复:嵌套在联合对象/列表中的 parquet 类型/值无法正确转换
1.5.0-rc.22025-01-0250857迁移到 Bulk Load CDK:成本降低、性能提升、文件名冲突错误修复
1.4.02024-10-2346302添加文件传输支持
1.3.02024-09-3046281修复测试
1.2.12024-09-2045700提高对 jsonschema 字段的弹性
1.2.02024-09-1845402修复带有无列流的异常
1.1.02024-09-1845436升级所有依赖项
1.0.52024-09-0545143不要覆盖(并删除)现有文件,而是跳过索引
1.0.42024-08-3044933修复:Avro/Parquet:处理嵌套对象/列表中的空模式
1.0.32024-08-2044476增加消息解析限制到 100mb
1.0.22024-08-1944401修复:S3 Avro/Parquet:处理可为空的顶级模式
1.0.12024-08-1442579覆盖模式:在同步成功后删除延迟操作。
1.0.02024-08-0842409重大破坏性更改:新的目标模式、变更捕获、Avro/Parquet 改进、错误修复
0.1.152024-12-1849879使用基础镜像:airbyte/java-connector-base:1.0.0
0.6.72024-08-1143713降低内存比率(0.7 -> 0.5)和线程分配(5 -> 2),用于异步 S3 上传。
0.6.62024-08-0643343使用 Kotlin 2.0.0
0.6.52024-08-0142405S3 并行化工作负载、检查点、提交计数,支持刷新元数据中的 generationId。
0.6.42024-04-1642006删除不必要的 zookeeper 依赖项
0.6.32024-04-1538204将所有生产代码转换为 kotlin
0.6.22024-04-1538204添加 assume role 身份验证
0.6.12024-04-0837546适配 CDK 0.30.8;
0.6.02024-04-0836869适配 CDK 0.29.8;Kotlin 转换后的代码。
0.5.92024-02-2235569修复日志错误。
0.5.82024-01-03#33924添加新的 ap-southeast-3 AWS 区域
0.5.72023-12-28#33788线程安全修复文件部分名称
0.5.62023-12-08#33263(不正确的文件名格式,请勿使用) 采用 java CDK 版本 0.7.0。
0.5.52023-12-08#33264更新 UI 选项为常用默认值。
0.5.42023-11-06#32193(不正确的文件名格式,请勿使用) 采用 java CDK 版本 0.4.1。
0.5.32023-11-03#32050(不正确的文件名格式,请勿使用) 采用 java CDK 版本 0.4.0。这更新了文件名以包含 UUID。
0.5.12023-06-26#27786修复构建
0.5.02023-06-26#27725许可证更新:Elv2
0.4.22023-06-21#27555减小镜像大小
0.4.12023-05-18#26284修复:重新启用 Parquet 输出的 LZO 压缩
0.4.02023-04-28#25570修复:所有整数模式都应转换为 Avro longs
0.3.252023-04-27#25346内部代码清理
0.3.232023-03-30#24736改进在 AWS API 被限制时的行为
0.3.222023-03-17#23788S3-Parquet:添加处理数组中空值的处理程序
0.3.212023-03-10#23466更改 S3 Avro 类型为 Int 到 Long
0.3.202023-02-23#21355为 JSONL 输出添加根级别展平选项。
0.3.192023-01-18#21087将身份验证错误包装为配置异常
0.3.182022-12-15#20088新的数据类型支持 v0/v1
0.3.172022-10-15#18031修复集成测试以使用存储桶路径
0.3.162022-10-03#17340强制仅加密流量到 S3 存储桶并检查逻辑
0.3.152022-09-01#16243修复 JSON 到 Avro 转换,当来自组合限制(anyOfoneOfallOf 字段)的字段名称冲突时。
0.3.142022-08-24#15207修复 S3 存储桶路径用于检查。
0.3.132022-08-09#15394为 Parquet 格式添加 LZO 压缩支持
0.3.122022-08-05#14801修复多个日志绑定
0.3.112022-07-15#14494使 S3 输出文件名可配置。
0.3.102022-06-30#14332更改 INSTANCE*PROFILE 以使用 AWSDefaultProfileCredential,它支持 AWS 上的更多身份验证
0.3.92022-06-24#14114删除带有暂存的连接器的规范中的 "additionalProperties": false
0.3.82022-06-17#13753弃用并删除基于 StreamTransferManager 的连接器中的 PART_SIZE_MB 字段
0.3.72022-06-14#13483为 Avro/Parquet 格式添加对 int、long、float 数据类型的支持。
0.3.62022-05-19#13043目标 S3:删除可配置的分区大小。
0.3.52022-05-12#12797更新规范以替换 markdown。
0.3.42022-05-04#12578在 JSON 到 Avro 转换中,记录不遵循 Avro 模式的 JSON 字段值以进行调试。
0.3.32022-04-20#12167为 CSV 和 JSONL 格式添加 gzip 压缩选项。
0.3.22022-04-22#11795修复连接检查以验证提供的存储桶路径。
0.3.12022-04-05#11728正确清理在运行 OVERWRITE 同步模式时的存储桶
0.3.02022-04-04#116660.2.12 实际上有破坏性更改,因为文件默认情况下会被压缩,此 PR 还修复了命名以使其与旧版本更兼容。
0.2.132022-03-29#11496修复 S3 存储桶路径包含在 S3 存储桶格式中
0.2.122022-03-28#11294更改为序列化缓冲策略以减少内存消耗
0.2.112022-03-23#11173添加对 AWS Glue 爬虫的支持
0.2.102022-03-07#10856check 方法现在测试目标存储桶上的 listObjects 权限
0.2.72022-02-14#10318防止 S3 目标路径中的双斜杠
0.2.62022-02-1410256添加 -XX:+ExitOnOutOfMemoryError JVM 选项
0.2.52022-01-13#9399如果未提供凭据,则使用实例配置文件身份验证
0.2.42022-01-12#9415BigQuery 目标:修复 Facebook 数据在 GCS 中的处理
0.2.32022-01-11#9367Avro & Parquet:支持具有未知项目类型的数组字段;将任何类型不正确的字段默认为字符串。
0.2.22021-12-21#8574为 Avro 和 Parquet 记录类型添加了命名空间
0.2.12021-12-20#8974发布新版本以确保没有过多的日志记录。
0.2.02021-12-15#8607更改 CSV 文件的输出文件名 - 现在是 bucketPath/namespace/streamName/timestamp_epochMillis_randomUuid.csv
0.1.162021-12-10#8562用 destination-jdbc 替换依赖项。
0.1.152021-12-03#8501删除 Avro 和 Parquet 无效日期字符串的过度日志记录。
0.1.142021-11-09#7732支持 Avro 和 Parquet 中的时间戳
0.1.132021-11-03#7288支持 Json additionalProperties
0.1.122021-09-13#5720为流添加了可配置的块大小。每个流受 S3 限制为 10,000 个。
0.1.112021-09-10#5729对于以数字开头的字段名,将在ParquetAvro格式的开头附加一个 *
0.1.102021-08-17#4699添加了 json 配置验证器
0.1.92021-07-12#4666修复了 Parquet 格式的 MinIO 输出。
0.1.82021-07-07#4613修补了模式转换器以支持组合限制。
0.1.72021-06-23#4227添加了 Avro 和 JSONL 输出。
0.1.62021-06-16#4130修补了检查,以验证前缀访问权限而不是整个存储桶的访问权限。
0.1.52021-06-14#3908修复了spec.json中的默认max_padding_size_mb
0.1.42021-06-14#3908添加了 Parquet 输出。
0.1.32021-06-13#4038添加了对替代 S3 的支持。
0.1.22021-06-10#4029\_airbyte_emitted_at 字段修复为 UTC 时间戳,而不是本地时间戳,以保持一致性。
0.1.12021-06-09#3973在基础 Docker 镜像中添加了AIRBYTE_ENTRYPOINT,以支持 Kubernetes。
0.1.02021-06-03#3672初始版本,带有 CSV 输出。