diff --git a/TOC-tidb-cloud-lake.md b/TOC-tidb-cloud-lake.md index 741f1b124609d..a1fccbeaf587d 100644 --- a/TOC-tidb-cloud-lake.md +++ b/TOC-tidb-cloud-lake.md @@ -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) @@ -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) diff --git a/TOC-tidb-cloud-releases.md b/TOC-tidb-cloud-releases.md index fe280ec4bee87..1a3b49823abca 100644 --- a/TOC-tidb-cloud-releases.md +++ b/TOC-tidb-cloud-releases.md @@ -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) ## 维护通知 diff --git a/latest_translation_commit.json b/latest_translation_commit.json index 8b9944b7a36b3..dbb83a9272650 100644 --- a/latest_translation_commit.json +++ b/latest_translation_commit.json @@ -1,4 +1,4 @@ { "target": "release-8.5", - "sha": "83e7cbb78907d14abe57998ef8637092399e0765" + "sha": "49ed15df968aedb44b0290df53e124ef740c6a67" } diff --git a/sql-statements/sql-statement-create-index.md b/sql-statements/sql-statement-create-index.md index b49a35b5f9028..9955f874c92ee 100644 --- a/sql-statements/sql-statement-create-index.md +++ b/sql-statements/sql-statement-create-index.md @@ -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)。 -## 部分索引 从 v8.5.7 版本开始引入 {#partial-indexes-new-in-v857} +## 部分索引 {#partial-indexes} + +TiDB Self-Managed 和 TiDB Cloud Dedicated 从 v8.5.7 版本开始引入,TiDB Cloud Essential 和 Premium 从 CLOUD.202603.1 开始引入 部分索引是建立在表中部分行子集上的索引。创建部分索引时,你可以指定一个条件表达式,也称为谓词,用于定义这个行子集。索引中仅包含满足该谓词的行的条目。 diff --git a/sql-statements/sql-statement-modify-column.md b/sql-statements/sql-statement-modify-column.md index 25a4dbd8cb395..13b96e770a489 100644 --- a/sql-statements/sql-statement-modify-column.md +++ b/sql-statements/sql-statement-modify-column.md @@ -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 副本。 diff --git a/sql-statements/sql-statement-select.md b/sql-statements/sql-statement-select.md index 36b824c61b8fe..a536ef358676e 100644 --- a/sql-statements/sql-statement-select.md +++ b/sql-statements/sql-statement-select.md @@ -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 语句的资源使用。 ## 示例 diff --git a/tidb-cloud-lake/guides/amazon-sqs-s3-iam-role.md b/tidb-cloud-lake/guides/amazon-sqs-s3-iam-role.md index a80c9713483fc..7c5324756d946 100644 --- a/tidb-cloud-lake/guides/amazon-sqs-s3-iam-role.md +++ b/tidb-cloud-lake/guides/amazon-sqs-s3-iam-role.md @@ -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 对象创建事件。 diff --git a/tidb-cloud-lake/guides/data-integration-overview.md b/tidb-cloud-lake/guides/data-integration-overview.md index 7202a9263d560..205c9d96babd5 100644 --- a/tidb-cloud-lake/guides/data-integration-overview.md +++ b/tidb-cloud-lake/guides/data-integration-overview.md @@ -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} diff --git a/tidb-cloud-lake/guides/data-sources.md b/tidb-cloud-lake/guides/data-sources.md index a1a524e50d2ad..aca51c4d6910c 100644 --- a/tidb-cloud-lake/guides/data-sources.md +++ b/tidb-cloud-lake/guides/data-sources.md @@ -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} diff --git a/tidb-cloud-lake/guides/integrate-with-amazon-sqs-s3.md b/tidb-cloud-lake/guides/integrate-with-amazon-sqs-s3.md index b162c2501099e..b9d9a73a63054 100644 --- a/tidb-cloud-lake/guides/integrate-with-amazon-sqs-s3.md +++ b/tidb-cloud-lake/guides/integrate-with-amazon-sqs-s3.md @@ -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} diff --git a/tidb-cloud-lake/guides/integrate-with-kafka.md b/tidb-cloud-lake/guides/integrate-with-kafka.md index 3b1416c99ea7f..1039a43409573 100644 --- a/tidb-cloud-lake/guides/integrate-with-kafka.md +++ b/tidb-cloud-lake/guides/integrate-with-kafka.md @@ -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//` 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} diff --git a/tidb-cloud-lake/guides/integrate-with-tidb.md b/tidb-cloud-lake/guides/integrate-with-tidb.md new file mode 100644 index 0000000000000..c3c993d69873f --- /dev/null +++ b/tidb-cloud-lake/guides/integrate-with-tidb.md @@ -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 | 规则可匹配的源表数量上限。如果规则匹配数量超过此限制,任务会失败,并列出超限的匹配项。 | \ No newline at end of file diff --git a/tidb-cloud-lake/guides/integration-tasks.md b/tidb-cloud-lake/guides/integration-tasks.md index 7555ec1e34849..07cd4c2efd115 100644 --- a/tidb-cloud-lake/guides/integration-tasks.md +++ b/tidb-cloud-lake/guides/integration-tasks.md @@ -14,10 +14,11 @@ summary: 本页概述 {{{ .lake }}} 中的集成任务。集成任务定义了 | Task Type | Description | |-----------|-------------| | [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 的表数据。 | ## 阅读指南 {#reading-guide} @@ -30,5 +31,5 @@ summary: 本页概述 {{{ .lake }}} 中的集成任务。集成任务定义了 - S3 任务适用于文件导入场景,主要关注文件路径模式、文件格式和摄取行为。 - SQS (S3) 任务适用于由 S3 事件驱动的数据摄取场景,主要关注 SQS 队列、S3 事件过滤器、IAM Role 和目标表。 -- MySQL 和 PostgreSQL 任务适用于表同步场景,主要关注同步模式、主键、增量捕获和归档调度。 +- MySQL、PostgreSQL 和 TiDB 任务适用于表同步场景,主要关注同步模式、主键、增量捕获和归档调度。 - Kafka Consumer 任务适用于消息消费场景,主要关注 topic、起始位置、批大小、批等待间隔以及租户 Stage 查询。 \ No newline at end of file diff --git a/tidb-cloud-lake/guides/kafka-credentials.md b/tidb-cloud-lake/guides/kafka-credentials.md index a602d36988e83..ccf330757cb53 100644 --- a/tidb-cloud-lake/guides/kafka-credentials.md +++ b/tidb-cloud-lake/guides/kafka-credentials.md @@ -1,13 +1,13 @@ --- -title: Kafka - Credentials(Beta) +title: Kafka - Credentials(Preview) summary: 创建一个 “Kafka - Credentials” 数据源,用于存储 Kafka 连接信息,以便在 Kafka Consumer 集成任务中复用。 --- -# Kafka - Credentials(Beta) +# Kafka - Credentials(Preview) 本页介绍如何创建 `Kafka - Credentials` 数据源。该数据源用于存储访问 Kafka 集群所需的 broker 地址、认证方法和连接凭据。你可以在多个 Kafka Consumer 集成任务中复用这些设置。 -`Kafka - Credentials` 仅存储 Kafka 连接信息。它本身不会消费消息。实际读取 Kafka topic 消息并将其写入内部对象存储的过程,由 [Kafka Consumer Integration Task (Beta)](/tidb-cloud-lake/guides/integrate-with-kafka.md) 执行。 +`Kafka - Credentials` 仅存储 Kafka 连接信息。它本身不会消费消息。实际读取 Kafka topic 消息并将其写入内部对象存储的过程,由 [Kafka Consumer Integration Task (Preview)](/tidb-cloud-lake/guides/integrate-with-kafka.md) 执行。 ## 使用场景 {#use-cases} @@ -40,4 +40,4 @@ summary: 创建一个 “Kafka - Credentials” 数据源,用于存储 Kafka ## 后续步骤 {#next-steps} -创建数据源后,你可以使用它来创建 [Kafka Consumer Integration Task (Beta)](/tidb-cloud-lake/guides/integrate-with-kafka.md)。 +创建数据源后,你可以使用它来创建 [Kafka Consumer Integration Task (Preview)](/tidb-cloud-lake/guides/integrate-with-kafka.md)。 diff --git a/tidb-cloud-lake/guides/task-management.md b/tidb-cloud-lake/guides/task-management.md index 956548f985961..822cd68c43c17 100644 --- a/tidb-cloud-lake/guides/task-management.md +++ b/tidb-cloud-lake/guides/task-management.md @@ -53,7 +53,7 @@ summary: 本页介绍数据集成任务的常见操作,包括任务创建流 有关字段级配置和详细行为,请继续阅读相应的任务指南: - [Amazon S3 集成任务](/tidb-cloud-lake/guides/integrate-with-amazon-s3.md) -- [Amazon SQS (S3) 集成任务(Beta)](/tidb-cloud-lake/guides/integrate-with-amazon-sqs-s3.md) +- [Amazon SQS (S3) 集成任务(Preview)](/tidb-cloud-lake/guides/integrate-with-amazon-sqs-s3.md) - [MySQL Integration Task](/tidb-cloud-lake/guides/integrate-with-mysql.md) - [PostgreSQL 集成任务](/tidb-cloud-lake/guides/integrate-with-postgresql.md) -- [Kafka Consumer Integration Task (Beta)](/tidb-cloud-lake/guides/integrate-with-kafka.md) +- [Kafka Consumer Integration Task (Preview)](/tidb-cloud-lake/guides/integrate-with-kafka.md) diff --git a/tidb-cloud-lake/guides/tidb-data-source.md b/tidb-cloud-lake/guides/tidb-data-source.md new file mode 100644 index 0000000000000..7a42c2e78e03d --- /dev/null +++ b/tidb-cloud-lake/guides/tidb-data-source.md @@ -0,0 +1,102 @@ +--- +title: TiDB 数据源(预览) +summary: 介绍如何在 TiDB Cloud Lake 中设置 TiDB 数据源,包括存储和身份验证配置。 +--- + +# TiDB 数据源(预览) + +**TiDB** 数据源用于存储对象存储位置、凭证以及可选的事件队列,TiDB Cloud Lake 会使用这些信息读取由 TiDB 集群暂存的数据。它不会连接到 TiDB 服务器本身。Dumpling 和 TiCDC 会将导出数据和变更事件写入对象存储 bucket,而 TiDB Cloud Lake 则从该 bucket 中读取数据。 + +## 使用场景 {#use-cases} + +- 为多个 TiDB 同步任务集中管理 staging bucket、凭证和可选的 SQS 队列 +- 避免在每个任务中重复输入相同的 bucket 和授权设置 +- 使用 IAM Role 代替静态密钥,使 TiDB Cloud Lake 获取短期凭证 +- 当多个任务引用同一个 bucket、role 或 queue 时,可在一个位置统一更新 + +## 为集成准备 TiDB {#prepare-tidb-for-integration} + +TiDB Cloud 会将全量快照(Dumpling)和增量变更(TiCDC)导出到对象存储 bucket。由于不同 TiDB Cloud 套餐之间存在差异,我们建议针对每种套餐采用特定的设置路径,以尽量减少配置并确保数据兼容。 + +- **Premium** 或 **BYOC**:使用 [TiDB Cloud console **Data Pipeline**](https://docs.pingcap.com/tidbcloud/data-pipeline-sink-to-lake/?plan=premium) UI 在一个位置设置和管理导出与导入。 +- **Essential**:使用 console 的 **Export** 和 **Changefeed** 功能,[手动设置到 TiDB Cloud Lake 的数据管道](https://docs.pingcap.com/tidbcloud/data-pipeline-essential-sink-to-lake/?plan=essential)。 +- **Dedicated**:使用 [Dumpling](https://docs.pingcap.com/tidb/stable/dumpling-overview) 和 console 的 **Changefeed** 功能,[手动设置到 TiDB Cloud Lake 的数据管道](https://docs.pingcap.com/tidbcloud/data-pipeline-dedicated-sink-to-lake/)。 + +## 创建 TiDB 数据源 {#create-tidb-data-source} + +1. 进入 **Data** > **Data Sources**,然后点击 **Create**。 +2. 选择 **TiDB** 作为服务,然后填写数据源的 **Name**。 +3. 选择 **Storage Provider** 和 **Authentication Method**,然后填写连接详细信息。显示的字段取决于你选择的组合。参见下文的 [Amazon S3](#amazon-s3) 或 [Alibaba Cloud OSS](#alibaba-cloud-oss)。 + + > **Note:** + > + > 如有可能,请使用与你的 TiDB Cloud Lake 部署相同的存储提供商和 region。 + +4. 点击 **Test Connectivity** 验证 bucket 和凭证。如果测试成功,点击 **OK** 保存数据源。 + +## Amazon S3 {#amazon-s3} + +当存储提供商为 **Amazon S3** 时,请选择以下其中一种身份验证方法。 + +### 身份验证方法:Role ARN(推荐) {#authentication-method-role-arn-recommended} + +Role ARN 使用 AssumeRole 模型。TiDB Cloud Lake 会假设你 AWS 账户中的 IAM Role 并获取临时凭证,因此你无需将静态密钥交给 TiDB Cloud Lake。 + +在保存数据源之前,你的 IAM Role 信任策略必须信任这两个平台角色(TiDB Cloud Lake 设置与验证角色,以及 TiDB Cloud Lake 数据加载角色),并在 `sts:ExternalId` 条件中指定对应的 External ID。有关完整的信任策略配置,请参见 [Authenticate with AWS IAM Role](https://docs.pingcap.com/tidbcloudlake/authenticate-with-aws-iam-role/)。 + +| 字段 | 必填 | 说明 | +| ------------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------- | +| **Name** | 是 | 此数据源的描述性名称 | +| **Storage Provider** | 是 | 选择 **Amazon S3** | +| **Authentication Method** | 是 | 选择 **Role ARN** | +| **Role ARN** | 是 | 你 AWS 账户中的 IAM Role ARN,TiDB Cloud Lake 被允许假设该角色,例如 `arn:aws:iam::123456789012:role/tidbcloud-lake-tidb` | +| **S3 Bucket Name** | 是 | TiCDC / Dumpling 暂存数据、供 TiDB Cloud Lake 加载的 bucket | +| **S3 Region** | 是 | bucket 所在的 AWS Region,例如 `us-east-1` | +| **S3 Endpoint** | 否 | 仅用于 MinIO 等兼容 S3 的存储,例如 `http://localhost:9000`。对于 Amazon S3 请留空 | +| **SQS Queue URL** | 否 | 用于事件驱动模式的可选标准 SQS 队列 URL。参见 [可选 SQS 队列](#optional-sqs-queue) | + +### 身份验证方法:Access Key / Secret Key {#authentication-method-access-key-secret-key} + +当你更倾向于使用静态凭证时,可使用此方法,例如用于不支持角色假设的兼容 S3 存储。 + +更多信息,请参见 [Amazon S3 - Credentials](https://docs.pingcap.com/tidbcloudlake/aws-credentials/)。 + +| 字段 | 必填 | 说明 | +|-------|----------|-------------| +| **Name** | 是 | 此数据源的描述性名称 | +| **Storage Provider** | 是 | 选择 **Amazon S3** | +| **Authentication Method** | 是 | 选择 **Access Key / Secret Key** | +| **S3 Access Key** | 是 | 具有对 staging 存储桶访问权限的 Access key ID | +| **S3 Secret Key** | 是 | 与 access key ID 配对的 Secret access key | +| **S3 Bucket Name** | 是 | TiCDC / Dumpling 暂存数据、供 TiDB Cloud Lake 加载的存储桶 | +| **S3 Region** | 是 | 存储桶所在的 AWS Region | +| **S3 Endpoint** | 否 | 仅用于兼容 S3 的存储。对于 Amazon S3 请留空 | +| **SQS Queue URL** | 否 | 用于事件驱动模式的可选标准 SQS 队列 URL | + +## Alibaba Cloud OSS {#alibaba-cloud-oss} + +当存储提供商为 **Alibaba Cloud OSS** 时,TiDB Cloud Lake 会从 Alibaba Cloud 读取 staging bucket。OSS 仅支持 **Access Key / Secret Key** 身份验证。 + +| 字段 | 必填 | 说明 | +|-------|----------|-------------| +| **Name** | 是 | 此数据源的描述性名称 | +| **Storage Provider** | 是 | 选择 **Alibaba Cloud OSS** | +| **OSS Access Key ID** | 是 | OSS AccessKey ID | +| **OSS AccessKey Secret** | 是 | OSS AccessKey Secret | +| **OSS Bucket** | 是 | TiCDC / Dumpling 暂存数据的 OSS 存储桶 | +| **OSS Region** | 只读 | Lake 的部署 Region。该值会自动显示,且无法修改 | + +## 可选 SQS 队列 {#optional-sqs-queue} + +**SQS Queue URL** 字段是可选的,并且仅适用于 Amazon S3。当你提供一个接收 staging bucket 的 S3 `ObjectCreated` 事件的标准 SQS 队列时,TiDB Cloud Lake 可以从该队列中发现新写入的 changefeed / export 对象,而不必等待下一次轮询。 + +- 该队列必须是 **standard** 队列。不支持 FIFO 队列,因为 S3 事件通知无法投递到这类队列。 +- S3 bucket 和 SQS 队列应位于同一个 Region。 +- 轮询 bucket 仍然是权威的发现路径,SQS 只是用于优化延时,而不是替代方案。 +- 如果将此字段留空,任务将通过轮询来发现对象。 + +有关队列、bucket 通知和信任策略设置,请参见 [Amazon SQS (S3) - IAM Role (Preview)](/tidb-cloud-lake/guides/amazon-sqs-s3-iam-role.md)。 + +## 后续步骤 {#next-steps} + +创建此数据源后,你可以使用它来创建 [TiDB 集成任务(预览版)](/tidb-cloud-lake/guides/integrate-with-tidb.md)。 \ No newline at end of file diff --git a/tidb-cloud/releases/_index.md b/tidb-cloud/releases/_index.md index aa6046d4e5359..f028c008062ee 100644 --- a/tidb-cloud/releases/_index.md +++ b/tidb-cloud/releases/_index.md @@ -19,16 +19,12 @@ TiDB Cloud 提供两类发布:[云平台发布](#cloud-platform-release-notes) 数据库内核是处理 SQL 查询和管理数据的核心引擎。根据你的 TiDB Cloud 方案,你的资源运行在不同的内核上,每种内核都有各自的发布节奏。 -| 方案 | 内核信息和发布说明 | -| --- | --- | -| TiDB Cloud **Starter** | 运行在基于经典 [TiDB v8.5.3](https://docs.pingcap.com/tidb/stable/release-8.5.3/) 内核定制的 [TiDB X](/tidb-cloud/tidb-x-architecture.md) 引擎上。 | -| TiDB Cloud **Essential** | 默认运行在基于经典 [TiDB v8.5.3](https://docs.pingcap.com/tidb/stable/release-8.5.3/) 内核定制的 [TiDB X](/tidb-cloud/tidb-x-architecture.md) 引擎上。 | -| TiDB Cloud **Premium** | 运行在 [TiDB X](/tidb-cloud/tidb-x-architecture.md) 内核的 [`TiDB-X-CLOUD.202510.1`](/tidb-cloud/releases/tidb-x-cloud.202510.1.md) 版本上。 | -| TiDB Cloud **Dedicated** | 运行在经典 TiDB 内核上,其内核版本与 TiDB Self-Managed 版本直接对应。目前,新创建的 TiDB Cloud Dedicated 集群默认 TiDB 版本为 [v8.5.8](https://docs.pingcap.com/tidb/stable/release-8.5.8/)。 | - -> **注意:** -> -> 如果你希望 TiDB Cloud Essential 实例运行在与 TiDB Cloud Premium 相同的内核上,请联系 [TiDB Cloud Support](https://docs.pingcap.com/tidbcloud/tidb-cloud-support)。 +| 方案 | 内核 | 新创建实例或集群的默认内核版本 | +| --- | --- | --- | +| TiDB Cloud **Starter** | 运行在基于经典 TiDB 内核定制的 [TiDB X](/tidb-cloud/tidb-x-architecture.md) 引擎上。 | [TiDB v8.5.3](https://docs.pingcap.com/tidb/stable/release-8.5.3/) | +| TiDB Cloud **Essential** | 于 2026 年 6 月 30 日及之后创建的 TiDB Cloud Essential 实例运行在 [TiDB X](/tidb-cloud/tidb-x-architecture.md) 内核上。 | [TiDB-X-CLOUD.202603.1 Release Notes](/tidb-cloud/releases/tidb-x-cloud.202603.1.md) | +| TiDB Cloud **Premium** | 运行在 [TiDB X](/tidb-cloud/tidb-x-architecture.md) 内核上。 | [TiDB-X-CLOUD.202603.1 Release Notes](/tidb-cloud/releases/tidb-x-cloud.202603.1.md) | +| TiDB Cloud **Dedicated** | 运行在经典 TiDB 内核上。 | [TiDB v8.5.8](https://docs.pingcap.com/tidb/stable/release-8.5.8/) | ## 维护通知 diff --git a/tidb-cloud/releases/tidb-cloud-kernel-versioning.md b/tidb-cloud/releases/tidb-cloud-kernel-versioning.md index 54678ec06963a..e7e4e56972e62 100644 --- a/tidb-cloud/releases/tidb-cloud-kernel-versioning.md +++ b/tidb-cloud/releases/tidb-cloud-kernel-versioning.md @@ -12,7 +12,7 @@ summary: 了解 TiDB Cloud Premium 的数据库内核版本规则和格式。 > 本文档中介绍的内核版本管理规则仅适用于 TiDB Cloud Premium。其他 TiDB Cloud 方案使用不同的内核版本模型: > > - TiDB Cloud Starter 实例运行在基于经典 TiDB v8.5.3 内核定制的 TiDB X engine 上。该内核与 TiDB Cloud Premium 的内核略有不同。 -> - TiDB Cloud Essential 实例默认运行在基于经典 TiDB v8.5.3 内核定制的 TiDB X engine 上。如果你希望 TiDB Cloud Essential 实例运行与 TiDB Cloud Premium 相同的内核,请联系 [TiDB Cloud Support](https://docs.pingcap.com/tidbcloud/tidb-cloud-support)。 +> - 从 2026 年 6 月 30 日起,新创建的 TiDB Cloud Essential 实例运行在与 TiDB Cloud Premium 相同的 [TiDB X](/tidb-cloud/tidb-x-architecture.md) 内核上。 > - TiDB Cloud Dedicated 集群运行在经典 TiDB 内核上,其内核版本与 TiDB Self-Managed 版本直接对应。 ## 内核版本管理 {#kernel-versioning} @@ -38,7 +38,7 @@ TiDB-X-CLOUD.202510.1 由于内核开发与发布时间表彼此独立,因此某个内核版本可能会在其基线分支创建数月后才发布。 -由于 TiDB Cloud Premium 遵循自身的内核发布节奏,[TiDB Cloud Premium release notes](/tidb-cloud/releases/tidb-x-cloud.202510.1.md) 与 [TiDB Self-Managed release notes](https://docs.pingcap.com/releases/tidb-self-managed/) 分开发布。 +由于 TiDB Cloud Premium 遵循自身的内核发布节奏,[TiDB-X-CLOUD.202603.1 Release Notes](/tidb-cloud/releases/tidb-x-cloud.202603.1.md) 与 [TiDB Self-Managed release notes](https://docs.pingcap.com/releases/tidb-self-managed/) 分开发布。 ## FAQ {#faq} diff --git a/tidb-cloud/releases/tidb-x-cloud.202603.1.md b/tidb-cloud/releases/tidb-x-cloud.202603.1.md new file mode 100644 index 0000000000000..9acef2cc45fa8 --- /dev/null +++ b/tidb-cloud/releases/tidb-x-cloud.202603.1.md @@ -0,0 +1,91 @@ +--- +title: TiDB-X-CLOUD.202603.1 Release Notes +summary: 了解 TiDB-X-CLOUD.202603.1 内核的功能特性。 +--- + +# TiDB-X-CLOUD.202603.1 Release Notes + +**发布日期**:2026 年 7 月 16 日 + +**适用的 TiDB Cloud 计划**:{{{ .essential }}} 和 {{{ .premium }}} + +**TiDB X 内核版本**:`TiDB-X-CLOUD.202603.1` + +从 2026 年 7 月 16 日起,新创建的 {{{ .essential }}} 和 {{{ .premium }}} 实例默认使用的内核版本为 `TiDB-X-CLOUD.202603.1`。 + +在 `TiDB-X-CLOUD.202603.1` 中: + +- `202603` 表示该内核版本的基线代码分支创建于 2026 年 3 月,这与发布日期不同。 +- `1` 表示这是基于 `TiDB-X-CLOUD.202603` 基线分支构建的第一个补丁版本。 + +## 功能特性 {#features} + +### 性能 {#performance} + +* 针对某些有损 DDL 操作(例如 `BIGINT → INT` 和 `CHAR(120) → VARCHAR(60)`)引入了显著的性能提升:在不发生数据截断的情况下,这些操作的执行时间可从数小时缩短到数分钟、数秒,甚至数毫秒,性能提升可达数十倍到数十万倍 [#63366](https://github.com/pingcap/tidb/issues/63366) @[wjhuang2016](https://github.com/wjhuang2016) @[tangenta](https://github.com/tangenta) @[fzzf678](https://github.com/fzzf678) + + 优化策略如下: + + - 在严格 SQL 模式下,TiDB 会在类型转换期间预检查潜在的数据截断风险。 + - 如果未检测到数据截断风险,TiDB 仅修改元信息,并尽可能避免重建索引。 + - 如果必须重建索引,TiDB 会使用更高效的 ingest 过程,从而显著提升索引重建性能。 + + 下表展示了在一个包含 114 GiB 数据、6 亿行记录的表上进行基准测试时的性能提升示例。测试集群由 3 个 TiDB 节点、6 个 TiKV 节点和 1 个 PD 节点组成。所有节点均配置为 16 个 CPU 核心和 32 GiB 内存。 + + | 场景 | 操作类型 | 优化前 | 优化后 | 性能提升 | + |----------|----------------|---------------------|--------------------|--------------------------| + | 非索引列 | `BIGINT → INT` | 2 小时 34 分钟 | 1 分 5 秒 | 快 142 倍 | + | 索引列 | `BIGINT → INT` | 6 小时 25 分钟 | 0.05 秒 | 快 460,000 倍 | + | 索引列 | `CHAR(120) → VARCHAR(60)` | 7 小时 16 分钟 | 12 分 56 秒 | 快 34 倍 | + + 请注意,以上测试结果基于 DDL 执行期间未发生数据截断这一前提条件。该优化不适用于有符号整数型与无符号整数型之间的转换、字符集之间的转换,或带有 TiFlash 副本的表。 + + 更多信息,参见[文档](https://docs.pingcap.com/tidbcloud/sql-statement-modify-column/?plan=premium)。 + +### 可观测性 {#observability} + +* 支持为慢查询定义多维度、细粒度的触发规则 [#62959](https://github.com/pingcap/tidb/issues/62959) [#64010](https://github.com/pingcap/tidb/issues/64010) @[zimulala](https://github.com/zimulala) + + 在 TiDB Cloud 中,默认将执行时间超过 300 毫秒的 SQL 查询视为慢查询。你可以在 [TiDB Cloud console](https://tidbcloud.com/) 的 [**Diagnosis**](/tidb-cloud/tune-performance.md#view-the-diagnosis-page) 页面中的 [**Slow Query**](/tidb-cloud/tune-performance.md#slow-query) 页签查看慢查询。 + + TiDB Cloud 现在提供了对慢查询日志更灵活的控制方式。你可以使用 [`tidb_slow_log_rules`](https://docs.pingcap.com/tidbcloud/system-variables/?plan=premium#tidb_slow_log_rules) 系统变量,在会话和 SQL 级别基于 `Query_time`、`Digest`、`Mem_max` 和 `KV_total` 等条件定义多维度的慢查询日志输出规则。你还可以使用 `WRITE_SLOW_LOG` hint 强制为特定 SQL 语句记录慢查询日志。这使得对慢查询日志的控制更加灵活且更细粒度。 + + 更多信息,参见[文档](https://docs.pingcap.com/tidbcloud/config-slow-query-trigger-rules/?plan=premium)。 + +### SQL {#sql} + +* 支持在 `FOR UPDATE OF` 子句中使用表别名 [#63035](https://github.com/pingcap/tidb/issues/63035) @[cryo-zd](https://github.com/cryo-zd) + + 在此版本之前,当 `SELECT ... FOR UPDATE OF ` 语句在加锁子句中引用表别名时,TiDB 可能无法正确解析该别名,即使别名有效,也会返回 `table not exists` 错误。 + + TiDB 现已支持在 `FOR UPDATE OF` 子句中使用表别名。TiDB 现在可以从 `FROM` 子句中正确解析加锁目标,包括使用别名的表,从而确保行锁按预期生效。这提升了与 MySQL 的兼容性,并使在使用表别名的查询中,`SELECT ... FOR UPDATE OF` 语句更加稳定可靠。 + + 更多信息,参见[文档](https://docs.pingcap.com/tidbcloud/sql-statement-select/?plan=premium)。 + +* 支持部分索引,以减少索引存储和 DML 维护开销 [#62664](https://github.com/pingcap/tidb/issues/62664) [#62761](https://github.com/pingcap/tidb/issues/62761) [#62758](https://github.com/pingcap/tidb/issues/62758) [#63447](https://github.com/pingcap/tidb/issues/63447) [#64344](https://github.com/pingcap/tidb/issues/64344) @[YangKeao](https://github.com/YangKeao) @[winoros](https://github.com/winoros) @[wjhuang2016](https://github.com/wjhuang2016) + + 现在,TiDB 支持部分索引,即仅为满足索引 `WHERE` 子句中定义谓词的行建立索引。你可以通过 `CREATE INDEX ... WHERE ...`、`ALTER TABLE ... ADD INDEX ... WHERE ...`,或在 `CREATE TABLE` 中定义索引来创建部分索引。 + + 当你经常基于特定条件查询某个子集的行,或者需要仅在特定条件下生效的唯一约束时,部分索引会非常有用。由于谓词之外的行不会写入索引,部分索引有助于减少索引存储,并可降低 `INSERT`、`UPDATE` 和 `DELETE` 操作期间的索引维护开销。 + + 为了有效使用部分索引,请定义与常见查询中过滤条件相匹配的谓词。只有当查询谓词与部分索引谓词匹配或可推出该谓词时,TiDB 才会选择部分索引。当前,部分索引谓词支持基础比较运算符(`=`, `!=`, `<`, `<=`, `>`, `>=`)、`IS NULL`、`IS NOT NULL` 以及带常量值的 `IN` 谓词。 + + 更多信息,参见[文档](https://docs.pingcap.com/tidbcloud/sql-statement-create-index/?plan=premium#partial-indexes)。 + +## 兼容性变更 {#compatibility-changes} + +### MySQL 兼容性 {#mysql-compatibility} + +* Dumpling 通过适配更新后的 MySQL binary log 命名方式,支持从 MySQL 8.4 导出数据。[#53082](https://github.com/pingcap/tidb/issues/53082) @[dveeden](https://github.com/dveeden) + +## 改进项 {#improvements} + +- 增强 Parquet 文件的解析机制,以提升 Parquet 格式数据的导入性能 [#62906](https://github.com/pingcap/tidb/issues/62906) @[joechenrh](https://github.com/joechenrh) +- 将 `tidb_analyze_column_options` 的默认值改为 `ALL`,以默认收集所有列的统计信息 [#64992](https://github.com/pingcap/tidb/issues/64992) @[0xPoe](https://github.com/0xPoe) +- 优化 `IndexHashJoin` 算子的执行逻辑,在特定 JOIN 场景中使用增量处理,避免一次性加载大量数据,从而显著降低内存使用并提升性能 [#63303](https://github.com/pingcap/tidb/issues/63303) @[ChangRui-Ryan](https://github.com/ChangRui-Ryan) +- 新增全局系统变量 `tidb_enable_batch_query_region`,用于控制 TiDB 是否对 PD 使用批量 Region 查询,以提升获取 Region 信息的效率;该变量默认关闭 [#58439](https://github.com/pingcap/tidb/issues/58439) [#8690](https://github.com/tikv/pd/issues/8690) @[JmPotato](https://github.com/JmPotato) +- 对具有大量索引的表上的查询,优化器会在代价估算前裁剪无关索引,从而提升优化器性能,减少查询规划时间,并避免不必要的全范围越界估算 [#63856](https://github.com/pingcap/tidb/issues/63856) @[terry1purcell](https://github.com/terry1purcell) @[qw4990](https://github.com/qw4990) +- 支持对匹配前缀索引的 `ORDER BY ... LIMIT/OFFSET` 查询进行部分有序索引优化。当 `tidb_opt_partial_ordered_index_for_topn` 设置为 `COST` 时,TiDB 可以利用索引的部分有序性来减少全表扫描,并提升 `TOPN` 查询性能 [#63280](https://github.com/pingcap/tidb/issues/63280) [#65813](https://github.com/pingcap/tidb/issues/65813) [#66338](https://github.com/pingcap/tidb/issues/66338) @[elsa0520](https://github.com/elsa0520) @[xzhangxian1008](https://github.com/xzhangxian1008) @[winoros](https://github.com/winoros) +- 缓解在高分区表且使用本地索引时,`IndexLookUp` 查询产生的 Coprocessor 请求突发问题,以提升查询稳定性并减少性能抖动 [#67545](https://github.com/pingcap/tidb/issues/67545) @[gengliqi](https://github.com/gengliqi) +- 通过减少执行期间不必要的表达式缓冲区分配,优化 `INSERT ... ON DUPLICATE KEY UPDATE` 语句的 CPU 和内存使用 [#65003](https://github.com/pingcap/tidb/issues/65003) @[windtalker](https://github.com/windtalker) +- 优化时间戳推进和 Leader 选举的逻辑 [#9981](https://github.com/tikv/pd/issues/9981) @[bufferflies](https://github.com/bufferflies) \ No newline at end of file