Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
423 changes: 423 additions & 0 deletions docs/cn/guides/10-cloud/05-data-integration/datasource/05-sqs-s3.md

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,12 @@ Databend Cloud 数据源表示与外部系统建立的一条连接,其中保
| 类型 | 用途 |
|------|------|
| [AWS - Credentials](./01-aws.md) | 保存访问 Amazon S3 所需的 Access Key 和 Secret Key,可供多个 S3 导入任务复用。 |
| [Amazon SQS (S3)](./05-sqs-s3.md) | 保存 SQS (S3) 接入所需的队列地址、Region、IAM Role 和 S3 路径范围,可用于消费 S3 对象创建事件。 |
| [MySQL - Credentials](./02-mysql.md) | 保存访问 MySQL 所需的主机、端口、用户名、密码和数据库信息,可供多个 MySQL 同步任务复用。 |
| [PostgreSQL - Credentials](./04-postgres.md) | 保存访问 PostgreSQL 所需的主机、端口、用户名、密码和数据库信息,可供多个 PostgreSQL 同步任务复用。 |
| [FeiShuBot](./03-feishu.md) | 保存飞书机器人地址和消息模板,用于任务失败通知等场景。 |

并非每种数据源都会对应一类集成任务。例如,`FeiShuBot` 用于通知配置,而 `AWS - Credentials` 和 `MySQL - Credentials` 则会被实际的数据导入或同步任务引用
并非每种数据源都会对应一类集成任务。例如,`FeiShuBot` 用于通知配置,而 `AWS - Credentials`、`Amazon SQS (S3)`、`MySQL - Credentials` 和 `PostgreSQL - Credentials` 则会被实际的数据导入、同步或事件消费任务引用

## 管理数据源

Expand Down
4 changes: 3 additions & 1 deletion docs/cn/guides/10-cloud/05-data-integration/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Databend Cloud 的 Data Integration 功能通过可视化、无代码界面,

| 概念 | 说明 |
|------|------|
| [数据源](./datasource/index.md) | 一组可复用的连接配置或凭据,用于访问外部系统或发送通知,例如 AWS Access Key / Secret Key、MySQL 主机名 / 用户名 / 密码、飞书机器人地址。 |
| [数据源](./datasource/index.md) | 一组可复用的连接配置或凭据,用于访问外部系统或发送通知,例如 AWS Access Key / Secret Key、MySQL 主机名 / 用户名 / 密码、SQS (S3) 队列地址、飞书机器人地址。 |
| [集成任务](./task/index.md) | 一条实际运行的数据同步或导入任务,定义了数据从哪里来、写到 Databend 的哪个表、使用什么运行参数,以及如何启动和监控。 |

数据源本身不搬运数据,它只负责保存访问外部系统所需的信息;真正执行数据导入、快照同步或持续增量同步的是集成任务。
Expand All @@ -23,7 +23,9 @@ Databend Cloud 的 Data Integration 功能通过可视化、无代码界面,
| 任务类型 | 说明 |
|----------|------|
| [Amazon S3](./task/01-s3.md) | 从 Amazon S3 导入 CSV、Parquet 或 NDJSON 文件,可选择一次性导入或持续导入。 |
| [Amazon SQS (S3)](./task/04-sqs-s3.md) | 消费 SQS 队列中的 S3 对象创建事件,并将对应对象数据写入 Databend。 |
| [MySQL](./task/02-mysql.md) | 从 MySQL 同步表数据,支持 `Snapshot`、`CDC Only` 和 `Snapshot + CDC` 模式。 |
| [PostgreSQL](./task/03-postgres.md) | 从 PostgreSQL 同步表数据,支持 `Snapshot`、`CDC Only` 和 `Snapshot + CDC` 模式。 |

## 推荐使用流程

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,13 @@ Data Integration 页面会展示所有任务及其当前状态:
- S3 任务可以是一次性导入,也可以启用持续轮询以自动导入新文件。
- MySQL `Snapshot` 任务通常在全量导入完成后自动停止。
- MySQL `CDC Only` 和 `Snapshot + CDC` 任务会持续运行,直到手动停止。
- PostgreSQL `Snapshot` 任务通常在全量导入完成后自动停止。
- PostgreSQL `CDC Only` 和 `Snapshot + CDC` 任务会持续运行,直到手动停止。
- SQS (S3) 任务会持续轮询 SQS 队列,消费 S3 对象创建事件并写入目标表,直到手动停止。

