Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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
2 changes: 2 additions & 0 deletions TOC-tidb-cloud-lake.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@
- [PostgreSQL - 凭证](/tidb-cloud-lake/guides/postgresql-credentials.md)
- [FeiShuBot](/tidb-cloud-lake/guides/feishubot.md)
- [Kafka - 凭证](/tidb-cloud-lake/guides/kafka-credentials.md) ![PREVIEW](/media/tidb-cloud/blank_transparent_placeholder.png)
- [TiDB 数据源](/tidb-cloud-lake/guides/tidb-data-source.md) ![PREVIEW](/media/tidb-cloud/blank_transparent_placeholder.png)
- 集成任务
- [概览](/tidb-cloud-lake/guides/integration-tasks.md)
- [任务管理](/tidb-cloud-lake/guides/task-management.md)
Expand All @@ -56,6 +57,7 @@
- [MySQL 集成任务](/tidb-cloud-lake/guides/integrate-with-mysql.md)
- [PostgreSQL 集成任务](/tidb-cloud-lake/guides/integrate-with-postgresql.md)
- [Kafka Consumer 集成任务](/tidb-cloud-lake/guides/integrate-with-kafka.md) ![PREVIEW](/media/tidb-cloud/blank_transparent_placeholder.png)
- [TiDB 集成任务(预览版)](/tidb-cloud-lake/guides/integrate-with-tidb.md) ![PREVIEW](/media/tidb-cloud/blank_transparent_placeholder.png)
- 加载数据
- 使用 Stage
- [Stage 概述](/tidb-cloud-lake/guides/stage-overview.md)
Expand Down
1 change: 1 addition & 0 deletions TOC-tidb-cloud-releases.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
## TiDB X 内核发布说明

- [TiDB Cloud Premium 的内核版本管理](/tidb-cloud/releases/tidb-cloud-kernel-versioning.md)
- [TiDB-X-CLOUD.202603.1 Release Notes](/tidb-cloud/releases/tidb-x-cloud.202603.1.md)
- [TiDB-X-CLOUD.202510.1 发布说明](/tidb-cloud/releases/tidb-x-cloud.202510.1.md)

