Skip to content

Commit 5f8f26b

Browse files
authored
docs: update data-integration index and add sqs-s3 datasouce/task docs (#3426)
* docs: update data-integration index and add sqs-s3 datasouce/task docs * update: remove KMS notes (not support) * fix: MDX compilation failed for 00-what-is-stage.md
1 parent 94cfc05 commit 5f8f26b

12 files changed

Lines changed: 1084 additions & 6 deletions

File tree

docs/cn/guides/10-cloud/05-data-integration/datasource/05-sqs-s3.md

Lines changed: 419 additions & 0 deletions
Large diffs are not rendered by default.

docs/cn/guides/10-cloud/05-data-integration/datasource/index.md

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

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

2123
## 管理数据源
2224

docs/cn/guides/10-cloud/05-data-integration/index.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ Databend Cloud 的 Data Integration 功能通过可视化、无代码界面,
1111

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

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

2830
## 推荐使用流程
2931

docs/cn/guides/10-cloud/05-data-integration/task/00-management.md

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

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

5255
- [Amazon S3 集成任务](./01-s3.md)
5356
- [MySQL 集成任务](./02-mysql.md)
57+
- [PostgreSQL 集成任务](./03-postgres.md)
58+
- [Amazon SQS (S3) 集成任务](./04-sqs-s3.md)
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
---
2+
title: Amazon SQS (S3) 集成任务
3+
slug: /cloud/data-integration/sqs-s3-event
4+
---
5+
6+
本页介绍如何创建 Amazon SQS (S3) 集成任务,消费 SQS 队列中的 S3 对象创建事件,并将对应对象数据写入 Databend。
7+
8+
该任务面向 S3 事件驱动的数据接入场景:上游系统向 S3 写入对象后,S3 将 `ObjectCreated` 事件发送到 SQS,Databend Cloud 通过 AssumeRole 消费 SQS 消息,并基于事件中的存储桶和对象 key 将数据写入 Databend。
9+
10+
如需先创建可复用的 SQS (S3) 连接配置,请参见 [Amazon SQS (S3)](../datasource/05-sqs-s3.md)
11+
12+
## 适用场景
13+
14+
- 基于 S3 `ObjectCreated` 事件自动接入新写入的 S3 对象
15+
- 使用 S3 事件通知驱动数据导入,降低新文件到达后的处理延迟
16+
- 避免仅通过轮询 S3 路径发现新文件
17+
18+
## 工作流程
19+
20+
1. 上游系统向 S3 存储桶写入对象。
21+
2. S3 Event Notification 将 `ObjectCreated` 事件发送到 SQS 标准队列。
22+
3. Databend Cloud 通过用户配置的 IAM Role 从 SQS 队列读取消息。
23+
4. 任务解析消息中的 S3 事件记录。
24+
5. 任务根据 S3 事件记录中的存储桶、对象 key 和文件格式写入 Databend 目标表。
25+
6. 写入成功后,任务从 SQS 队列删除已处理消息。
26+
27+
:::note
28+
S3 事件通知和 SQS 标准队列都可能产生重复消息。Databend 会处理失败重试;如果业务需要严格去重,请结合对象信息、事件时间、`sequencer` 或 SQS 消息 ID 设计下游去重逻辑。
29+
:::
30+
31+
## 前置条件
32+
33+
在创建 SQS (S3) 集成任务前,请确保:
34+
35+
- 已创建 **Amazon SQS (S3)** 数据源
36+
- S3 存储桶已配置 `ObjectCreated` 事件通知,并将事件发送到目标 SQS 队列
37+
- SQS 队列策略允许 Amazon S3 执行 `sqs:SendMessage`
38+
- 用户 IAM Role 允许 Databend 平台角色通过 `sts:AssumeRole` 访问
39+
- 用户 IAM Role 具有读取目标 S3 对象和消费目标 SQS 队列的权限
40+
- SQS 队列中保存的是标准 S3 Event Notification 消息格式
41+
- S3 notification 的存储桶、prefix 和 suffix 与数据源配置保持一致
42+
43+
## 创建 SQS (S3) 集成任务
44+
45+
### 步骤 1:基本信息
46+
47+
1. 前往 **Data** > **Data Integration**,点击 **Create Task**
48+
2. 选择一个 SQS (S3) 数据源,然后配置基本参数:
49+
50+
| 字段 | 是否必填 | 说明 |
51+
|------|----------|------|
52+
| **Data Source** || 从下拉列表中选择已有的 **Amazon SQS (S3)** 数据源 |
53+
| **Name** || 当前集成任务名称 |
54+
| **File Format** || S3 对象的文件格式,例如 CSV、Parquet 或 NDJSON |
55+
| **Object Key Prefix** || 仅处理指定前缀的对象事件,例如 `raw/events/`。应与数据源和 S3 notification filter 保持一致 |
56+
| **Object Key Suffix** || 仅处理指定后缀的对象事件,例如 `.json``.parquet`。应与数据源和 S3 notification filter 保持一致 |
57+
58+
:::tip
59+
建议优先在 S3 Event Notification 中配置前缀或后缀过滤,并与数据源和任务中的过滤条件保持一致,减少进入 SQS 的无关消息数量。
60+
:::
61+
62+
### 步骤 2:预览数据
63+
64+
完成基本设置后,点击 **Next** 预览源数据。
65+
66+
预览结果与 [Amazon S3 集成任务](./01-s3.md) 一致。系统会根据 SQS (S3) 配置定位对应的 S3 对象,读取文件内容并展示:
67+
68+
- 包含列名和数据类型的示例数据
69+
- 匹配到的 S3 对象列表及其大小
70+
71+
:::note
72+
如果当前路径范围内没有可预览的 S3 对象,预览页可能无法展示样例数据。您可以先向目标 S3 路径上传一个匹配 prefix / suffix 的测试对象后再重试预览。
73+
:::
74+
75+
### 步骤 3:设置目标表
76+
77+
配置 Databend 中的目标位置:
78+
79+
| 字段 | 说明 |
80+
|------|------|
81+
| **Warehouse** | 选择用于运行 SQS (S3) 集成任务的 Databend Cloud Warehouse |
82+
| **Target Database** | 选择 Databend 中的目标数据库 |
83+
| **Target Table** | 写入数据的目标表名 |
84+
85+
系统会根据预览到的 S3 对象内容推断列名和数据类型。继续之前,您可以检查并编辑目标表结构;如果写入已有表,请从现有表中选择目标表并确认列映射无误。
86+
87+
点击 **Create** 完成集成任务创建。
88+
89+
## 任务行为
90+
91+
SQS (S3) 集成任务是持续运行任务。启动后,它会周期性从 SQS 队列读取消息并写入目标表,直到被手动停止。
92+
93+
| 场景 | 行为 |
94+
|------|------|
95+
| 队列中有消息 | 读取消息,解析 S3 事件记录,并按事件中的对象信息写入目标表 |
96+
| 写入成功 | 删除对应 SQS 消息,避免重复处理 |
97+
| 写入失败 | 不删除对应 SQS 消息,保留消息用于后续重试 |
98+
| 消息格式不符合 S3 Event Notification | 记录错误,并跳过或停止处理 |
99+
| 手动停止任务 | 任务停止轮询,并保存当前运行状态 |
100+
101+
## 与 Amazon S3 集成任务的区别
102+
103+
| 任务类型 | 处理对象 | 写入 Databend 的内容 | 典型用途 |
104+
|----------|----------|----------------------|----------|
105+
| Amazon S3 集成任务 | S3 文件内容 | CSV、Parquet 或 NDJSON 文件中的业务数据 | 文件数据导入 |
106+
| Amazon SQS (S3) 集成任务 | SQS 中的 S3 ObjectCreated 事件 | 事件对应的 S3 对象数据 | 新对象自动接入、事件驱动导入 |
107+
108+
如果您的目标是定期扫描某个 S3 路径并导入文件内容,请使用 Amazon S3 集成任务。如果您的目标是基于 S3 ObjectCreated 事件触发接入,请使用 Amazon SQS (S3) 集成任务。

docs/cn/guides/10-cloud/05-data-integration/task/index.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ Databend Cloud 集成任务定义了数据如何从源端流入 Databend 中的
1313
| 任务类型 | 说明 |
1414
|----------|------|
1515
| [Amazon S3](./01-s3.md) | 从 Amazon S3 导入 CSV、Parquet 或 NDJSON 文件,支持一次性导入和持续导入。 |
16+
| [Amazon SQS (S3)](./04-sqs-s3.md) | 消费 SQS 队列中的 S3 对象创建事件,并将对应对象数据写入 Databend。 |
1617
| [MySQL](./02-mysql.md) | 从 MySQL 表同步数据到 Databend,支持 `Snapshot``CDC Only``Snapshot + CDC`|
18+
| [PostgreSQL](./03-postgres.md) | 从 PostgreSQL 表同步数据到 Databend,支持 `Snapshot``CDC Only``Snapshot + CDC`|
1719

1820
## 阅读建议
1921

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

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

3033
<IndexOverviewList />

0 commit comments

Comments
 (0)