有关具体字段和配置项,请继续阅读对应任务类型页面:

- [Amazon S3 集成任务](./01-s3.md)
- [MySQL 集成任务](./02-mysql.md)
- [PostgreSQL 集成任务](./03-postgres.md)
- [Amazon SQS (S3) 集成任务](./04-sqs-s3.md)
108 changes: 108 additions & 0 deletions docs/cn/guides/10-cloud/05-data-integration/task/04-sqs-s3.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
---
title: Amazon SQS (S3) 集成任务
slug: /cloud/data-integration/sqs-s3-event
---

本页介绍如何创建 Amazon SQS (S3) 集成任务,消费 SQS 队列中的 S3 对象创建事件,并将对应对象数据写入 Databend。

该任务面向 S3 事件驱动的数据接入场景:上游系统向 S3 写入对象后,S3 将 `ObjectCreated` 事件发送到 SQS,Databend Cloud 通过 AssumeRole 消费 SQS 消息,并基于事件中的存储桶和对象 key 将数据写入 Databend。

如需先创建可复用的 SQS (S3) 连接配置,请参见 [Amazon SQS (S3)](../datasource/05-sqs-s3.md)。

## 适用场景

- 基于 S3 `ObjectCreated` 事件自动接入新写入的 S3 对象
- 使用 S3 事件通知驱动数据导入,降低新文件到达后的处理延迟
- 避免仅通过轮询 S3 路径发现新文件

## 工作流程

1. 上游系统向 S3 存储桶写入对象。
2. S3 Event Notification 将 `ObjectCreated` 事件发送到 SQS 标准队列。
3. Databend Cloud 通过用户配置的 IAM Role 从 SQS 队列读取消息。
4. 任务解析消息中的 S3 事件记录。
5. 任务根据 S3 事件记录中的存储桶、对象 key 和文件格式写入 Databend 目标表。
6. 写入成功后,任务从 SQS 队列删除已处理消息。

:::note
S3 事件通知和 SQS 标准队列都可能产生重复消息。Databend 会处理失败重试;如果业务需要严格去重,请结合对象信息、事件时间、`sequencer` 或 SQS 消息 ID 设计下游去重逻辑。
:::

## 前置条件

在创建 SQS (S3) 集成任务前,请确保:

- 已创建 **Amazon SQS (S3)** 数据源
- S3 存储桶已配置 `ObjectCreated` 事件通知,并将事件发送到目标 SQS 队列
- SQS 队列策略允许 Amazon S3 执行 `sqs:SendMessage`
- 用户 IAM Role 允许 Databend 平台角色通过 `sts:AssumeRole` 访问
- 用户 IAM Role 具有读取目标 S3 对象和消费目标 SQS 队列的权限
- SQS 队列中保存的是标准 S3 Event Notification 消息格式
- S3 notification 的存储桶、prefix 和 suffix 与数据源配置保持一致

## 创建 SQS (S3) 集成任务

### 步骤 1:基本信息

1. 前往 **Data** > **Data Integration**,点击 **Create Task**。
2. 选择一个 SQS (S3) 数据源,然后配置基本参数:

| 字段 | 是否必填 | 说明 |
|------|----------|------|
| **Data Source** | 是 | 从下拉列表中选择已有的 **Amazon SQS (S3)** 数据源 |
| **Name** | 是 | 当前集成任务名称 |
| **File Format** | 是 | S3 对象的文件格式,例如 CSV、Parquet 或 NDJSON |
| **Object Key Prefix** | 否 | 仅处理指定前缀的对象事件,例如 `raw/events/`。应与数据源和 S3 notification filter 保持一致 |
| **Object Key Suffix** | 否 | 仅处理指定后缀的对象事件,例如 `.json` 或 `.parquet`。应与数据源和 S3 notification filter 保持一致 |

:::tip
建议优先在 S3 Event Notification 中配置前缀或后缀过滤,并与数据源和任务中的过滤条件保持一致,减少进入 SQS 的无关消息数量。
:::

### 步骤 2:预览数据