## 维护通知
Expand Down
2 changes: 1 addition & 1 deletion latest_translation_commit.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"target": "release-8.5",
"sha": "83e7cbb78907d14abe57998ef8637092399e0765"
"sha": "49ed15df968aedb44b0290df53e124ef740c6a67"
}
4 changes: 3 additions & 1 deletion sql-statements/sql-statement-create-index.md
Original file line number Diff line number Diff line change
Expand Up @@ -366,7 +366,9 @@ Query OK, 1 row affected (0.00 sec)
- 如果表使用了多值索引,不能通过 BR、TiCDC 或 TiDB Lightning 将该表备份、同步或导入到 v6.6.0 之前的 TiDB 集群。
- 对于包含复杂条件的查询,TiDB 可能无法选择多值索引。关于多值索引支持的条件模式,参见 [使用多值索引](/choose-index.md#use-multi-valued-indexes)。

## 部分索引 <span class="version-mark">从 v8.5.7 版本开始引入</span> {#partial-indexes-new-in-v857}
## 部分索引 {#partial-indexes}

<span class="version-mark">TiDB Self-Managed 和 TiDB Cloud Dedicated 从 v8.5.7 版本开始引入,TiDB Cloud Essential 和 Premium 从 CLOUD.202603.1 开始引入</span>

部分索引是建立在表中部分行子集上的索引。创建部分索引时,你可以指定一个条件表达式,也称为谓词,用于定义这个行子集。索引中仅包含满足该谓词的行的条目。

Expand Down
2 changes: 1 addition & 1 deletion sql-statements/sql-statement-modify-column.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ summary: TiDB 数据库中 MODIFY COLUMN 的用法概述。
- 修改 `DECIMAL` 精度
- 将 `VARCHAR(10)` 的长度缩短为 `VARCHAR(5)`

从 v8.5.5 开始,TiDB 对部分原本需要 Reorg-Data 的列类型变更进行了优化。当满足以下条件时,TiDB 只会重建受影响的索引,而不是整个表,从而提升执行效率:
从 v8.5.5 (对于 TiDB Self-Managed 和 TiDB Cloud Dedicated)和 CLOUD.202603.1(对于 TiDB Cloud Essential 和 Premium)开始,TiDB 对部分原本需要 Reorg-Data 的列类型变更进行了优化。当满足以下条件时,TiDB 只会重建受影响的索引,而不是整个表,从而提升执行效率:

- 当前会话使用严格的 [SQL 模式](/sql-mode.md)(`sql_mode` 包含 `STRICT_TRANS_TABLES` 或 `STRICT_ALL_TABLES`)。
- 表没有 TiFlash 副本。
Expand Down
2 changes: 1 addition & 1 deletion sql-statements/sql-statement-select.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ TableSample ::=

> **注意:**
>
> - 从 v8.5.6 版本开始,TiDB 支持在 `FOR UPDATE OF` 子句中使用表别名。为保持向后兼容性,在定义了别名时,你仍然可以引用基表名,但这会触发一条警告,建议使用显式别名。当查询涉及不同数据库中多个同名表时(例如,`FROM db1.t, db2.t FOR UPDATE OF t`),TiDB 现在会按照 `FROM` 子句中的顺序从左到右匹配目标表,而不是根据当前数据库上下文进行匹配。为避免歧义,建议你在 `FOR UPDATE OF` 子句中指定数据库名或使用别名。
> - 从 v8.5.6 (对于 TiDB Self-Managed 和 TiDB Cloud Dedicated)和 CLOUD.202603.1(对于 TiDB Cloud Essential 和 Premium)开始,TiDB 支持在 `FOR UPDATE OF` 子句中使用表别名。为保持向后兼容性,在定义了别名时,你仍然可以引用基表名,但这会触发一条警告,建议使用显式别名。当查询涉及不同数据库中多个同名表时(例如,`FROM db1.t, db2.t FOR UPDATE OF t`),TiDB 现在会按照 `FROM` 子句中的顺序从左到右匹配目标表,而不是根据当前数据库上下文进行匹配。为避免歧义,建议你在 `FOR UPDATE OF` 子句中指定数据库名或使用别名。
> - 从 v6.6.0 版本开始,TiDB 支持 [Resource Control](/tidb-resource-control-ru-groups.md)。你可以利用此功能在不同资源组中以不同优先级执行 SQL 语句。通过为这些资源组配置合适的配额和优先级,可以获得更好的调度控制。当启用资源控制时,语句优先级(`HIGH_PRIORITY`)将不再生效。建议使用 [Resource Control](/tidb-resource-control-ru-groups.md) 来管理不同 SQL 语句的资源使用。

## 示例
Expand Down
4 changes: 2 additions & 2 deletions tidb-cloud-lake/guides/amazon-sqs-s3-iam-role.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
---
title: Amazon SQS (S3) - IAM Role (Beta)
title: Amazon SQS (S3) - IAM Role (Preview)
summary: 了解如何在 {{{ .lake }}} 中创建 `Amazon SQS (S3) - IAM Role` 数据源。
---

# Amazon SQS (S3) - IAM Role (Beta)
# Amazon SQS (S3) - IAM Role (Preview)

本页介绍如何创建 `Amazon SQS (S3) - IAM Role` 数据源。该数据源存储访问 Amazon SQS 队列及其对应 S3 存储桶所需的配置,用于消费从 Amazon S3 投递到 SQS 的 S3 对象创建事件。

Expand Down
5 changes: 3 additions & 2 deletions tidb-cloud-lake/guides/data-integration-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,11 @@ summary: "{{{ .lake }}} 中的数据集成功能提供了一个可视化、无
| 任务类型 | 说明 |
|-----------|-------------|
| [Amazon S3](/tidb-cloud-lake/guides/integrate-with-amazon-s3.md) | 从 Amazon S3 导入 CSV、Parquet 或 NDJSON 文件,支持一次性或持续摄取。 |
| [Amazon SQS (S3) (Beta)](/tidb-cloud-lake/guides/integrate-with-amazon-sqs-s3.md) | 从 SQS 队列中消费 S3 对象创建事件,并将相应的对象数据写入 {{{ .lake }}}。 |
| [Amazon SQS (S3) 集成任务(Preview)](/tidb-cloud-lake/guides/integrate-with-amazon-sqs-s3.md) | 从 SQS 队列中消费 S3 对象创建事件,并将相应的对象数据写入 {{{ .lake }}}。 |
| [MySQL](/tidb-cloud-lake/guides/integrate-with-mysql.md) | 使用 `Snapshot`、`CDC Only` 或 `Snapshot + CDC` 模式同步 MySQL 中的表数据。 |
| [PostgreSQL](/tidb-cloud-lake/guides/integrate-with-postgresql.md) | 使用 `Snapshot`、`CDC Only` 或 `Snapshot + CDC` 模式同步 PostgreSQL 中的表数据。 |
| [Kafka Consumer Integration Task (Beta)](/tidb-cloud-lake/guides/integrate-with-kafka.md) | 持续消费 Kafka topic 中的消息,并将消息内容保存到内部对象存储中。 |
| [Kafka Consumer Integration Task (Preview)](/tidb-cloud-lake/guides/integrate-with-kafka.md) | 持续消费 Kafka topic 中的消息,并将消息内容保存到内部对象存储中。 |
| [TiDB 集成任务(预览版)](/tidb-cloud-lake/guides/integrate-with-tidb.md) | 使用 `Snapshot`、`CDC Only` 或 `Snapshot + CDC` 模式同步 TiDB 中的表数据。 |

## 推荐流程 {#recommended-flow}

Expand Down
7 changes: 4 additions & 3 deletions tidb-cloud-lake/guides/data-sources.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,14 @@ summary: "{{{ .lake }}} 中的数据源表示与外部系统的连接。它存
| 类型 | 用途 |
|------|---------|
| [Amazon S3 - 凭证](/tidb-cloud-lake/guides/aws-credentials.md) | 存储访问 Amazon S3 所需的 Access Key 和 Secret Key。这些凭证可在多个 S3 导入任务中复用。 |
| [Amazon SQS (S3) - IAM Role (Beta)](/tidb-cloud-lake/guides/amazon-sqs-s3-iam-role.md) | 存储 SQS (S3) 摄取所需的 queue URL、Region、IAM Role 和 S3 path scope。它可用于消费 S3 对象创建事件。 |
| [Amazon SQS (S3) - IAM Role (Preview)](/tidb-cloud-lake/guides/amazon-sqs-s3-iam-role.md) | 存储 SQS (S3) 摄取所需的 queue URL、Region、IAM Role 和 S3 path scope。它可用于消费 S3 对象创建事件。 |
| [MySQL - Credentials](/tidb-cloud-lake/guides/mysql-credentials.md) | 存储访问 MySQL 所需的主机、端口、用户名、密码和数据库信息。这些设置可在多个 MySQL 同步任务中复用。 |
| [PostgreSQL - Credentials](/tidb-cloud-lake/guides/postgresql-credentials.md) | 存储访问 PostgreSQL 所需的主机、端口、用户名、密码和数据库信息。这些设置可在多个 PostgreSQL 同步任务中复用。 |
| [FeiShuBot](/tidb-cloud-lake/guides/feishubot.md) | 存储用于任务失败通知及类似场景的飞书机器人 webhook 和消息模板。 |
| [Kafka - 凭证(Beta)](/tidb-cloud-lake/guides/kafka-credentials.md) | 存储访问 Kafka 所需的 broker 地址、认证方法和连接凭证。这些设置可供 Kafka Consumer 任务复用。 |
| [Kafka - Credentials(Preview)](/tidb-cloud-lake/guides/kafka-credentials.md) | 存储访问 Kafka 所需的 broker 地址、认证方法和连接凭证。这些设置可供 Kafka Consumer 任务复用。 |
| [TiDB 集成任务(预览版)](/tidb-cloud-lake/guides/integrate-with-tidb.md) | 存储 TiDB Cloud Lake 用于读 TiDB 集群 stage 的数据所需的对象存储位置、凭证以及可选的事件队列。这些设置可在多个 TiDB 同步任务中复用。 |

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

## 管理数据源 {#managing-data-sources}

Expand Down
6 changes: 3 additions & 3 deletions tidb-cloud-lake/guides/integrate-with-amazon-sqs-s3.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
---
title: Amazon SQS (S3) 集成任务(Beta)
title: Amazon SQS (S3) 集成任务(Preview)
summary: 了解如何创建 Amazon SQS (S3) 集成任务,该任务从 SQS 队列消费 S3 对象创建事件,并将对应的对象数据写入 {{{ .lake }}}。
---

# Amazon SQS (S3) 集成任务(Beta)
# Amazon SQS (S3) 集成任务(Preview)

本文介绍如何创建 Amazon SQS (S3) 集成任务。该任务从 SQS 队列消费 S3 对象创建事件,并将对应的对象数据写入 {{{ .lake }}}。

该任务专为 S3 事件驱动的数据摄取而设计。上游系统将对象写入 S3 后,S3 会向 SQS 发送 `ObjectCreated` 事件。{{{ .lake }}} 通过 AssumeRole 消费 SQS 消息,并根据事件中的 bucket 和对象键将数据写入 {{{ .lake }}}。

如果你需要先创建可复用的 SQS (S3) 连接设置,请参见 [Amazon SQS (S3) - IAM Role (Beta)](/tidb-cloud-lake/guides/amazon-sqs-s3-iam-role.md)。
如果你需要先创建可复用的 SQS (S3) 连接设置,请参见 [Amazon SQS (S3) - IAM Role (Preview)](/tidb-cloud-lake/guides/amazon-sqs-s3-iam-role.md)。

## 使用场景 {#use-cases}

Expand Down
6 changes: 3 additions & 3 deletions tidb-cloud-lake/guides/integrate-with-kafka.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
---
title: Kafka Consumer Integration Task (Beta)
title: Kafka Consumer Integration Task (Preview)
summary: 创建 Kafka Consumer 任务,持续消费 Kafka topic 中的消息,并将消息内容保存到内部对象存储(租户 Stage)。
---

# Kafka Consumer Integration Task (Beta)
# Kafka Consumer Integration Task (Preview)

本文介绍如何创建 Kafka Consumer 任务,以持续消费 Kafka topic 中的消息,并将消息内容保存到内部对象存储(租户 Stage)。

与 S3、MySQL 或 PostgreSQL 数据集成任务不同,Kafka Consumer 任务不会直接写入常规目标表。任务创建并启动后,你可以使用 `@kafka_consumer/<task_name>/` stage 路径查看已保存的消息对象,并通过 SQL 查询其内容。

如果你需要先创建可复用的 Kafka 连接设置,请参见 [Kafka - 凭证(Beta)](/tidb-cloud-lake/guides/kafka-credentials.md)。
如果你需要先创建可复用的 Kafka 连接设置,请参见 [Kafka - Credentials(Preview)](/tidb-cloud-lake/guides/kafka-credentials.md)。

## 使用场景 {#use-cases}

Expand Down
122 changes: 122 additions & 0 deletions tidb-cloud-lake/guides/integrate-with-tidb.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
---
title: TiDB 集成任务(预览版)
summary: 使用全量快照导入、持续 CDC 或两者结合的方式,将数据从 TiDB 集群复制到 TiDB Cloud Lake。
---

# TiDB 集成任务(预览版)

TiDB 集成任务用于将数据从 TiDB 集群复制到 TiDB Cloud Lake。它支持通过 Dumpling 导出的全量 `Snapshot` 导入、通过 TiCDC changefeed 的持续 `Change Data Capture (CDC)`,或两者结合使用。

如果你需要先创建可复用的暂存存储桶设置,请参见 [TiDB 数据源](/tidb-cloud-lake/guides/tidb-data-source.md)。

## 使用场景 {#use-cases}

- 将 TiDB 数据库和表迁移到 TiDB Cloud Lake 以进行分析
- 通过 TiCDC 使 TiDB Cloud Lake 与 TiDB 持续保持同步
- 在一个任务中将分片数据库整合到按源划分的目标数据库中
- 仅运行一次全量导入,或将全量导入与持续变更捕获结合使用

## 同步模式 {#sync-modes}

| 同步模式 | 描述 |
|-----------|-------------|
| Snapshot | 执行一次性全量数据导入,数据来源于 Dumpling 导出。适用于初始迁移或周期性批量刷新。 |
| CDC Only | 持续消费 TiCDC changefeed,并应用实时变更(插入、修改、删除)。 |
| Snapshot + CDC | 先执行全量快照导入,然后切换到持续 CDC。推荐用于大多数使用场景。 |

## 前提条件 {#prerequisites}

在创建 TiDB 集成任务之前,请确保:

- 已创建 **TiDB** 数据源。
- 数据源中配置的对象存储存储桶可从 TiDB Cloud Lake 访问。
- 你要同步的表对应的 TiCDC / Dumpling 导出内容,已写入该存储桶中,并位于任务中将要引用的前缀下。

## 创建 TiDB 集成任务 {#creating-a-tidb-integration-task}

本节将指导你在 TiDB Cloud Lake 中创建 TiDB 集成任务。

### 步骤 1:配置基本设置 {#step-1-configure-basic-settings}

1. 进入 **Data** > **Data Integration**,然后点击 **Create Task**。
2. 选择一个 **TiDB** 数据源,然后配置以下基本设置:

| 字段 | 必填 | 描述 |
|-------|----------|-------------|
| **Data Source** | 是 | 选择一个已有的 **TiDB - Credentials** 数据源。你也可以在此处创建一个 |
| **Name** | 是 | 此集成任务的名称 |
| **Sync Mode** | 是 | 选择 **Snapshot**、**CDC Only** 或 **Snapshot + CDC** |
| **Table Rules** | 是 | 用于选择要同步哪些源对象的规则。参见 [表规则](#table-rules) |
| **Max Matched Tables** | 否 | 规则可匹配的表数量上限。留空则使用系统默认值(500) |
| **Dumpling S3 Prefix** | 是(Snapshot 模式) | 保存 Dumpling 导出的存储桶前缀,例如 `dumpling/export` |
| **Table Parallelism** | 否 | 并发导入的表数量(默认值:4) |
| **Warehouse** | 是 | 用于运行该任务的 TiDB Cloud Lake 计算集群 |

### 表规则 {#table-rules}

每行输入一条规则。每条规则的格式为 `schemaPattern.tablePattern`,可选择使用前缀 `!` 表示排除:

```text
app.orders an exact table
shard_*.* every table of every shard_ database
!*.tmp_* exclude temporary tables
```

规则按从后到前的顺序进行求值。第一个同时匹配数据库模式和表模式的规则决定最终结果。未匹配任何规则的对象会被排除。如果规则列表中只有排除规则,则会隐式添加一个前置 `*.*`。

每个匹配到的源数据库都会写入各自独立的目标数据库,因此不同源数据库中同名的表会保持分离。这也是在单个任务中同步多个源数据库的唯一方式。

点击 **Preview Matched Tables**,可根据当前规则对前缀下实际存在的对象进行匹配评估。预览结果会列出匹配到的源数据库和表,以及推导出的目标数据库和表。

### Snapshot 选项 {#snapshot-options}

当同步模式包含快照时,还可以通过以下附加选项控制 Dumpling 导出的导入方式:

| 字段 | 默认值 | 描述 |
| ------------------------------ | ------- | ------------------------------------------------------------------------------------------------------------------------ |
| **Auto Create Table** | Yes | 根据源 schema 自动创建目标表 |
| **Purge After Load** | No | 成功导入后,从存储桶中删除源对象。需要具备删除权限 |
| **On Error** | Abort | **Abort** 表示在遇到第一个错误时退出;**Continue** 表示跳过失败的行并继续导入 |
| **CSV Separator** | `,` | Dumpling 导出使用的字段分隔符 |
| **Skip Header Rows** | Yes | 第一行是否包含列名。当导出包含表头行时,选择 **YES** |
| **Export Escaped Backslashes** | No | 必须与 Dumpling 的 `--escape-backslash` 设置保持一致。 |

### 目标名称前后缀 {#target-name-affixes}

目标数据库名和表名由源名称派生而来,并可附加可选的前后缀:

```text
target database = targetDatabasePrefix + sourceDatabase + targetDatabaseSuffix
target table = targetTablePrefix + sourceTable + targetTableSuffix
```

如果将这些前后缀留空,则直接使用源名称。前后缀只能包含字母、数字和下划线。

例如,当数据库前缀为 `src_` 时,源数据库 `shard_1` 和表 `orders` 会写入到 `src_shard_1.orders`。

### 步骤 2:创建任务 {#step-2-create-the-task}

检查设置无误后,点击 **Create** 创建集成任务。

## 不同同步模式下的任务行为 {#task-behavior-by-sync-mode}

| 同步模式 | 行为 |
|-----------|----------|
| 快照 | 运行一次,并在全量导入完成后自动下线。 |
| CDC Only | 持续运行,消费 changefeed 事件,直到手动下线。 |
| Snapshot + CDC | 先完成全量快照导入,然后切换到持续 CDC,直到手动下线。 |

对于 CDC 任务,进度会保存为 checkpoint。当任务被下线并重启后,会从保存的位置继续,而不是从头重新导入。

## 高级配置 {#advanced-configuration}

以下设置为任务级参数,用于调优发现、导入和合并过程。

| 参数 | Default | 描述 |
|-----------|---------|-------------|
| **Table Parallelism** | 4 | 控制并发处理的表数量。更高的值会提高吞吐,但也会消耗更多计算集群资源。 |
| **Poll Interval** | 60 seconds | 任务列出暂存存储桶(以及消费可选 SQS 队列)以发现新的 changefeed / 导出对象的频率。更短的间隔可降低延时,但会增加 list 请求次数。对于 OSS,仅使用轮询进行发现。 |
| **Batch File Count** | 100 | 每批处理的 CDC 事件文件最大数量。可根据需要调整,以平衡内存使用和吞吐。 |
| **Merge Interval** | 30 seconds | 将捕获到的变更合并到目标表的频率。更短的间隔可降低延时,但会增加合并活动。 |
| **Allow Delete** | Disabled | 是否将从 changefeed 捕获到的 `DELETE` 操作应用到目标表。禁用时,会忽略删除操作并保留历史行。 |
| **Max Matched Tables** | 500 | 规则可匹配的源表数量上限。如果规则匹配数量超过此限制,任务会失败,并列出超限的匹配项。 |
Loading
Loading