完成基本设置后,点击 **Next** 预览源数据。

预览结果与 [Amazon S3 集成任务](./01-s3.md) 一致。系统会根据 SQS (S3) 配置定位对应的 S3 对象,读取文件内容并展示:

- 包含列名和数据类型的示例数据
- 匹配到的 S3 对象列表及其大小

:::note
如果当前路径范围内没有可预览的 S3 对象,预览页可能无法展示样例数据。您可以先向目标 S3 路径上传一个匹配 prefix / suffix 的测试对象后再重试预览。
:::

### 步骤 3:设置目标表

配置 Databend 中的目标位置:

| 字段 | 说明 |
|------|------|
| **Warehouse** | 选择用于运行 SQS (S3) 集成任务的 Databend Cloud Warehouse |
| **Target Database** | 选择 Databend 中的目标数据库 |
| **Target Table** | 写入数据的目标表名 |

系统会根据预览到的 S3 对象内容推断列名和数据类型。继续之前,您可以检查并编辑目标表结构;如果写入已有表,请从现有表中选择目标表并确认列映射无误。

点击 **Create** 完成集成任务创建。

## 任务行为

SQS (S3) 集成任务是持续运行任务。启动后,它会周期性从 SQS 队列读取消息并写入目标表,直到被手动停止。

| 场景 | 行为 |
|------|------|
| 队列中有消息 | 读取消息,解析 S3 事件记录,并按事件中的对象信息写入目标表 |
| 写入成功 | 删除对应 SQS 消息,避免重复处理 |
| 写入失败 | 不删除对应 SQS 消息,保留消息用于后续重试 |
| 消息格式不符合 S3 Event Notification | 记录错误,并跳过或停止处理 |
| 手动停止任务 | 任务停止轮询,并保存当前运行状态 |

## 与 Amazon S3 集成任务的区别

| 任务类型 | 处理对象 | 写入 Databend 的内容 | 典型用途 |
|----------|----------|----------------------|----------|
| Amazon S3 集成任务 | S3 文件内容 | CSV、Parquet 或 NDJSON 文件中的业务数据 | 文件数据导入 |
| Amazon SQS (S3) 集成任务 | SQS 中的 S3 ObjectCreated 事件 | 事件对应的 S3 对象数据 | 新对象自动接入、事件驱动导入 |

如果您的目标是定期扫描某个 S3 路径并导入文件内容,请使用 Amazon S3 集成任务。如果您的目标是基于 S3 ObjectCreated 事件触发接入,请使用 Amazon SQS (S3) 集成任务。
5 changes: 4 additions & 1 deletion docs/cn/guides/10-cloud/05-data-integration/task/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@ Databend Cloud 集成任务定义了数据如何从源端流入 Databend 中的
| 任务类型 | 说明 |
|----------|------|
| [Amazon S3](./01-s3.md) | 从 Amazon S3 导入 CSV、Parquet 或 NDJSON 文件,支持一次性导入和持续导入。 |
| [Amazon SQS (S3)](./04-sqs-s3.md) | 消费 SQS 队列中的 S3 对象创建事件,并将对应对象数据写入 Databend。 |
| [MySQL](./02-mysql.md) | 从 MySQL 表同步数据到 Databend,支持 `Snapshot`、`CDC Only` 和 `Snapshot + CDC`。 |
| [PostgreSQL](./03-postgres.md) | 从 PostgreSQL 表同步数据到 Databend,支持 `Snapshot`、`CDC Only` 和 `Snapshot + CDC`。 |

## 阅读建议

Expand All @@ -25,6 +27,7 @@ Databend Cloud 集成任务定义了数据如何从源端流入 Databend 中的
## 任务类型差异

- S3 任务面向文件导入场景,通常围绕文件路径、文件格式和导入策略进行配置。
- MySQL 任务面向表同步场景,通常围绕同步模式、主键、增量捕获和归档策略进行配置。
- SQS (S3) 任务面向 S3 事件驱动的数据接入场景,通常围绕 SQS 队列、S3 事件过滤、IAM Role 和目标表进行配置。
- MySQL 和 PostgreSQL 任务面向表同步场景,通常围绕同步模式、主键、增量捕获和归档策略进行配置。

<IndexOverviewList />
Loading
Loading