From 1bf200dc9e740c60456aa85eade76a327728f1a8 Mon Sep 17 00:00:00 2001 From: shhdgit <11549583+shhdgit@users.noreply.github.com> Date: Thu, 24 Jul 2025 01:34:21 +0000 Subject: [PATCH] [create-pull-request] automated change --- latest_translation_commit.json | 2 +- tidb-cloud/import-csv-files-serverless.md | 300 +++++++-------- tidb-cloud/import-csv-files.md | 232 ++++++------ tidb-cloud/import-parquet-files-serverless.md | 322 ++++++++-------- tidb-cloud/import-parquet-files.md | 236 ++++++------ tidb-cloud/import-sample-data-serverless.md | 48 +-- tidb-cloud/tidb-cloud-faq.md | 170 ++++----- tidb-cloud/tidb-cloud-quickstart.md | 84 ++--- tidb-cloud/tidb-cloud-release-notes.md | 352 +++++++++++------- 9 files changed, 910 insertions(+), 836 deletions(-) diff --git a/latest_translation_commit.json b/latest_translation_commit.json index 399a4b0fb0015..b738172321a18 100644 --- a/latest_translation_commit.json +++ b/latest_translation_commit.json @@ -1 +1 @@ -{"target":"release-8.5","sha":"0205ededf901476ea31dcd603f21ab9c9bed3f0d"} +{"target":"release-8.5","sha":"872a8b5331af541151fae53d0bf2e95e1dac475b"} \ No newline at end of file diff --git a/tidb-cloud/import-csv-files-serverless.md b/tidb-cloud/import-csv-files-serverless.md index 20867ed405d91..01550dd4573bb 100644 --- a/tidb-cloud/import-csv-files-serverless.md +++ b/tidb-cloud/import-csv-files-serverless.md @@ -1,61 +1,61 @@ --- title: 从 Amazon S3、GCS、Azure Blob Storage 或阿里云 OSS 导入 CSV 文件到 TiDB Cloud Serverless -summary: 了解如何从 Amazon S3、GCS、Azure Blob Storage 或阿里云对象存储服务(OSS)导入 CSV 文件到 TiDB Cloud Serverless。 +summary: 了解如何将 CSV 文件从 Amazon S3、GCS、Azure Blob Storage 或阿里云对象存储服务(OSS)导入到 TiDB Cloud Serverless。 --- # 从 Amazon S3、GCS、Azure Blob Storage 或阿里云 OSS 导入 CSV 文件到 TiDB Cloud Serverless -本文档描述如何从 Amazon Simple Storage Service (Amazon S3)、Google Cloud Storage (GCS)、Azure Blob Storage 或阿里云对象存储服务(OSS)导入 CSV 文件到 TiDB Cloud Serverless。 +本文档介绍如何将 CSV 文件从 Amazon Simple Storage Service(Amazon S3)、Google Cloud Storage(GCS)、Azure Blob Storage 或阿里云对象存储服务(OSS)导入到 TiDB Cloud Serverless。 ## 限制 -- 为确保数据一致性,TiDB Cloud Serverless 仅允许将 CSV 文件导入到空表中。如果要将数据导入到已包含数据的现有表中,你可以按照本文档将数据导入到临时空表中,然后使用 `INSERT SELECT` 语句将数据复制到目标现有表中。 +- 为保证数据一致性,TiDB Cloud Serverless 仅允许将 CSV 文件导入到空表中。若需将数据导入到已存在且包含数据的表中,你可以按照本文档的步骤,先将数据导入到一个临时空表中,然后使用 `INSERT SELECT` 语句将数据复制到目标表。 -## 步骤 1. 准备 CSV 文件 +## 第 1 步:准备 CSV 文件 -1. 如果 CSV 文件大于 256 MB,建议将其拆分为较小的文件,每个文件大小约为 256 MB。 +1. 如果单个 CSV 文件大于 256 MB,建议将其拆分为多个小文件,每个文件大小约为 256 MB。 - TiDB Cloud Serverless 支持导入非常大的 CSV 文件,但在处理大小约为 256 MB 的多个输入文件时性能最佳。这是因为 TiDB Cloud Serverless 可以并行处理多个文件,从而大大提高导入速度。 + TiDB Cloud Serverless 支持导入非常大的 CSV 文件,但在多个约 256 MB 的输入文件时性能最佳。这是因为 TiDB Cloud Serverless 可以并行处理多个文件,从而大幅提升导入速度。 -2. 按以下方式命名 CSV 文件: +2. 按如下方式命名 CSV 文件: - - 如果 CSV 文件包含整个表的所有数据,请按 `${db_name}.${table_name}.csv` 格式命名文件,导入数据时将映射到 `${db_name}.${table_name}` 表。 - - 如果一个表的数据分散在多个 CSV 文件中,请在这些 CSV 文件后附加数字后缀。例如,`${db_name}.${table_name}.000001.csv` 和 `${db_name}.${table_name}.000002.csv`。数字后缀可以不连续但必须按升序排列。你还需要在数字前添加额外的零以确保所有后缀长度相同。 - - TiDB Cloud Serverless 支持导入以下格式的压缩文件:`.gzip`、`.gz`、`.zstd`、`.zst` 和 `.snappy`。如果要导入压缩的 CSV 文件,请按 `${db_name}.${table_name}.${suffix}.csv.${compress}` 格式命名文件,其中 `${suffix}` 是可选的,可以是任何整数,如 '000001'。例如,如果要将 `trips.000001.csv.gz` 文件导入到 `bikeshare.trips` 表,你需要将文件重命名为 `bikeshare.trips.000001.csv.gz`。 + - 如果一个 CSV 文件包含整个表的所有数据,文件名应采用 `${db_name}.${table_name}.csv` 格式,导入时会映射到 `${db_name}.${table_name}` 表。 + - 如果一个表的数据被拆分为多个 CSV 文件,应在这些文件名后添加数字后缀。例如,`${db_name}.${table_name}.000001.csv` 和 `${db_name}.${table_name}.000002.csv`。数字后缀可以不连续,但必须递增,并且需要在数字前补零以保证所有后缀长度一致。 + - TiDB Cloud Serverless 支持导入以下格式的压缩文件:`.gzip`、`.gz`、`.zstd`、`.zst` 和 `.snappy`。如果你需要导入压缩的 CSV 文件,文件名应采用 `${db_name}.${table_name}.${suffix}.csv.${compress}` 格式,其中 `${suffix}` 可选,可以是任意整数如 '000001'。例如,如果你想将 `trips.000001.csv.gz` 文件导入到 `bikeshare.trips` 表,需要将文件重命名为 `bikeshare.trips.000001.csv.gz`。 > **注意:** > - > - 为获得更好的性能,建议将每个压缩文件的大小限制在 100 MiB 以内。 - > - Snappy 压缩文件必须采用[官方 Snappy 格式](https://github.com/google/snappy)。不支持其他变体的 Snappy 压缩。 - > - 对于未压缩的文件,如果在某些情况下无法按照上述规则更新 CSV 文件名(例如,CSV 文件链接也被其他程序使用),你可以保持文件名不变,并在[步骤 4](#步骤-4-将-csv-文件导入到-tidb-cloud-serverless) 中使用**映射设置**将源数据导入到单个目标表。 + > - 为获得更好的性能,建议每个压缩文件的大小限制在 100 MiB。 + > - Snappy 压缩文件必须为 [官方 Snappy 格式](https://github.com/google/snappy)。不支持其他变体的 Snappy 压缩格式。 + > - 对于未压缩的文件,如果你在某些场景下无法按照上述规则修改 CSV 文件名(例如,CSV 文件链接也被你的其他程序使用),可以保持文件名不变,并在[第 4 步](#step-4-import-csv-files-to-tidb-cloud-serverless)的 **Mapping Settings** 中将源数据导入到单一目标表。 -## 步骤 2. 创建目标表架构 +## 第 2 步:创建目标表结构 -由于 CSV 文件不包含架构信息,在将数据从 CSV 文件导入到 TiDB Cloud Serverless 之前,你需要使用以下任一方法创建表架构: +由于 CSV 文件不包含表结构信息,在将 CSV 文件中的数据导入 TiDB Cloud Serverless 之前,你需要通过以下任一方式创建表结构: -- 方法 1:在 TiDB Cloud Serverless 中,为源数据创建目标数据库和表。 +- 方法一:在 TiDB Cloud Serverless 中,为你的源数据创建目标数据库和数据表。 -- 方法 2:在存放 CSV 文件的 Amazon S3、GCS、Azure Blob Storage 或阿里云对象存储服务目录中,按以下方式为源数据创建目标表架构文件: +- 方法二:在存放 CSV 文件的 Amazon S3、GCS、Azure Blob Storage 或阿里云对象存储服务目录下,为你的源数据创建目标表结构文件: - 1. 为源数据创建数据库架构文件。 + 1. 为你的源数据创建数据库结构文件。 - 如果你的 CSV 文件遵循[步骤 1](#步骤-1-准备-csv-文件) 中的命名规则,则数据库架构文件对数据导入是可选的。否则,数据库架构文件是必需的。 + 如果你的 CSV 文件遵循[第 1 步](#step-1-prepare-the-csv-files)中的命名规则,则数据库结构文件为可选项。否则,数据库结构文件为必需项。 - 每个数据库架构文件必须采用 `${db_name}-schema-create.sql` 格式,并包含一个 `CREATE DATABASE` DDL 语句。通过此文件,TiDB Cloud Serverless 将在导入数据时创建 `${db_name}` 数据库来存储数据。 + 每个数据库结构文件必须采用 `${db_name}-schema-create.sql` 格式,并包含一个 `CREATE DATABASE` DDL 语句。通过该文件,TiDB Cloud Serverless 会在导入数据时创建 `${db_name}` 数据库以存储你的数据。 - 例如,如果你创建一个包含以下语句的 `mydb-scehma-create.sql` 文件,TiDB Cloud Serverless 将在导入数据时创建 `mydb` 数据库。 + 例如,如果你创建了一个包含如下语句的 `mydb-scehma-create.sql` 文件,TiDB Cloud Serverless 会在导入数据时创建 `mydb` 数据库。 ```sql CREATE DATABASE mydb; ``` - 2. 为源数据创建表架构文件。 + 2. 为你的源数据创建表结构文件。 - 如果你没有在存放 CSV 文件的 Amazon S3、GCS、Azure Blob Storage 或阿里云对象存储服务目录中包含表架构文件,TiDB Cloud Serverless 在导入数据时将不会为你创建相应的表。 + 如果你没有在存放 CSV 文件的 Amazon S3、GCS、Azure Blob Storage 或阿里云对象存储服务目录下包含表结构文件,TiDB Cloud Serverless 在导入数据时不会为你创建相应的数据表。 - 每个表架构文件必须采用 `${db_name}.${table_name}-schema.sql` 格式,并包含一个 `CREATE TABLE` DDL 语句。通过此文件,TiDB Cloud Serverless 将在导入数据时在 `${db_name}` 数据库中创建 `${db_table}` 表。 + 每个表结构文件必须采用 `${db_name}.${table_name}-schema.sql` 格式,并包含一个 `CREATE TABLE` DDL 语句。通过该文件,TiDB Cloud Serverless 会在 `${db_name}` 数据库中创建 `${db_table}` 表。 - 例如,如果你创建一个包含以下语句的 `mydb.mytable-schema.sql` 文件,TiDB Cloud Serverless 将在导入数据时在 `mydb` 数据库中创建 `mytable` 表。 + 例如,如果你创建了一个包含如下语句的 `mydb.mytable-schema.sql` 文件,TiDB Cloud Serverless 会在 `mydb` 数据库中创建 `mytable` 表。 ```sql CREATE TABLE mytable ( @@ -66,248 +66,252 @@ summary: 了解如何从 Amazon S3、GCS、Azure Blob Storage 或阿里云对象 > **注意:** > - > 每个 `${db_name}.${table_name}-schema.sql` 文件应该只包含一个 DDL 语句。如果文件包含多个 DDL 语句,只有第一个语句会生效。 + > 每个 `${db_name}.${table_name}-schema.sql` 文件只能包含一个 DDL 语句。如果文件中包含多个 DDL 语句,只有第一个会生效。 -## 步骤 3. 配置跨账户访问 +## 第 3 步:配置跨账号访问 -要允许 TiDB Cloud Serverless 访问 Amazon S3、GCS、Azure Blob Storage 或阿里云对象存储服务存储桶中的 CSV 文件,请执行以下操作之一: +为了让 TiDB Cloud Serverless 能够访问 Amazon S3、GCS、Azure Blob Storage 或阿里云对象存储服务桶中的 CSV 文件,请按以下方式操作: -- 如果你的 CSV 文件位于 Amazon S3 中,[为 TiDB Cloud Serverless 配置外部存储访问](/tidb-cloud/serverless-external-storage.md#配置-amazon-s3-访问)。 +- 如果你的 CSV 文件位于 Amazon S3,[为 TiDB Cloud Serverless 配置外部存储访问](/tidb-cloud/serverless-external-storage.md#configure-amazon-s3-access)。 - 你可以使用 AWS 访问密钥或 Role ARN 来访问存储桶。完成后,请记下访问密钥(包括访问密钥 ID 和密钥)或 Role ARN 值,因为你将在[步骤 4](#步骤-4-将-csv-文件导入到-tidb-cloud-serverless) 中需要它。 + 你可以使用 AWS 访问密钥或 Role ARN 访问你的桶。配置完成后,请记录访问密钥(包括访问密钥 ID 和密钥)或 Role ARN 值,在[第 4 步](#step-4-import-csv-files-to-tidb-cloud-serverless)中会用到。 -- 如果你的 CSV 文件位于 GCS 中,[为 TiDB Cloud Serverless 配置外部存储访问](/tidb-cloud/serverless-external-storage.md#配置-gcs-访问)。 +- 如果你的 CSV 文件位于 GCS,[为 TiDB Cloud Serverless 配置外部存储访问](/tidb-cloud/serverless-external-storage.md#configure-gcs-access)。 -- 如果你的 CSV 文件位于 Azure Blob Storage 中,[为 TiDB Cloud Serverless 配置外部存储访问](/tidb-cloud/serverless-external-storage.md#配置-azure-blob-storage-访问)。 +- 如果你的 CSV 文件位于 Azure Blob Storage,[为 TiDB Cloud Serverless 配置外部存储访问](/tidb-cloud/serverless-external-storage.md#configure-azure-blob-storage-access)。 -- 如果你的 CSV 文件位于阿里云对象存储服务(OSS)中,[为 TiDB Cloud Serverless 配置外部存储访问](/tidb-cloud/serverless-external-storage.md#配置阿里云对象存储服务-oss-访问)。 +- 如果你的 CSV 文件位于阿里云对象存储服务(OSS),[为 TiDB Cloud Serverless 配置外部存储访问](/tidb-cloud/serverless-external-storage.md#configure-alibaba-cloud-object-storage-service-oss-access)。 -## 步骤 4. 将 CSV 文件导入到 TiDB Cloud Serverless +## 第 4 步:将 CSV 文件导入 TiDB Cloud Serverless -要将 CSV 文件导入到 TiDB Cloud Serverless,请执行以下步骤: +要将 CSV 文件导入到 TiDB Cloud Serverless,请按照以下步骤操作:
-1. 打开目标集群的**导入**页面。 +1. 打开目标集群的 **Import** 页面。 - 1. 登录 [TiDB Cloud 控制台](https://tidbcloud.com/),导航到项目的 [**集群**](https://tidbcloud.com/project/clusters) 页面。 + 1. 登录 [TiDB Cloud 控制台](https://tidbcloud.com/),进入你的项目 [**Clusters**](https://tidbcloud.com/project/clusters) 页面。 > **提示:** > - > 你可以使用左上角的组合框在组织、项目和集群之间切换。 + > 你可以使用左上角的下拉框在组织、项目和集群之间切换。 - 2. 点击目标集群的名称进入其概览页面,然后在左侧导航栏中点击**数据** > **导入**。 + 2. 点击目标集群名称进入其概览页面,然后在左侧导航栏点击 **Data** > **Import**。 -2. 选择**从云存储导入数据**,然后点击 **Amazon S3**。 +2. 点击 **Import data from Cloud Storage**。 -3. 在**从 Amazon S3 导入数据**页面,为源 CSV 文件提供以下信息: +3. 在 **Import Data from Cloud Storage** 页面,填写以下信息: - - **导入文件数量**:根据需要选择**单个文件**或**多个文件**。 - - **包含架构文件**:此字段仅在导入多个文件时可见。如果源文件夹包含目标表架构,选择**是**。否则,选择**否**。 - - **数据格式**:选择 **CSV**。 - - **文件 URI** 或**文件夹 URI**: - - 导入单个文件时,按以下格式输入源文件 URI 和名称 `s3://[bucket_name]/[data_source_folder]/[file_name].csv`。例如,`s3://sampledata/ingest/TableName.01.csv`。 - - 导入多个文件时,按以下格式输入源文件 URI 和名称 `s3://[bucket_name]/[data_source_folder]/`。例如,`s3://sampledata/ingest/`。 - - **存储桶访问**:你可以使用 AWS Role ARN 或 AWS 访问密钥来访问存储桶。更多信息,请参见[配置 Amazon S3 访问](/tidb-cloud/serverless-external-storage.md#配置-amazon-s3-访问)。 + - **Storage Provider**:选择 **Amazon S3**。 + - **Source Files URI**: + - 导入单个文件时,输入源文件 URI,格式为 `s3://[bucket_name]/[data_source_folder]/[file_name].csv`。例如,`s3://sampledata/ingest/TableName.01.csv`。 + - 导入多个文件时,输入源文件夹 URI,格式为 `s3://[bucket_name]/[data_source_folder]/`。例如,`s3://sampledata/ingest/`。 + - **Credential**:你可以使用 AWS Role ARN 或 AWS 访问密钥访问你的桶。更多信息参见 [Configure Amazon S3 access](/tidb-cloud/serverless-external-storage.md#configure-amazon-s3-access)。 - **AWS Role ARN**:输入 AWS Role ARN 值。 - - **AWS 访问密钥**:输入 AWS 访问密钥 ID 和 AWS 密钥。 + - **AWS Access Key**:输入 AWS 访问密钥 ID 和 AWS 密钥。 -4. 点击**连接**。 +4. 点击 **Next**。 -5. 在**目标**部分,选择目标数据库和表。 +5. 在 **Destination Mapping** 部分,指定源文件与目标表的映射方式。 - 导入多个文件时,你可以使用**高级设置** > **映射设置**为每个目标表及其对应的 CSV 文件定义自定义映射规则。之后,将使用提供的自定义映射规则重新扫描数据源文件。 + 当 **Source Files URI** 指定为目录时,默认勾选 **Use [File naming conventions](/tidb-cloud/naming-conventions-for-data-import.md) for automatic mapping** 选项。 - 在**源文件 URI 和名称**中输入源文件 URI 和名称时,确保其格式为 `s3://[bucket_name]/[data_source_folder]/[file_name].csv`。例如,`s3://sampledata/ingest/TableName.01.csv`。 + > **注意:** + > + > 当 **Source Files URI** 指定为单个文件时,不显示 **Use [File naming conventions](/tidb-cloud/naming-conventions-for-data-import.md) for automatic mapping** 选项,TiDB Cloud 会自动将 **Source** 字段填充为文件名。此时你只需选择目标数据库和表进行数据导入。 - 你还可以使用通配符来匹配源文件。例如: + - 若希望 TiDB Cloud 自动将所有遵循 [File naming conventions](/tidb-cloud/naming-conventions-for-data-import.md) 的源文件映射到对应表,保持该选项勾选,并选择 **CSV** 作为数据格式。 - - `s3://[bucket_name]/[data_source_folder]/my-data?.csv`:该文件夹中以 `my-data` 开头后跟一个字符的所有 CSV 文件(如 `my-data1.csv` 和 `my-data2.csv`)将导入到同一个目标表中。 + - 若需手动配置映射规则,将你的源 CSV 文件与目标数据库和表关联,取消勾选该选项,然后填写以下字段: - - `s3://[bucket_name]/[data_source_folder]/my-data*.csv`:该文件夹中以 `my-data` 开头的所有 CSV 文件将导入到同一个目标表中。 + - **Source**:输入文件名模式,格式为 `[file_name].csv`。例如:`TableName.01.csv`。你也可以使用通配符匹配多个文件,仅支持 `*` 和 `?` 通配符。 - 注意,仅支持 `?` 和 `*`。 + - `my-data?.csv`:匹配所有以 `my-data` 开头,后跟单个字符的 CSV 文件,如 `my-data1.csv` 和 `my-data2.csv`。 + - `my-data*.csv`:匹配所有以 `my-data` 开头的 CSV 文件,如 `my-data-2023.csv` 和 `my-data-final.csv`。 - > **注意:** - > - > URI 必须包含数据源文件夹。 + - **Target Database** 和 **Target Table**:选择要导入数据的目标数据库和表。 + +6. 点击 **Next**。TiDB Cloud 会相应扫描源文件。 -6. 点击**开始导入**。 +7. 审查扫描结果,检查找到的数据文件及其对应的目标表,然后点击 **Start Import**。 -7. 当导入进度显示**已完成**时,检查导入的表。 +8. 当导入进度显示 **Completed** 时,检查已导入的表。
-1. 打开目标集群的**导入**页面。 +1. 打开目标集群的 **Import** 页面。 - 1. 登录 [TiDB Cloud 控制台](https://tidbcloud.com/),导航到项目的 [**集群**](https://tidbcloud.com/project/clusters) 页面。 + 1. 登录 [TiDB Cloud 控制台](https://tidbcloud.com/),进入你的项目 [**Clusters**](https://tidbcloud.com/project/clusters) 页面。 > **提示:** > - > 你可以使用左上角的组合框在组织、项目和集群之间切换。 + > 你可以使用左上角的下拉框在组织、项目和集群之间切换。 - 2. 点击目标集群的名称进入其概览页面,然后在左侧导航栏中点击**数据** > **导入**。 + 2. 点击目标集群名称进入其概览页面,然后在左侧导航栏点击 **Data** > **Import**。 -2. 选择**从云存储导入数据**,然后点击 **Google Cloud Storage**。 +2. 点击 **Import data from Cloud Storage**。 -3. 在**从 Google Cloud Storage 导入数据**页面,为源 CSV 文件提供以下信息: +3. 在 **Import Data from Cloud Storage** 页面,填写以下信息: - - **导入文件数量**:根据需要选择**单个文件**或**多个文件**。 - - **包含架构文件**:此字段仅在导入多个文件时可见。如果源文件夹包含目标表架构,选择**是**。否则,选择**否**。 - - **数据格式**:选择 **CSV**。 - - **文件 URI** 或**文件夹 URI**: - - 导入单个文件时,按以下格式输入源文件 URI 和名称 `[gcs|gs]://[bucket_name]/[data_source_folder]/[file_name].csv`。例如,`[gcs|gs]://sampledata/ingest/TableName.01.csv`。 - - 导入多个文件时,按以下格式输入源文件 URI 和名称 `[gcs|gs]://[bucket_name]/[data_source_folder]/`。例如,`[gcs|gs]://sampledata/ingest/`。 - - **存储桶访问**:你可以使用服务账号密钥来访问存储桶。更多信息,请参见[配置 GCS 访问](/tidb-cloud/serverless-external-storage.md#配置-gcs-访问)。 + - **Storage Provider**:选择 **Google Cloud Storage**。 + - **Source Files URI**: + - 导入单个文件时,输入源文件 URI,格式为 `[gcs|gs]://[bucket_name]/[data_source_folder]/[file_name].csv`。例如,`[gcs|gs]://sampledata/ingest/TableName.01.csv`。 + - 导入多个文件时,输入源文件夹 URI,格式为 `[gcs|gs]://[bucket_name]/[data_source_folder]/`。例如,`[gcs|gs]://sampledata/ingest/`。 + - **Credential**:你可以使用 GCS IAM Role Service Account key 访问你的桶。更多信息参见 [Configure GCS access](/tidb-cloud/serverless-external-storage.md#configure-gcs-access)。 -4. 点击**连接**。 +4. 点击 **Next**。 -5. 在**目标**部分,选择目标数据库和表。 +5. 在 **Destination Mapping** 部分,指定源文件与目标表的映射方式。 - 导入多个文件时,你可以使用**高级设置** > **映射设置**为每个目标表及其对应的 CSV 文件定义自定义映射规则。之后,将使用提供的自定义映射规则重新扫描数据源文件。 + 当 **Source Files URI** 指定为目录时,默认勾选 **Use [File naming conventions](/tidb-cloud/naming-conventions-for-data-import.md) for automatic mapping** 选项。 - 在**源文件 URI 和名称**中输入源文件 URI 和名称时,确保其格式为 `[gcs|gs]://[bucket_name]/[data_source_folder]/[file_name].csv`。例如,`[gcs|gs]://sampledata/ingest/TableName.01.csv`。 + > **注意:** + > + > 当 **Source Files URI** 指定为单个文件时,不显示 **Use [File naming conventions](/tidb-cloud/naming-conventions-for-data-import.md) for automatic mapping** 选项,TiDB Cloud 会自动将 **Source** 字段填充为文件名。此时你只需选择目标数据库和表进行数据导入。 - 你还可以使用通配符来匹配源文件。例如: + - 若希望 TiDB Cloud 自动将所有遵循 [File naming conventions](/tidb-cloud/naming-conventions-for-data-import.md) 的源文件映射到对应表,保持该选项勾选,并选择 **CSV** 作为数据格式。 - - `[gcs|gs]://[bucket_name]/[data_source_folder]/my-data?.csv`:该文件夹中以 `my-data` 开头后跟一个字符的所有 CSV 文件(如 `my-data1.csv` 和 `my-data2.csv`)将导入到同一个目标表中。 + - 若需手动配置映射规则,将你的源 CSV 文件与目标数据库和表关联,取消勾选该选项,然后填写以下字段: - - `[gcs|gs]://[bucket_name]/[data_source_folder]/my-data*.csv`:该文件夹中以 `my-data` 开头的所有 CSV 文件将导入到同一个目标表中。 + - **Source**:输入文件名模式,格式为 `[file_name].csv`。例如:`TableName.01.csv`。你也可以使用通配符匹配多个文件,仅支持 `*` 和 `?` 通配符。 - 注意,仅支持 `?` 和 `*`。 + - `my-data?.csv`:匹配所有以 `my-data` 开头,后跟单个字符的 CSV 文件,如 `my-data1.csv` 和 `my-data2.csv`。 + - `my-data*.csv`:匹配所有以 `my-data` 开头的 CSV 文件,如 `my-data-2023.csv` 和 `my-data-final.csv`。 - > **注意:** - > - > URI 必须包含数据源文件夹。 + - **Target Database** 和 **Target Table**:选择要导入数据的目标数据库和表。 + +6. 点击 **Next**。TiDB Cloud 会相应扫描源文件。 -6. 点击**开始导入**。 +7. 审查扫描结果,检查找到的数据文件及其对应的目标表,然后点击 **Start Import**。 -7. 当导入进度显示**已完成**时,检查导入的表。 +8. 当导入进度显示 **Completed** 时,检查已导入的表。
-1. 打开目标集群的**导入**页面。 +1. 打开目标集群的 **Import** 页面。 - 1. 登录 [TiDB Cloud 控制台](https://tidbcloud.com/),导航到项目的 [**集群**](https://tidbcloud.com/project/clusters) 页面。 + 1. 登录 [TiDB Cloud 控制台](https://tidbcloud.com/),进入你的项目 [**Clusters**](https://tidbcloud.com/project/clusters) 页面。 > **提示:** > - > 你可以使用左上角的组合框在组织、项目和集群之间切换。 + > 你可以使用左上角的下拉框在组织、项目和集群之间切换。 - 2. 点击目标集群的名称进入其概览页面,然后在左侧导航栏中点击**数据** > **导入**。 + 2. 点击目标集群名称进入其概览页面,然后在左侧导航栏点击 **Data** > **Import**。 -2. 选择**从云存储导入数据**,然后点击 **Azure Blob Storage**。 +2. 点击 **Import data from Cloud Storage**。 -3. 在**从 Azure Blob Storage 导入数据**页面,为源 CSV 文件提供以下信息: +3. 在 **Import Data from Cloud Storage** 页面,填写以下信息: - - **导入文件数量**:根据需要选择**单个文件**或**多个文件**。 - - **包含架构文件**:此字段仅在导入多个文件时可见。如果源文件夹包含目标表架构,选择**是**。否则,选择**否**。 - - **数据格式**:选择 **CSV**。 - - **文件 URI** 或**文件夹 URI**: - - 导入单个文件时,按以下格式输入源文件 URI 和名称 `[azure|https]://[bucket_name]/[data_source_folder]/[file_name].csv`。例如,`[azure|https]://sampledata/ingest/TableName.01.csv`。 - - 导入多个文件时,按以下格式输入源文件 URI 和名称 `[azure|https]://[bucket_name]/[data_source_folder]/`。例如,`[azure|https]://sampledata/ingest/`。 - - **存储桶访问**:你可以使用共享访问签名(SAS)令牌来访问存储桶。更多信息,请参见[配置 Azure Blob Storage 访问](/tidb-cloud/serverless-external-storage.md#配置-azure-blob-storage-访问)。 + - **Storage Provider**:选择 **Azure Blob Storage**。 + - **Source Files URI**: + - 导入单个文件时,输入源文件 URI,格式为 `[azure|https]://[bucket_name]/[data_source_folder]/[file_name].csv`。例如,`[azure|https]://sampledata/ingest/TableName.01.csv`。 + - 导入多个文件时,输入源文件夹 URI,格式为 `[azure|https]://[bucket_name]/[data_source_folder]/`。例如,`[azure|https]://sampledata/ingest/`。 + - **Credential**:你可以使用共享访问签名(SAS)令牌访问你的桶。更多信息参见 [Configure Azure Blob Storage access](/tidb-cloud/serverless-external-storage.md#configure-azure-blob-storage-access)。 -4. 点击**连接**。 +4. 点击 **Next**。 -5. 在**目标**部分,选择目标数据库和表。 +5. 在 **Destination Mapping** 部分,指定源文件与目标表的映射方式。 - 导入多个文件时,你可以使用**高级设置** > **映射设置**为每个目标表及其对应的 CSV 文件定义自定义映射规则。之后,将使用提供的自定义映射规则重新扫描数据源文件。 + 当 **Source Files URI** 指定为目录时,默认勾选 **Use [File naming conventions](/tidb-cloud/naming-conventions-for-data-import.md) for automatic mapping** 选项。 - 在**源文件 URI 和名称**中输入源文件 URI 和名称时,确保其格式为 `[azure|https]://[bucket_name]/[data_source_folder]/[file_name].csv`。例如,`[azure|https]://sampledata/ingest/TableName.01.csv`。 + > **注意:** + > + > 当 **Source Files URI** 指定为单个文件时,不显示 **Use [File naming conventions](/tidb-cloud/naming-conventions-for-data-import.md) for automatic mapping** 选项,TiDB Cloud 会自动将 **Source** 字段填充为文件名。此时你只需选择目标数据库和表进行数据导入。 - 你还可以使用通配符来匹配源文件。例如: + - 若希望 TiDB Cloud 自动将所有遵循 [File naming conventions](/tidb-cloud/naming-conventions-for-data-import.md) 的源文件映射到对应表,保持该选项勾选,并选择 **CSV** 作为数据格式。 - - `[azure|https]://[bucket_name]/[data_source_folder]/my-data?.csv`:该文件夹中以 `my-data` 开头后跟一个字符的所有 CSV 文件(如 `my-data1.csv` 和 `my-data2.csv`)将导入到同一个目标表中。 + - 若需手动配置映射规则,将你的源 CSV 文件与目标数据库和表关联,取消勾选该选项,然后填写以下字段: - - `[azure|https]://[bucket_name]/[data_source_folder]/my-data*.csv`:该文件夹中以 `my-data` 开头的所有 CSV 文件将导入到同一个目标表中。 + - **Source**:输入文件名模式,格式为 `[file_name].csv`。例如:`TableName.01.csv`。你也可以使用通配符匹配多个文件,仅支持 `*` 和 `?` 通配符。 - 注意,仅支持 `?` 和 `*`。 + - `my-data?.csv`:匹配所有以 `my-data` 开头,后跟单个字符的 CSV 文件,如 `my-data1.csv` 和 `my-data2.csv`。 + - `my-data*.csv`:匹配所有以 `my-data` 开头的 CSV 文件,如 `my-data-2023.csv` 和 `my-data-final.csv`。 - > **注意:** - > - > URI 必须包含数据源文件夹。 + - **Target Database** 和 **Target Table**:选择要导入数据的目标数据库和表。 + +6. 点击 **Next**。TiDB Cloud 会相应扫描源文件。 -6. 点击**开始导入**。 +7. 审查扫描结果,检查找到的数据文件及其对应的目标表,然后点击 **Start Import**。 -7. 当导入进度显示**已完成**时,检查导入的表。 +8. 当导入进度显示 **Completed** 时,检查已导入的表。
-
+
-1. 打开目标集群的**导入**页面。 +1. 打开目标集群的 **Import** 页面。 - 1. 登录 [TiDB Cloud 控制台](https://tidbcloud.com/),导航到项目的 [**集群**](https://tidbcloud.com/project/clusters) 页面。 + 1. 登录 [TiDB Cloud 控制台](https://tidbcloud.com/),进入你的项目 [**Clusters**](https://tidbcloud.com/project/clusters) 页面。 > **提示:** > - > 你可以使用左上角的组合框在组织、项目和集群之间切换。 + > 你可以使用左上角的下拉框在组织、项目和集群之间切换。 - 2. 点击目标集群的名称进入其概览页面,然后在左侧导航栏中点击**数据** > **导入**。 + 2. 点击目标集群名称进入其概览页面,然后在左侧导航栏点击 **Data** > **Import**。 -2. 选择**从云存储导入数据**,然后点击**阿里云 OSS**。 +2. 点击 **Import data from Cloud Storage**。 -3. 在**从阿里云 OSS 导入数据**页面,为源 CSV 文件提供以下信息: +3. 在 **Import Data from Cloud Storage** 页面,填写以下信息: - - **导入文件数量**:根据需要选择**单个文件**或**多个文件**。 - - **包含架构文件**:此字段仅在导入多个文件时可见。如果源文件夹包含目标表架构,选择**是**。否则,选择**否**。 - - **数据格式**:选择 **CSV**。 - - **文件 URI** 或**文件夹 URI**: - - 导入单个文件时,按以下格式输入源文件 URI 和名称 `oss://[bucket_name]/[data_source_folder]/[file_name].csv`。例如,`oss://sampledata/ingest/TableName.01.csv`。 - - 导入多个文件时,按以下格式输入源文件 URI 和名称 `oss://[bucket_name]/[data_source_folder]/`。例如,`oss://sampledata/ingest/`。 - - **存储桶访问**:你可以使用 AccessKey 对来访问存储桶。更多信息,请参见[配置阿里云对象存储服务(OSS)访问](/tidb-cloud/serverless-external-storage.md#配置阿里云对象存储服务-oss-访问)。 + - **Storage Provider**:选择 **Alibaba Cloud OSS**。 + - **Source Files URI**: + - 导入单个文件时,输入源文件 URI,格式为 `oss://[bucket_name]/[data_source_folder]/[file_name].csv`。例如,`oss://sampledata/ingest/TableName.01.csv`。 + - 导入多个文件时,输入源文件夹 URI,格式为 `oss://[bucket_name]/[data_source_folder]/`。例如,`oss://sampledata/ingest/`。 + - **Credential**:你可以使用 AccessKey 对访问你的桶。更多信息参见 [Configure Alibaba Cloud Object Storage Service (OSS) access](/tidb-cloud/serverless-external-storage.md#configure-alibaba-cloud-object-storage-service-oss-access)。 -4. 点击**连接**。 +4. 点击 **Next**。 -5. 在**目标**部分,选择目标数据库和表。 +5. 在 **Destination Mapping** 部分,指定源文件与目标表的映射方式。 - 导入多个文件时,你可以使用**高级设置** > **映射设置**为每个目标表及其对应的 CSV 文件定义自定义映射规则。之后,将使用提供的自定义映射规则重新扫描数据源文件。 + 当 **Source Files URI** 指定为目录时,默认勾选 **Use [File naming conventions](/tidb-cloud/naming-conventions-for-data-import.md) for automatic mapping** 选项。 - 在**源文件 URI 和名称**中输入源文件 URI 和名称时,确保其格式为 `oss://[bucket_name]/[data_source_folder]/[file_name].csv`。例如,`oss://sampledata/ingest/TableName.01.csv`。 + > **注意:** + > + > 当 **Source Files URI** 指定为单个文件时,不显示 **Use [File naming conventions](/tidb-cloud/naming-conventions-for-data-import.md) for automatic mapping** 选项,TiDB Cloud 会自动将 **Source** 字段填充为文件名。此时你只需选择目标数据库和表进行数据导入。 - 你还可以使用通配符来匹配源文件。例如: + - 若希望 TiDB Cloud 自动将所有遵循 [File naming conventions](/tidb-cloud/naming-conventions-for-data-import.md) 的源文件映射到对应表,保持该选项勾选,并选择 **CSV** 作为数据格式。 - - `oss://[bucket_name]/[data_source_folder]/my-data?.csv`:该文件夹中以 `my-data` 开头后跟一个字符的所有 CSV 文件(如 `my-data1.csv` 和 `my-data2.csv`)将导入到同一个目标表中。 + - 若需手动配置映射规则,将你的源 CSV 文件与目标数据库和表关联,取消勾选该选项,然后填写以下字段: - - `oss://[bucket_name]/[data_source_folder]/my-data*.csv`:该文件夹中以 `my-data` 开头的所有 CSV 文件将导入到同一个目标表中。 + - **Source**:输入文件名模式,格式为 `[file_name].csv`。例如:`TableName.01.csv`。你也可以使用通配符匹配多个文件,仅支持 `*` 和 `?` 通配符。 - 注意,仅支持 `?` 和 `*`。 + - `my-data?.csv`:匹配所有以 `my-data` 开头,后跟单个字符的 CSV 文件,如 `my-data1.csv` 和 `my-data2.csv`。 + - `my-data*.csv`:匹配所有以 `my-data` 开头的 CSV 文件,如 `my-data-2023.csv` 和 `my-data-final.csv`。 - > **注意:** - > - > URI 必须包含数据源文件夹。 + - **Target Database** 和 **Target Table**:选择要导入数据的目标数据库和表。 + +6. 点击 **Next**。TiDB Cloud 会相应扫描源文件。 -6. 点击**开始导入**。 +7. 审查扫描结果,检查找到的数据文件及其对应的目标表,然后点击 **Start Import**。 -7. 当导入进度显示**已完成**时,检查导入的表。 +8. 当导入进度显示 **Completed** 时,检查已导入的表。
-运行导入任务时,如果检测到任何不支持或无效的转换,TiDB Cloud Serverless 会自动终止导入作业并报告导入错误。 +当你运行导入任务时,如果检测到任何不支持或无效的转换,TiDB Cloud Serverless 会自动终止导入作业并报告导入错误。 -如果遇到导入错误,请执行以下操作: +如果你遇到导入错误,请按以下步骤操作: 1. 删除部分导入的表。 -2. 检查表架构文件。如果有任何错误,请更正表架构文件。 +2. 检查表结构文件,如有错误请修正。 3. 检查 CSV 文件中的数据类型。 4. 重新尝试导入任务。 -## 故障排除 +## 故障排查 ### 解决数据导入过程中的警告 -点击**开始导入**后,如果看到类似 `can't find the corresponding source files` 的警告消息,请通过提供正确的源文件、根据[数据导入命名约定](/tidb-cloud/naming-conventions-for-data-import.md)重命名现有文件或使用**高级设置**进行更改来解决此问题。 +点击 **Start Import** 后,如果你看到类似 `can't find the corresponding source files` 的警告信息,请通过提供正确的源文件、根据 [Naming Conventions for Data Import](/tidb-cloud/naming-conventions-for-data-import.md) 重命名现有文件,或使用 **Advanced Settings** 进行调整来解决。 解决这些问题后,你需要重新导入数据。 -### 导入的表中行数为零 +### 导入表中行数为零 -导入进度显示**已完成**后,检查导入的表。如果行数为零,表示没有数据文件与你输入的存储桶 URI 匹配。在这种情况下,请通过提供正确的源文件、根据[数据导入命名约定](/tidb-cloud/naming-conventions-for-data-import.md)重命名现有文件或使用**高级设置**进行更改来解决此问题。之后,重新导入这些表。 +当导入进度显示 **Completed** 后,检查已导入的表。如果行数为零,说明没有数据文件匹配你输入的 Bucket URI。此时,请通过提供正确的源文件、根据 [Naming Conventions for Data Import](/tidb-cloud/naming-conventions-for-data-import.md) 重命名现有文件,或使用 **Advanced Settings** 进行调整来解决。之后,重新导入这些表。 \ No newline at end of file diff --git a/tidb-cloud/import-csv-files.md b/tidb-cloud/import-csv-files.md index 65eff146427f0..abac74cc7473b 100644 --- a/tidb-cloud/import-csv-files.md +++ b/tidb-cloud/import-csv-files.md @@ -1,70 +1,68 @@ --- -title: 从云存储将 CSV 文件导入到 TiDB Cloud Dedicated -summary: 了解如何从 Amazon S3、GCS 或 Azure Blob Storage 将 CSV 文件导入到 TiDB Cloud Dedicated。 +title: 从云存储导入 CSV 文件到 TiDB Cloud 专属集群 +summary: 了解如何将 CSV 文件从 Amazon S3、GCS 或 Azure Blob Storage 导入到 TiDB Cloud 专属集群。 aliases: ['/tidbcloud/migrate-from-amazon-s3-or-gcs','/tidbcloud/migrate-from-aurora-bulk-import'] --- -# 从云存储将 CSV 文件导入到 TiDB Cloud Dedicated +# 从云存储导入 CSV 文件到 TiDB Cloud 专属集群 -本文档介绍如何从 Amazon Simple Storage Service (Amazon S3)、Google Cloud Storage (GCS) 或 Azure Blob Storage 将 CSV 文件导入到 TiDB Cloud Dedicated。 +本文档介绍如何将 CSV 文件从 Amazon Simple Storage Service(Amazon S3)、Google Cloud Storage(GCS)或 Azure Blob Storage 导入到 TiDB Cloud 专属集群。 ## 限制 -- 为确保数据一致性,TiDB Cloud 仅允许将 CSV 文件导入到空表中。如果要将数据导入到已包含数据的现有表中,你可以按照本文档将数据导入到临时空表中,然后使用 `INSERT SELECT` 语句将数据复制到目标现有表中。 +- 为确保数据一致性,TiDB Cloud 仅允许将 CSV 文件导入到空表中。若需将数据导入到已存在数据的表中,你可以按照本文档的步骤,先将数据导入到一个临时空表中,然后使用 `INSERT SELECT` 语句将数据复制到目标表。 -- 如果 TiDB Cloud Dedicated 集群有[变更数据捕获](/tidb-cloud/changefeed-overview.md)或启用了[时间点恢复](/tidb-cloud/backup-and-restore.md#turn-on-point-in-time-restore),则无法向该集群导入数据(**导入数据**按钮将被禁用),因为当前的数据导入功能使用[物理导入模式](https://docs.pingcap.com/tidb/stable/tidb-lightning-physical-import-mode)。在此模式下,导入的数据不会生成变更日志,因此变更数据捕获和时间点恢复无法检测到导入的数据。 +- 如果 TiDB Cloud 专属集群已开启 [changefeed](/tidb-cloud/changefeed-overview.md) 或 [时间点恢复(Point-in-time Restore)](/tidb-cloud/backup-and-restore.md#turn-on-point-in-time-restore),则无法向该集群导入数据(**Import Data** 按钮会被禁用),因为当前数据导入功能使用的是 [物理导入模式](https://docs.pingcap.com/tidb/stable/tidb-lightning-physical-import-mode)。在该模式下,导入的数据不会生成变更日志,因此 changefeed 和时间点恢复无法检测到导入的数据。 -## 步骤 1. 准备 CSV 文件 +## 第 1 步:准备 CSV 文件 -1. 如果 CSV 文件大于 256 MB,建议将其拆分为较小的文件,每个文件大小约为 256 MB。 +1. 如果单个 CSV 文件大于 256 MB,建议将其拆分为多个小文件,每个文件大小约为 256 MB。 - TiDB Cloud 支持导入非常大的 CSV 文件,但对于大小约为 256 MB 的多个输入文件性能最佳。这是因为 TiDB Cloud 可以并行处理多个文件,这可以大大提高导入速度。 + TiDB Cloud 支持导入非常大的 CSV 文件,但在多个约 256 MB 的输入文件时性能最佳。这是因为 TiDB Cloud 可以并行处理多个文件,从而大幅提升导入速度。 -2. 按以下方式命名 CSV 文件: +2. 按如下方式命名 CSV 文件: - - 如果 CSV 文件包含整个表的所有数据,请按 `${db_name}.${table_name}.csv` 格式命名文件,该文件在导入数据时会映射到 `${db_name}.${table_name}` 表。 - - 如果一个表的数据分散在多个 CSV 文件中,请在这些 CSV 文件后面添加数字后缀。例如,`${db_name}.${table_name}.000001.csv` 和 `${db_name}.${table_name}.000002.csv`。数字后缀可以不连续,但必须按升序排列。你还需要在数字前添加额外的零,以确保所有后缀的长度相同。 - - TiDB Cloud 支持导入以下格式的压缩文件:`.gzip`、`.gz`、`.zstd`、`.zst` 和 `.snappy`。如果你想导入压缩的 CSV 文件,请按 `${db_name}.${table_name}.${suffix}.csv.${compress}` 格式命名文件,其中 `${suffix}` 是可选的,可以是任何整数,如 '000001'。例如,如果你想将 `trips.000001.csv.gz` 文件导入到 `bikeshare.trips` 表,你需要将文件重命名为 `bikeshare.trips.000001.csv.gz`。 + - 如果一个 CSV 文件包含了整个表的所有数据,文件名应采用 `${db_name}.${table_name}.csv` 格式,导入时会映射到 `${db_name}.${table_name}` 表。 + - 如果一个表的数据被拆分为多个 CSV 文件,应在这些文件名后添加数字后缀。例如,`${db_name}.${table_name}.000001.csv` 和 `${db_name}.${table_name}.000002.csv`。数字后缀可以不连续,但必须递增,并且需要在数字前补零以保证所有后缀长度一致。 + - TiDB Cloud 支持导入以下格式的压缩文件:`.gzip`、`.gz`、`.zstd`、`.zst` 和 `.snappy`。如果你需要导入压缩的 CSV 文件,文件名应采用 `${db_name}.${table_name}.${suffix}.csv.${compress}` 格式,其中 `${suffix}` 可选,可以是任意整数(如 '000001')。例如,如果你想将 `trips.000001.csv.gz` 文件导入到 `bikeshare.trips` 表,需要将文件重命名为 `bikeshare.trips.000001.csv.gz`。 > **注意:** > - > - 你只需要压缩数据文件,不需要压缩数据库或表结构文件。 - > - 为了获得更好的性能,建议将每个压缩文件的大小限制在 100 MiB。 - > - Snappy 压缩文件必须采用[官方 Snappy 格式](https://github.com/google/snappy)。不支持其他变体的 Snappy 压缩。 - > - 对于未压缩的文件,如果在某些情况下无法按照上述规则更新 CSV 文件名(例如,CSV 文件链接也被你的其他程序使用),你可以保持文件名不变,并使用[步骤 4](#步骤-4-将-csv-文件导入到-tidb-cloud) 中的**映射设置**将源数据导入到单个目标表。 + > - 你只需压缩数据文件,无需压缩数据库或表结构文件。 + > - 为获得更好的性能,建议每个压缩文件大小不超过 100 MiB。 + > - Snappy 压缩文件必须采用 [官方 Snappy 格式](https://github.com/google/snappy),不支持其他变体的 Snappy 压缩格式。 + > - 对于未压缩的文件,如果你无法按照上述规则修改 CSV 文件名(例如,CSV 文件链接也被其他程序使用),可以保持文件名不变,并在 [第 4 步](#step-4-import-csv-files-to-tidb-cloud) 的 **Mapping Settings** 中将源数据导入到单个目标表。 -## 步骤 2. 创建目标表结构 +## 第 2 步:创建目标表结构 -由于 CSV 文件不包含结构信息,在将数据从 CSV 文件导入到 TiDB Cloud 之前,你需要使用以下任一方法创建表结构: +由于 CSV 文件不包含表结构信息,在将 CSV 文件数据导入 TiDB Cloud 之前,你需要通过以下任一方式创建表结构: -- 方法 1:在 TiDB Cloud 中,为你的源数据创建目标数据库和表。 +- 方式一:在 TiDB Cloud 中为你的源数据创建目标数据库和数据表。 -- 方法 2:在存放 CSV 文件的 Amazon S3、GCS 或 Azure Blob Storage 目录中,为你的源数据创建目标表结构文件,如下所示: +- 方式二:在存放 CSV 文件的 Amazon S3、GCS 或 Azure Blob Storage 目录下,为你的源数据创建目标表结构文件,具体如下: 1. 为你的源数据创建数据库结构文件。 - 如果你的 CSV 文件遵循[步骤 1](#步骤-1-准备-csv-文件) 中的命名规则,则数据库结构文件对于数据导入是可选的。否则,数据库结构文件是必需的。 + 如果你的 CSV 文件遵循 [第 1 步](#step-1-prepare-the-csv-files) 的命名规则,则数据库结构文件为可选项,否则为必需项。 - 每个数据库结构文件必须采用 `${db_name}-schema-create.sql` 格式,并包含一个 `CREATE DATABASE` DDL 语句。通过此文件,TiDB Cloud 将在导入数据时创建 `${db_name}` 数据库来存储你的数据。 + 每个数据库结构文件必须采用 `${db_name}-schema-create.sql` 格式,并包含一个 `CREATE DATABASE` DDL 语句。通过该文件,TiDB Cloud 会在导入数据时创建 `${db_name}` 数据库以存储你的数据。 - 例如,如果你创建一个包含以下语句的 `mydb-scehma-create.sql` 文件,TiDB Cloud 将在导入数据时创建 `mydb` 数据库。 - - {{< copyable "sql" >}} + 例如,如果你创建了一个包含如下语句的 `mydb-scehma-create.sql` 文件,TiDB Cloud 会在导入数据时创建 `mydb` 数据库。 + ```sql CREATE DATABASE mydb; ``` 2. 为你的源数据创建表结构文件。 - 如果你没有在存放 CSV 文件的 Amazon S3、GCS 或 Azure Blob Storage 目录中包含表结构文件,TiDB Cloud 在导入数据时将不会为你创建相应的表。 - - 每个表结构文件必须采用 `${db_name}.${table_name}-schema.sql` 格式,并包含一个 `CREATE TABLE` DDL 语句。通过此文件,TiDB Cloud 将在导入数据时在 `${db_name}` 数据库中创建 `${db_table}` 表。 + 如果你没有在存放 CSV 文件的 Amazon S3、GCS 或 Azure Blob Storage 目录下包含表结构文件,TiDB Cloud 在导入数据时不会为你创建相应的数据表。 - 例如,如果你创建一个包含以下语句的 `mydb.mytable-schema.sql` 文件,TiDB Cloud 将在 `mydb` 数据库中创建 `mytable` 表。 + 每个表结构文件必须采用 `${db_name}.${table_name}-schema.sql` 格式,并包含一个 `CREATE TABLE` DDL 语句。通过该文件,TiDB Cloud 会在 `${db_name}` 数据库中创建 `${db_table}` 表以存储你的数据。 - {{< copyable "sql" >}} + 例如,如果你创建了一个包含如下语句的 `mydb.mytable-schema.sql` 文件,TiDB Cloud 会在导入数据时在 `mydb` 数据库中创建 `mytable` 表。 + ```sql CREATE TABLE mytable ( ID INT, @@ -74,170 +72,170 @@ aliases: ['/tidbcloud/migrate-from-amazon-s3-or-gcs','/tidbcloud/migrate-from-au > **注意:** > - > 每个 `${db_name}.${table_name}-schema.sql` 文件应该只包含一个 DDL 语句。如果文件包含多个 DDL 语句,只有第一个语句生效。 + > 每个 `${db_name}.${table_name}-schema.sql` 文件只能包含一个 DDL 语句。如果文件中包含多个 DDL 语句,只有第一个会生效。 -## 步骤 3. 配置跨账户访问 +## 第 3 步:配置跨账号访问 -要允许 TiDB Cloud 访问 Amazon S3 存储桶、GCS 存储桶或 Azure Blob Storage 容器中的 CSV 文件,请执行以下操作之一: +为了让 TiDB Cloud 能够访问 Amazon S3、GCS 或 Azure Blob Storage 中的 CSV 文件,请按以下方式操作: -- 如果你的 CSV 文件位于 Amazon S3 中,[配置 Amazon S3 访问](/tidb-cloud/dedicated-external-storage.md#configure-amazon-s3-access)。 +- 如果你的 CSV 文件存储在 Amazon S3,请[配置 Amazon S3 访问权限](/tidb-cloud/dedicated-external-storage.md#configure-amazon-s3-access)。 - 你可以使用 AWS 访问密钥或角色 ARN 来访问你的存储桶。完成后,请记下访问密钥(包括访问密钥 ID 和密钥)或角色 ARN 值,因为你将在[步骤 4](#步骤-4-将-csv-文件导入到-tidb-cloud) 中需要它。 + 你可以使用 AWS 访问密钥或 Role ARN 访问你的存储桶。完成后,请记录访问密钥(包括 access key ID 和 secret access key)或 Role ARN 值,在 [第 4 步](#step-4-import-csv-files-to-tidb-cloud) 中会用到。 -- 如果你的 CSV 文件位于 GCS 中,[配置 GCS 访问](/tidb-cloud/dedicated-external-storage.md#configure-gcs-access)。 +- 如果你的 CSV 文件存储在 GCS,请[配置 GCS 访问权限](/tidb-cloud/dedicated-external-storage.md#configure-gcs-access)。 -- 如果你的 CSV 文件位于 Azure Blob Storage 中,[配置 Azure Blob Storage 访问](/tidb-cloud/dedicated-external-storage.md#configure-azure-blob-storage-access)。 +- 如果你的 CSV 文件存储在 Azure Blob Storage,请[配置 Azure Blob Storage 访问权限](/tidb-cloud/dedicated-external-storage.md#configure-azure-blob-storage-access)。 -## 步骤 4. 将 CSV 文件导入到 TiDB Cloud +## 第 4 步:将 CSV 文件导入 TiDB Cloud -要将 CSV 文件导入到 TiDB Cloud,请执行以下步骤: +要将 CSV 文件导入 TiDB Cloud,请按照以下步骤操作:
-1. 打开目标集群的**导入**页面。 +1. 打开目标集群的 **Import** 页面。 - 1. 登录 [TiDB Cloud 控制台](https://tidbcloud.com/),导航到项目的[**集群**](https://tidbcloud.com/project/clusters)页面。 + 1. 登录 [TiDB Cloud 控制台](https://tidbcloud.com/),进入项目的 [**Clusters**](https://tidbcloud.com/project/clusters) 页面。 > **提示:** > - > 你可以使用左上角的组合框在组织、项目和集群之间切换。 + > 你可以使用左上角的下拉框切换组织、项目和集群。 - 2. 点击目标集群的名称进入其概览页面,然后在左侧导航栏中点击**数据** > **导入**。 + 2. 点击目标集群名称进入其概览页面,然后在左侧导航栏点击 **Data** > **Import**。 -2. 选择**从云存储导入数据**。 +2. 选择 **Import data from Cloud Storage**。 -3. 在**从 Amazon S3 导入数据**页面,提供以下信息: +3. 在 **Import Data from Amazon S3** 页面,填写以下信息: - - **包含结构文件**:如果源文件夹包含目标表结构文件(如 `${db_name}-schema-create.sql`),选择**是**。否则,选择**否**。 - - **数据格式**:选择 **CSV**。 - - **编辑 CSV 配置**:如有必要,根据你的 CSV 文件配置选项。你可以设置分隔符和定界符字符,指定是否使用反斜杠作为转义字符,以及指定你的文件是否包含标题行。 - - **文件夹 URI**:以 `s3://[bucket_name]/[data_source_folder]/` 格式输入源文件夹 URI。路径必须以 `/` 结尾。例如,`s3://mybucket/myfolder/`。 - - **存储桶访问**:你可以使用 AWS IAM 角色 ARN 或 AWS 访问密钥来访问你的存储桶。 - - **AWS 角色 ARN**(推荐):输入 AWS IAM 角色 ARN 值。如果你还没有存储桶的 IAM 角色,可以通过点击**点击此处使用 AWS CloudFormation 创建新角色**并按照屏幕上的说明使用提供的 AWS CloudFormation 模板创建。或者,你可以手动为存储桶创建 IAM 角色 ARN。 - - **AWS 访问密钥**:输入 AWS 访问密钥 ID 和 AWS 密钥。 - - 有关两种方法的详细说明,请参见[配置 Amazon S3 访问](/tidb-cloud/dedicated-external-storage.md#configure-amazon-s3-access)。 + - **Included Schema Files**:如果源文件夹包含目标表结构文件(如 `${db_name}-schema-create.sql`),请选择 **Yes**,否则选择 **No**。 + - **Data Format**:选择 **CSV**。 + - **Edit CSV Configuration**:如有需要,根据你的 CSV 文件配置选项。你可以设置分隔符和定界符字符,指定是否使用反斜杠转义字符,以及文件是否包含表头行。 + - **Folder URI**:输入源文件夹的 URI,格式为 `s3://[bucket_name]/[data_source_folder]/`,路径必须以 `/` 结尾。例如,`s3://mybucket/myfolder/`。 + - **Bucket Access**:你可以使用 AWS IAM role ARN 或 AWS 访问密钥访问你的存储桶。 + - **AWS Role ARN**(推荐):输入 AWS IAM role ARN。如果你还没有为存储桶创建 IAM role,可以点击 **Click here to create new one with AWS CloudFormation**,按照屏幕提示使用提供的 AWS CloudFormation 模板创建。你也可以手动为存储桶创建 IAM role ARN。 + - **AWS Access Key**:输入 AWS access key ID 和 AWS secret access key。 + - 两种方式的详细说明请参见 [配置 Amazon S3 访问权限](/tidb-cloud/dedicated-external-storage.md#configure-amazon-s3-access)。 -4. 点击**连接**。 +4. 点击 **Connect**。 -5. 在**目标**部分,选择目标数据库和表。 +5. 在 **Destination** 部分,选择目标数据库和数据表。 - 导入多个文件时,你可以使用**高级设置** > **映射设置**来自定义各个目标表与其对应 CSV 文件的映射。对于每个目标数据库和表: + 当导入多个文件时,你可以通过 **Advanced Settings** > **Mapping Settings** 自定义每个目标表与其对应 CSV 文件的映射。对于每个目标数据库和表: - - **目标数据库**:从列表中选择相应的数据库名称。 - - **目标表**:从列表中选择相应的表名称。 - - **源文件 URI 和名称**:输入源文件的完整 URI,包括文件夹和文件名,确保其格式为 `s3://[bucket_name]/[data_source_folder]/[file_name].csv`。你也可以使用通配符(`?` 和 `*`)来匹配多个文件。例如: - - `s3://mybucket/myfolder/my-data1.csv`:`myfolder` 中名为 `my-data1.csv` 的单个 CSV 文件将导入到目标表中。 - - `s3://mybucket/myfolder/my-data?.csv`:`myfolder` 中以 `my-data` 开头后跟一个字符的所有 CSV 文件(如 `my-data1.csv` 和 `my-data2.csv`)将导入到同一个目标表中。 - - `s3://mybucket/myfolder/my-data*.csv`:`myfolder` 中以 `my-data` 开头的所有 CSV 文件(如 `my-data10.csv` 和 `my-data100.csv`)将导入到同一个目标表中。 + - **Target Database**:从列表中选择对应的数据库名称。 + - **Target Table**:从列表中选择对应的表名称。 + - **Source File URIs and Names**:输入源文件的完整 URI,包括文件夹和文件名,确保格式为 `s3://[bucket_name]/[data_source_folder]/[file_name].csv`。你也可以使用通配符(`?` 和 `*`)匹配多个文件。例如: + - `s3://mybucket/myfolder/my-data1.csv`:`myfolder` 下名为 `my-data1.csv` 的单个 CSV 文件将被导入到目标表。 + - `s3://mybucket/myfolder/my-data?.csv`:`myfolder` 下所有以 `my-data` 开头、后跟一个字符(如 `my-data1.csv` 和 `my-data2.csv`)的 CSV 文件将被导入到同一个目标表。 + - `s3://mybucket/myfolder/my-data*.csv`:`myfolder` 下所有以 `my-data` 开头(如 `my-data10.csv` 和 `my-data100.csv`)的 CSV 文件将被导入到同一个目标表。 -6. 点击**开始导入**。 +6. 点击 **Start Import**。 -7. 当导入进度显示**已完成**时,检查导入的表。 +7. 当导入进度显示 **Completed** 时,检查已导入的数据表。
-1. 打开目标集群的**导入**页面。 +1. 打开目标集群的 **Import** 页面。 - 1. 登录 [TiDB Cloud 控制台](https://tidbcloud.com/),导航到项目的[**集群**](https://tidbcloud.com/project/clusters)页面。 + 1. 登录 [TiDB Cloud 控制台](https://tidbcloud.com/),进入项目的 [**Clusters**](https://tidbcloud.com/project/clusters) 页面。 > **提示:** > - > 你可以使用左上角的组合框在组织、项目和集群之间切换。 + > 你可以使用左上角的下拉框切换组织、项目和集群。 - 2. 点击目标集群的名称进入其概览页面,然后在左侧导航栏中点击**数据** > **导入**。 + 2. 点击目标集群名称进入其概览页面,然后在左侧导航栏点击 **Data** > **Import**。 -2. 选择**从云存储导入数据**。 +2. 选择 **Import data from Cloud Storage**。 -3. 在**从 Google Cloud Storage 导入数据**页面,为源 CSV 文件提供以下信息: +3. 在 **Import Data from Cloud Storage** 页面,为源 CSV 文件填写以下信息: - - **包含结构文件**:如果源文件夹包含目标表结构文件(如 `${db_name}-schema-create.sql`),选择**是**。否则,选择**否**。 - - **数据格式**:选择 **CSV**。 - - **编辑 CSV 配置**:如有必要,根据你的 CSV 文件配置选项。你可以设置分隔符和定界符字符,指定是否使用反斜杠作为转义字符,以及指定你的文件是否包含标题行。 - - **文件夹 URI**:以 `gs://[bucket_name]/[data_source_folder]/` 格式输入源文件夹 URI。路径必须以 `/` 结尾。例如,`gs://sampledata/ingest/`。 - - **Google Cloud 服务账号 ID**:TiDB Cloud 在此页面上提供了一个唯一的服务账号 ID(如 `example-service-account@your-project.iam.gserviceaccount.com`)。你必须在 Google Cloud 项目中为你的 GCS 存储桶授予此服务账号 ID 必要的 IAM 权限(如"Storage Object Viewer")。更多信息,请参见[配置 GCS 访问](/tidb-cloud/dedicated-external-storage.md#configure-gcs-access)。 + - **Included Schema Files**:如果源文件夹包含目标表结构文件(如 `${db_name}-schema-create.sql`),请选择 **Yes**,否则选择 **No**。 + - **Data Format**:选择 **CSV**。 + - **Edit CSV Configuration**:如有需要,根据你的 CSV 文件配置选项。你可以设置分隔符和定界符字符,指定是否使用反斜杠转义字符,以及文件是否包含表头行。 + - **Folder URI**:输入源文件夹的 URI,格式为 `gs://[bucket_name]/[data_source_folder]/`,路径必须以 `/` 结尾。例如,`gs://sampledata/ingest/`。 + - **Google Cloud Service Account ID**:TiDB Cloud 会在此页面提供一个唯一的 Service Account ID(如 `example-service-account@your-project.iam.gserviceaccount.com`)。你必须在 Google Cloud 项目中为该 Service Account ID 授予所需的 IAM 权限(如 "Storage Object Viewer")以访问你的 GCS 存储桶。更多信息请参见 [配置 GCS 访问权限](/tidb-cloud/dedicated-external-storage.md#configure-gcs-access)。 -4. 点击**连接**。 +4. 点击 **Connect**。 -5. 在**目标**部分,选择目标数据库和表。 +5. 在 **Destination** 部分,选择目标数据库和数据表。 - 导入多个文件时,你可以使用**高级设置** > **映射设置**来自定义各个目标表与其对应 CSV 文件的映射。对于每个目标数据库和表: + 当导入多个文件时,你可以通过 **Advanced Settings** > **Mapping Settings** 自定义每个目标表与其对应 CSV 文件的映射。对于每个目标数据库和表: - - **目标数据库**:从列表中选择相应的数据库名称。 - - **目标表**:从列表中选择相应的表名称。 - - **源文件 URI 和名称**:输入源文件的完整 URI,包括文件夹和文件名,确保其格式为 `gs://[bucket_name]/[data_source_folder]/[file_name].csv`。你也可以使用通配符(`?` 和 `*`)来匹配多个文件。例如: - - `gs://mybucket/myfolder/my-data1.csv`:`myfolder` 中名为 `my-data1.csv` 的单个 CSV 文件将导入到目标表中。 - - `gs://mybucket/myfolder/my-data?.csv`:`myfolder` 中以 `my-data` 开头后跟一个字符的所有 CSV 文件(如 `my-data1.csv` 和 `my-data2.csv`)将导入到同一个目标表中。 - - `gs://mybucket/myfolder/my-data*.csv`:`myfolder` 中以 `my-data` 开头的所有 CSV 文件(如 `my-data10.csv` 和 `my-data100.csv`)将导入到同一个目标表中。 + - **Target Database**:从列表中选择对应的数据库名称。 + - **Target Table**:从列表中选择对应的表名称。 + - **Source File URIs and Names**:输入源文件的完整 URI,包括文件夹和文件名,确保格式为 `gs://[bucket_name]/[data_source_folder]/[file_name].csv`。你也可以使用通配符(`?` 和 `*`)匹配多个文件。例如: + - `gs://mybucket/myfolder/my-data1.csv`:`myfolder` 下名为 `my-data1.csv` 的单个 CSV 文件将被导入到目标表。 + - `gs://mybucket/myfolder/my-data?.csv`:`myfolder` 下所有以 `my-data` 开头、后跟一个字符(如 `my-data1.csv` 和 `my-data2.csv`)的 CSV 文件将被导入到同一个目标表。 + - `gs://mybucket/myfolder/my-data*.csv`:`myfolder` 下所有以 `my-data` 开头(如 `my-data10.csv` 和 `my-data100.csv`)的 CSV 文件将被导入到同一个目标表。 -6. 点击**开始导入**。 +6. 点击 **Start Import**。 -7. 当导入进度显示**已完成**时,检查导入的表。 +7. 当导入进度显示 **Completed** 时,检查已导入的数据表。
-1. 打开目标集群的**导入**页面。 +1. 打开目标集群的 **Import** 页面。 - 1. 登录 [TiDB Cloud 控制台](https://tidbcloud.com/),导航到项目的[**集群**](https://tidbcloud.com/project/clusters)页面。 + 1. 登录 [TiDB Cloud 控制台](https://tidbcloud.com/),进入项目的 [**Clusters**](https://tidbcloud.com/project/clusters) 页面。 > **提示:** > - > 你可以使用左上角的组合框在组织、项目和集群之间切换。 + > 你可以使用左上角的下拉框切换组织、项目和集群。 - 2. 点击目标集群的名称进入其概览页面,然后在左侧导航栏中点击**数据** > **导入**。 + 2. 点击目标集群名称进入其概览页面,然后在左侧导航栏点击 **Data** > **Import**。 -2. 选择**从云存储导入数据**。 +2. 选择 **Import data from Cloud Storage**。 -3. 在**从 Azure Blob Storage 导入数据**页面,提供以下信息: +3. 在 **Import Data from Azure Blob Storage** 页面,填写以下信息: - - **包含结构文件**:如果源文件夹包含目标表结构文件(如 `${db_name}-schema-create.sql`),选择**是**。否则,选择**否**。 - - **数据格式**:选择 **CSV**。 - - **编辑 CSV 配置**:如有必要,根据你的 CSV 文件配置选项。你可以设置分隔符和定界符字符,指定是否使用反斜杠作为转义字符,以及指定你的文件是否包含标题行。 - - **文件夹 URI**:使用格式 `https://[account_name].blob.core.windows.net/[container_name]/[data_source_folder]/` 输入源文件所在的 Azure Blob Storage URI。路径必须以 `/` 结尾。例如,`https://myaccount.blob.core.windows.net/mycontainer/myfolder/`。 - - **SAS 令牌**:输入账户 SAS 令牌,以允许 TiDB Cloud 访问你的 Azure Blob Storage 容器中的源文件。如果你还没有,可以通过点击**点击此处使用 Azure ARM 模板创建新令牌**并按照屏幕上的说明使用提供的 Azure ARM 模板创建。或者,你可以手动创建账户 SAS 令牌。更多信息,请参见[配置 Azure Blob Storage 访问](/tidb-cloud/dedicated-external-storage.md#configure-azure-blob-storage-access)。 + - **Included Schema Files**:如果源文件夹包含目标表结构文件(如 `${db_name}-schema-create.sql`),请选择 **Yes**,否则选择 **No**。 + - **Data Format**:选择 **CSV**。 + - **Edit CSV Configuration**:如有需要,根据你的 CSV 文件配置选项。你可以设置分隔符和定界符字符,指定是否使用反斜杠转义字符,以及文件是否包含表头行。 + - **Folder URI**:输入存放源文件的 Azure Blob Storage URI,格式为 `https://[account_name].blob.core.windows.net/[container_name]/[data_source_folder]/`,路径必须以 `/` 结尾。例如,`https://myaccount.blob.core.windows.net/mycontainer/myfolder/`。 + - **SAS Token**:输入账户 SAS token,以允许 TiDB Cloud 访问你 Azure Blob Storage 容器中的源文件。如果你还没有 SAS token,可以点击 **Click here to create a new one with Azure ARM template**,按照屏幕提示使用提供的 Azure ARM 模板创建。你也可以手动创建账户 SAS token。更多信息请参见 [配置 Azure Blob Storage 访问权限](/tidb-cloud/dedicated-external-storage.md#configure-azure-blob-storage-access)。 -4. 点击**连接**。 +4. 点击 **Connect**。 -5. 在**目标**部分,选择目标数据库和表。 +5. 在 **Destination** 部分,选择目标数据库和数据表。 - 导入多个文件时,你可以使用**高级设置** > **映射设置**来自定义各个目标表与其对应 CSV 文件的映射。对于每个目标数据库和表: + 当导入多个文件时,你可以通过 **Advanced Settings** > **Mapping Settings** 自定义每个目标表与其对应 CSV 文件的映射。对于每个目标数据库和表: - - **目标数据库**:从列表中选择相应的数据库名称。 - - **目标表**:从列表中选择相应的表名称。 - - **源文件 URI 和名称**:输入源文件的完整 URI,包括文件夹和文件名,确保其格式为 `https://[account_name].blob.core.windows.net/[container_name]/[data_source_folder]/[file_name].csv`。你也可以使用通配符(`?` 和 `*`)来匹配多个文件。例如: - - `https://myaccount.blob.core.windows.net/mycontainer/myfolder/my-data1.csv`:`myfolder` 中名为 `my-data1.csv` 的单个 CSV 文件将导入到目标表中。 - - `https://myaccount.blob.core.windows.net/mycontainer/myfolder/my-data?.csv`:`myfolder` 中以 `my-data` 开头后跟一个字符的所有 CSV 文件(如 `my-data1.csv` 和 `my-data2.csv`)将导入到同一个目标表中。 - - `https://myaccount.blob.core.windows.net/mycontainer/myfolder/my-data*.csv`:`myfolder` 中以 `my-data` 开头的所有 CSV 文件(如 `my-data10.csv` 和 `my-data100.csv`)将导入到同一个目标表中。 + - **Target Database**:从列表中选择对应的数据库名称。 + - **Target Table**:从列表中选择对应的表名称。 + - **Source File URIs and Names**:输入源文件的完整 URI,包括文件夹和文件名,确保格式为 `https://[account_name].blob.core.windows.net/[container_name]/[data_source_folder]/[file_name].csv`。你也可以使用通配符(`?` 和 `*`)匹配多个文件。例如: + - `https://myaccount.blob.core.windows.net/mycontainer/myfolder/my-data1.csv`:`myfolder` 下名为 `my-data1.csv` 的单个 CSV 文件将被导入到目标表。 + - `https://myaccount.blob.core.windows.net/mycontainer/myfolder/my-data?.csv`:`myfolder` 下所有以 `my-data` 开头、后跟一个字符(如 `my-data1.csv` 和 `my-data2.csv`)的 CSV 文件将被导入到同一个目标表。 + - `https://myaccount.blob.core.windows.net/mycontainer/myfolder/my-data*.csv`:`myfolder` 下所有以 `my-data` 开头(如 `my-data10.csv` 和 `my-data100.csv`)的 CSV 文件将被导入到同一个目标表。 -6. 点击**开始导入**。 +6. 点击 **Start Import**。 -7. 当导入进度显示**已完成**时,检查导入的表。 +7. 当导入进度显示 **Completed** 时,检查已导入的数据表。
-当你运行导入任务时,如果检测到任何不支持或无效的转换,TiDB Cloud 会自动终止导入作业并报告导入错误。你可以在**状态**字段中查看详细信息。 +当你运行导入任务时,如果检测到任何不支持或无效的类型转换,TiDB Cloud 会自动终止导入作业并报告导入错误。你可以在 **Status** 字段中查看详细信息。 -如果遇到导入错误,请执行以下操作: +如果遇到导入错误,请按以下步骤操作: 1. 删除部分导入的表。 -2. 检查表结构文件。如果有任何错误,请更正表结构文件。 +2. 检查表结构文件,如有错误请修正。 3. 检查 CSV 文件中的数据类型。 -4. 重试导入任务。 +4. 重新尝试导入任务。 -## 故障排除 +## 故障排查 ### 解决数据导入过程中的警告 -点击**开始导入**后,如果看到类似 `can't find the corresponding source files` 的警告消息,请通过提供正确的源文件、根据[数据导入的命名规范](/tidb-cloud/naming-conventions-for-data-import.md)重命名现有文件,或使用**高级设置**进行更改来解决此问题。 +点击 **Start Import** 后,如果看到类似 `can't find the corresponding source files` 的警告信息,请通过提供正确的源文件、按照 [数据导入命名规范](/tidb-cloud/naming-conventions-for-data-import.md) 重命名现有文件,或使用 **Advanced Settings** 进行调整来解决。 解决这些问题后,你需要重新导入数据。 -### 导入的表中行数为零 +### 导入表中行数为零 -当导入进度显示**已完成**后,检查导入的表。如果行数为零,这意味着没有数据文件与你输入的存储桶 URI 匹配。在这种情况下,请通过提供正确的源文件、根据[数据导入的命名规范](/tidb-cloud/naming-conventions-for-data-import.md)重命名现有文件,或使用**高级设置**进行更改来解决此问题。之后,重新导入这些表。 +当导入进度显示 **Completed** 后,请检查已导入的数据表。如果行数为零,说明没有数据文件与输入的 Bucket URI 匹配。此时,请通过提供正确的源文件、按照 [数据导入命名规范](/tidb-cloud/naming-conventions-for-data-import.md) 重命名现有文件,或使用 **Advanced Settings** 进行调整来解决。之后,重新导入这些表。 \ No newline at end of file diff --git a/tidb-cloud/import-parquet-files-serverless.md b/tidb-cloud/import-parquet-files-serverless.md index bf4a8f21f0129..492405500911f 100644 --- a/tidb-cloud/import-parquet-files-serverless.md +++ b/tidb-cloud/import-parquet-files-serverless.md @@ -1,22 +1,22 @@ --- title: 从 Amazon S3、GCS、Azure Blob Storage 或阿里云 OSS 导入 Apache Parquet 文件到 TiDB Cloud Serverless -summary: 了解如何从 Amazon S3、GCS、Azure Blob Storage 或阿里云对象存储服务(OSS)导入 Apache Parquet 文件到 TiDB Cloud Serverless。 +summary: 了解如何将 Apache Parquet 文件从 Amazon S3、GCS、Azure Blob Storage 或阿里云对象存储服务(OSS)导入到 TiDB Cloud Serverless。 --- # 从 Amazon S3、GCS、Azure Blob Storage 或阿里云 OSS 导入 Apache Parquet 文件到 TiDB Cloud Serverless -你可以将未压缩和 Snappy 压缩的 [Apache Parquet](https://parquet.apache.org/) 格式数据文件导入到 TiDB Cloud Serverless。本文档描述了如何从 Amazon Simple Storage Service (Amazon S3)、Google Cloud Storage (GCS)、Azure Blob Storage 或阿里云对象存储服务(OSS)将 Parquet 文件导入到 TiDB Cloud Serverless。 +你可以将未压缩和 Snappy 压缩的 [Apache Parquet](https://parquet.apache.org/) 格式数据文件导入到 TiDB Cloud Serverless。本文档介绍如何将 Parquet 文件从 Amazon Simple Storage Service(Amazon S3)、Google Cloud Storage(GCS)、Azure Blob Storage 或阿里云对象存储服务(OSS)导入到 TiDB Cloud Serverless。 -> **注意:** +> **Note:** > -> - TiDB Cloud Serverless 仅支持将 Parquet 文件导入到空表中。要将数据导入到已包含数据的现有表中,你可以按照本文档将数据导入到临时空表中,然后使用 `INSERT SELECT` 语句将数据复制到目标现有表中。 -> - Snappy 压缩文件必须采用[官方 Snappy 格式](https://github.com/google/snappy)。不支持其他变体的 Snappy 压缩。 +> - TiDB Cloud Serverless 仅支持将 Parquet 文件导入到空表中。如果需要将数据导入到已存在且包含数据的表中,你可以按照本文档的步骤,先将数据导入到一个临时空表中,然后使用 `INSERT SELECT` 语句将数据复制到目标表。 +> - Snappy 压缩文件必须采用 [官方 Snappy 格式](https://github.com/google/snappy)。不支持其他变体的 Snappy 压缩格式。 -## 步骤 1. 准备 Parquet 文件 +## 第 1 步:准备 Parquet 文件 -> **注意:** +> **Note:** > -> 目前,TiDB Cloud Serverless 不支持导入包含以下任何数据类型的 Parquet 文件。如果要导入的 Parquet 文件包含此类数据类型,你需要首先使用[支持的数据类型](#支持的数据类型)(例如 `STRING`)重新生成 Parquet 文件。或者,你可以使用 AWS Glue 等服务轻松转换数据类型。 +> 目前,TiDB Cloud Serverless 不支持导入包含以下任意数据类型的 Parquet 文件。如果待导入的 Parquet 文件包含这些数据类型,你需要先使用 [支持的数据类型](#supported-data-types)(例如 `STRING`)重新生成 Parquet 文件。或者,你也可以使用如 AWS Glue 等服务轻松转换数据类型。 > > - `LIST` > - `NEST STRUCT` @@ -24,46 +24,46 @@ summary: 了解如何从 Amazon S3、GCS、Azure Blob Storage 或阿里云对象 > - `ARRAY` > - `MAP` -1. 如果 Parquet 文件大于 256 MB,建议将其拆分为较小的文件,每个文件大小约为 256 MB。 +1. 如果单个 Parquet 文件大于 256 MB,建议将其拆分为多个较小的文件,每个文件大小约为 256 MB。 - TiDB Cloud Serverless 支持导入非常大的 Parquet 文件,但对于大小约为 256 MB 的多个输入文件性能最佳。这是因为 TiDB Cloud Serverless 可以并行处理多个文件,从而大大提高导入速度。 + TiDB Cloud Serverless 支持导入非常大的 Parquet 文件,但在多个约 256 MB 的输入文件并行导入时性能最佳。这是因为 TiDB Cloud Serverless 可以并行处理多个文件,从而大幅提升导入速度。 -2. 按照以下方式命名 Parquet 文件: +2. 按如下方式命名 Parquet 文件: - - 如果 Parquet 文件包含整个表的所有数据,请按 `${db_name}.${table_name}.parquet` 格式命名文件,导入数据时将映射到 `${db_name}.${table_name}` 表。 - - 如果一个表的数据分散在多个 Parquet 文件中,请在这些 Parquet 文件后面添加数字后缀。例如,`${db_name}.${table_name}.000001.parquet` 和 `${db_name}.${table_name}.000002.parquet`。数字后缀可以不连续,但必须按升序排列。你还需要在数字前添加额外的零,以确保所有后缀长度相同。 + - 如果一个 Parquet 文件包含整个表的所有数据,文件名应采用 `${db_name}.${table_name}.parquet` 格式,导入时会映射到 `${db_name}.${table_name}` 表。 + - 如果一个表的数据被拆分为多个 Parquet 文件,应在这些文件名后添加数字后缀。例如,`${db_name}.${table_name}.000001.parquet` 和 `${db_name}.${table_name}.000002.parquet`。数字后缀可以不连续,但必须递增,并且需要在数字前补零以保证所有后缀长度一致。 - > **注意:** + > **Note:** > - > 如果在某些情况下无法按照上述规则更新 Parquet 文件名(例如,Parquet 文件链接也被其他程序使用),你可以保持文件名不变,并在[步骤 4](#步骤-4-将-parquet-文件导入到-tidb-cloud-serverless) 中使用**映射设置**将源数据导入到单个目标表。 + > 如果在某些情况下无法按照上述规则修改 Parquet 文件名(例如,这些 Parquet 文件链接也被你的其他程序使用),你可以保持文件名不变,并在 [第 4 步](#step-4-import-parquet-files-to-tidb-cloud-serverless) 的 **Mapping Settings** 中将源数据导入到单一目标表。 -## 步骤 2. 创建目标表架构 +## 第 2 步:创建目标表结构 -由于 Parquet 文件不包含架构信息,在将数据从 Parquet 文件导入到 TiDB Cloud Serverless 之前,你需要使用以下任一方法创建表架构: +由于 Parquet 文件不包含表结构信息,在将 Parquet 文件中的数据导入 TiDB Cloud Serverless 之前,你需要通过以下任一方式创建表结构: -- 方法 1:在 TiDB Cloud Serverless 中,为源数据创建目标数据库和表。 +- 方法一:在 TiDB Cloud Serverless 中,为你的源数据创建目标数据库和数据表。 -- 方法 2:在存放 Parquet 文件的 Amazon S3、GCS、Azure Blob Storage 或阿里云对象存储服务目录中,按以下方式为源数据创建目标表架构文件: +- 方法二:在存放 Parquet 文件的 Amazon S3、GCS、Azure Blob Storage 或阿里云对象存储服务目录下,为你的源数据创建目标表结构文件: - 1. 为源数据创建数据库架构文件。 + 1. 为你的源数据创建数据库结构文件。 - 如果你的 Parquet 文件遵循[步骤 1](#步骤-1-准备-parquet-文件) 中的命名规则,则数据库架构文件对于数据导入是可选的。否则,数据库架构文件是必需的。 + 如果你的 Parquet 文件遵循 [第 1 步](#step-1-prepare-the-parquet-files) 的命名规则,则数据库结构文件为可选项。否则,数据库结构文件为必需项。 - 每个数据库架构文件必须采用 `${db_name}-schema-create.sql` 格式,并包含一个 `CREATE DATABASE` DDL 语句。使用此文件,TiDB Cloud Serverless 将在导入数据时创建 `${db_name}` 数据库来存储你的数据。 + 每个数据库结构文件必须采用 `${db_name}-schema-create.sql` 格式,并包含一个 `CREATE DATABASE` DDL 语句。通过该文件,TiDB Cloud Serverless 会在导入数据时创建 `${db_name}` 数据库以存储你的数据。 - 例如,如果你创建一个包含以下语句的 `mydb-scehma-create.sql` 文件,TiDB Cloud Serverless 将在导入数据时创建 `mydb` 数据库。 + 例如,如果你创建了一个包含如下语句的 `mydb-scehma-create.sql` 文件,TiDB Cloud Serverless 会在导入数据时创建 `mydb` 数据库。 ```sql CREATE DATABASE mydb; ``` - 2. 为源数据创建表架构文件。 + 2. 为你的源数据创建表结构文件。 - 如果你没有在存放 Parquet 文件的 Amazon S3、GCS、Azure Blob Storage 或阿里云对象存储服务目录中包含表架构文件,TiDB Cloud Serverless 在导入数据时将不会为你创建相应的表。 + 如果你没有在 Parquet 文件所在的 Amazon S3、GCS、Azure Blob Storage 或阿里云对象存储服务目录下包含表结构文件,TiDB Cloud Serverless 在导入数据时不会为你创建相应的数据表。 - 每个表架构文件必须采用 `${db_name}.${table_name}-schema.sql` 格式,并包含一个 `CREATE TABLE` DDL 语句。使用此文件,TiDB Cloud Serverless 将在导入数据时在 `${db_name}` 数据库中创建 `${db_table}` 表。 + 每个表结构文件必须采用 `${db_name}.${table_name}-schema.sql` 格式,并包含一个 `CREATE TABLE` DDL 语句。通过该文件,TiDB Cloud Serverless 会在导入数据时,在 `${db_name}` 数据库中创建 `${db_table}` 表。 - 例如,如果你创建一个包含以下语句的 `mydb.mytable-schema.sql` 文件,TiDB Cloud Serverless 将在导入数据时在 `mydb` 数据库中创建 `mytable` 表。 + 例如,如果你创建了一个包含如下语句的 `mydb.mytable-schema.sql` 文件,TiDB Cloud Serverless 会在 `mydb` 数据库中创建 `mytable` 表。 ```sql CREATE TABLE mytable ( @@ -72,250 +72,254 @@ summary: 了解如何从 Amazon S3、GCS、Azure Blob Storage 或阿里云对象 COUNT INT ); ``` - > **注意:** + > **Note:** > - > 每个 `${db_name}.${table_name}-schema.sql` 文件应该只包含一个 DDL 语句。如果文件包含多个 DDL 语句,只有第一个语句生效。 + > 每个 `${db_name}.${table_name}-schema.sql` 文件只能包含一个 DDL 语句。如果文件中包含多个 DDL 语句,只有第一个会生效。 -## 步骤 3. 配置跨账户访问 +## 第 3 步:配置跨账号访问 -要允许 TiDB Cloud Serverless 访问 Amazon S3、GCS、Azure Blob Storage 或阿里云对象存储服务存储桶中的 Parquet 文件,请执行以下操作之一: +为了让 TiDB Cloud Serverless 能够访问 Amazon S3、GCS、Azure Blob Storage 或阿里云对象存储服务桶中的 Parquet 文件,请按以下方式操作: -- 如果你的 Parquet 文件位于 Amazon S3 中,[为 TiDB Cloud Serverless 配置外部存储访问](/tidb-cloud/serverless-external-storage.md#configure-amazon-s3-access)。 +- 如果你的 Parquet 文件位于 Amazon S3,[为 TiDB Cloud Serverless 配置外部存储访问](/tidb-cloud/serverless-external-storage.md#configure-amazon-s3-access)。 - 你可以使用 AWS 访问密钥或 Role ARN 访问存储桶。完成后,请记下访问密钥(包括访问密钥 ID 和密钥)或 Role ARN 值,因为你将在[步骤 4](#步骤-4-将-parquet-文件导入到-tidb-cloud-serverless) 中需要它。 + 你可以使用 AWS 访问密钥或 Role ARN 访问你的桶。配置完成后,请记录访问密钥(包括访问密钥 ID 和密钥)或 Role ARN 值,后续在 [第 4 步](#step-4-import-parquet-files-to-tidb-cloud-serverless) 中会用到。 -- 如果你的 Parquet 文件位于 GCS 中,[为 TiDB Cloud Serverless 配置外部存储访问](/tidb-cloud/serverless-external-storage.md#configure-gcs-access)。 +- 如果你的 Parquet 文件位于 GCS,[为 TiDB Cloud Serverless 配置外部存储访问](/tidb-cloud/serverless-external-storage.md#configure-gcs-access)。 -- 如果你的 Parquet 文件位于 Azure Blob Storage 中,[为 TiDB Cloud Serverless 配置外部存储访问](/tidb-cloud/serverless-external-storage.md#configure-azure-blob-storage-access)。 +- 如果你的 Parquet 文件位于 Azure Blob Storage,[为 TiDB Cloud Serverless 配置外部存储访问](/tidb-cloud/serverless-external-storage.md#configure-azure-blob-storage-access)。 -- 如果你的 Parquet 文件位于阿里云对象存储服务(OSS)中,[为 TiDB Cloud Serverless 配置外部存储访问](/tidb-cloud/serverless-external-storage.md#configure-alibaba-cloud-object-storage-service-oss-access)。 +- 如果你的 Parquet 文件位于阿里云对象存储服务(OSS),[为 TiDB Cloud Serverless 配置外部存储访问](/tidb-cloud/serverless-external-storage.md#configure-alibaba-cloud-object-storage-service-oss-access)。 -## 步骤 4. 将 Parquet 文件导入到 TiDB Cloud Serverless +## 第 4 步:将 Parquet 文件导入 TiDB Cloud Serverless -要将 Parquet 文件导入到 TiDB Cloud Serverless,请执行以下步骤: +要将 Parquet 文件导入到 TiDB Cloud Serverless,请按照以下步骤操作:
-1. 打开目标集群的**导入**页面。 +1. 打开目标集群的 **Import** 页面。 - 1. 登录 [TiDB Cloud 控制台](https://tidbcloud.com/),导航到项目的[**集群**](https://tidbcloud.com/project/clusters)页面。 + 1. 登录 [TiDB Cloud 控制台](https://tidbcloud.com/),进入你的项目 [**Clusters**](https://tidbcloud.com/project/clusters) 页面。 - > **提示:** + > **Tip:** > - > 你可以使用左上角的组合框在组织、项目和集群之间切换。 + > 你可以使用左上角的下拉框切换组织、项目和集群。 - 2. 点击目标集群的名称进入其概览页面,然后在左侧导航栏中点击**数据** > **导入**。 + 2. 点击目标集群名称进入其概览页面,然后在左侧导航栏点击 **Data** > **Import**。 -2. 选择**从云存储导入数据**,然后点击 **Amazon S3**。 +2. 点击 **Import data from Cloud Storage**。 -3. 在**从 Amazon S3 导入数据**页面,为源 Parquet 文件提供以下信息: +3. 在 **Import Data from Cloud Storage** 页面,填写以下信息: - - **导入文件数量**:根据需要选择**单个文件**或**多个文件**。 - - **包含架构文件**:此字段仅在导入多个文件时可见。如果源文件夹包含目标表架构,选择**是**。否则,选择**否**。 - - **数据格式**:选择 **Parquet**。 - - **文件 URI** 或**文件夹 URI**: - - 导入单个文件时,按以下格式输入源文件 URI 和名称 `s3://[bucket_name]/[data_source_folder]/[file_name].parquet`。例如,`s3://sampledata/ingest/TableName.01.parquet`。 - - 导入多个文件时,按以下格式输入源文件 URI 和名称 `s3://[bucket_name]/[data_source_folder]/`。例如,`s3://sampledata/ingest/`。 - - **存储桶访问**:你可以使用 AWS Role ARN 或 AWS 访问密钥访问存储桶。更多信息,请参阅[配置 Amazon S3 访问](/tidb-cloud/serverless-external-storage.md#configure-amazon-s3-access)。 + - **Storage Provider**:选择 **Amazon S3**。 + - **Source Files URI**: + - 导入单个文件时,输入源文件 URI,格式为 `s3://[bucket_name]/[data_source_folder]/[file_name].parquet`。例如:`s3://sampledata/ingest/TableName.01.parquet`。 + - 导入多个文件时,输入源文件夹 URI,格式为 `s3://[bucket_name]/[data_source_folder]/`。例如:`s3://sampledata/ingest/`。 + - **Credential**:你可以使用 AWS Role ARN 或 AWS 访问密钥访问你的桶。详情参见 [Configure Amazon S3 access](/tidb-cloud/serverless-external-storage.md#configure-amazon-s3-access)。 - **AWS Role ARN**:输入 AWS Role ARN 值。 - - **AWS 访问密钥**:输入 AWS 访问密钥 ID 和 AWS 密钥。 + - **AWS Access Key**:输入 AWS 访问密钥 ID 和 AWS 密钥。 -4. 点击**连接**。 +4. 点击 **Next**。 -5. 在**目标**部分,选择目标数据库和表。 +5. 在 **Destination Mapping** 部分,指定源文件与目标表的映射方式。 - 导入多个文件时,你可以使用**高级设置** > **映射设置**为每个目标表及其对应的 Parquet 文件定义自定义映射规则。之后,将使用提供的自定义映射规则重新扫描数据源文件。 + 当 **Source Files URI** 指定为目录时,默认选中 **Use [File naming conventions](/tidb-cloud/naming-conventions-for-data-import.md) for automatic mapping** 选项。 - 在**源文件 URI 和名称**中输入源文件 URI 和名称时,确保使用以下格式 `s3://[bucket_name]/[data_source_folder]/[file_name].parquet`。例如,`s3://sampledata/ingest/TableName.01.parquet`。 + > **Note:** + > + > 当 **Source Files URI** 指定为单个文件时,不显示 **Use [File naming conventions](/tidb-cloud/naming-conventions-for-data-import.md) for automatic mapping** 选项,TiDB Cloud 会自动将 **Source** 字段填充为文件名。此时,你只需选择目标数据库和表进行数据导入。 - 你还可以使用通配符匹配源文件。例如: + - 若希望 TiDB Cloud 自动将所有遵循 [File naming conventions](/tidb-cloud/naming-conventions-for-data-import.md) 的源文件映射到对应表,保持该选项选中,并选择 **Parquet** 作为数据格式。 - - `s3://[bucket_name]/[data_source_folder]/my-data?.parquet`:该文件夹中以 `my-data` 开头后跟一个字符的所有 Parquet 文件(如 `my-data1.parquet` 和 `my-data2.parquet`)将导入到同一个目标表中。 + - 若需手动配置映射规则,将你的源 Parquet 文件与目标数据库和表关联,取消选中该选项,然后填写以下字段: - - `s3://[bucket_name]/[data_source_folder]/my-data*.parquet`:该文件夹中以 `my-data` 开头的所有 Parquet 文件将导入到同一个目标表中。 + - **Source**:输入文件名模式,格式为 `[file_name].parquet`。例如:`TableName.01.parquet`。你也可以使用通配符匹配多个文件,仅支持 `*` 和 `?` 通配符。 - 注意,仅支持 `?` 和 `*`。 + - `my-data?.parquet`:匹配所有以 `my-data` 开头,后跟单个字符的 Parquet 文件,如 `my-data1.parquet` 和 `my-data2.parquet`。 + - `my-data*.parquet`:匹配所有以 `my-data` 开头的 Parquet 文件,如 `my-data-2023.parquet` 和 `my-data-final.parquet`。 - > **注意:** - > - > URI 必须包含数据源文件夹。 + - **Target Database** 和 **Target Table**:选择要导入数据的目标数据库和表。 + +6. 点击 **Next**。TiDB Cloud 会相应扫描源文件。 -6. 点击**开始导入**。 +7. 审查扫描结果,检查找到的数据文件及其对应的目标表,然后点击 **Start Import**。 -7. 当导入进度显示**已完成**时,检查导入的表。 +8. 当导入进度显示 **Completed** 时,检查已导入的数据表。
-1. 打开目标集群的**导入**页面。 +1. 打开目标集群的 **Import** 页面。 - 1. 登录 [TiDB Cloud 控制台](https://tidbcloud.com/),导航到项目的[**集群**](https://tidbcloud.com/project/clusters)页面。 + 1. 登录 [TiDB Cloud 控制台](https://tidbcloud.com/),进入你的项目 [**Clusters**](https://tidbcloud.com/project/clusters) 页面。 - > **提示:** + > **Tip:** > - > 你可以使用左上角的组合框在组织、项目和集群之间切换。 + > 你可以使用左上角的下拉框切换组织、项目和集群。 - 2. 点击目标集群的名称进入其概览页面,然后在左侧导航栏中点击**数据** > **导入**。 + 2. 点击目标集群名称进入其概览页面,然后在左侧导航栏点击 **Data** > **Import**。 -2. 选择**从云存储导入数据**,然后点击 **Google Cloud Storage**。 +2. 点击 **Import data from Cloud Storage**。 -3. 在**从 Google Cloud Storage 导入数据**页面,为源 Parquet 文件提供以下信息: +3. 在 **Import Data from Cloud Storage** 页面,填写以下信息: - - **导入文件数量**:根据需要选择**单个文件**或**多个文件**。 - - **包含架构文件**:此字段仅在导入多个文件时可见。如果源文件夹包含目标表架构,选择**是**。否则,选择**否**。 - - **数据格式**:选择 **Parquet**。 - - **文件 URI** 或**文件夹 URI**: - - 导入单个文件时,按以下格式输入源文件 URI 和名称 `[gcs|gs]://[bucket_name]/[data_source_folder]/[file_name].parquet`。例如,`[gcs|gs]://sampledata/ingest/TableName.01.parquet`。 - - 导入多个文件时,按以下格式输入源文件 URI 和名称 `[gcs|gs]://[bucket_name]/[data_source_folder]/`。例如,`[gcs|gs]://sampledata/ingest/`。 - - **存储桶访问**:你可以使用 GCS IAM 角色访问存储桶。更多信息,请参阅[配置 GCS 访问](/tidb-cloud/serverless-external-storage.md#configure-gcs-access)。 + - **Storage Provider**:选择 **Google Cloud Storage**。 + - **Source Files URI**: + - 导入单个文件时,输入源文件 URI,格式为 `[gcs|gs]://[bucket_name]/[data_source_folder]/[file_name].parquet`。例如:`[gcs|gs]://sampledata/ingest/TableName.01.parquet`。 + - 导入多个文件时,输入源文件夹 URI,格式为 `[gcs|gs]://[bucket_name]/[data_source_folder]/`。例如:`[gcs|gs]://sampledata/ingest/`。 + - **Credential**:你可以使用 GCS IAM Role Service Account key 访问你的桶。详情参见 [Configure GCS access](/tidb-cloud/serverless-external-storage.md#configure-gcs-access)。 -4. 点击**连接**。 +4. 点击 **Next**。 -5. 在**目标**部分,选择目标数据库和表。 +5. 在 **Destination Mapping** 部分,指定源文件与目标表的映射方式。 - 导入多个文件时,你可以使用**高级设置** > **映射设置**为每个目标表及其对应的 Parquet 文件定义自定义映射规则。之后,将使用提供的自定义映射规则重新扫描数据源文件。 + 当 **Source Files URI** 指定为目录时,默认选中 **Use [File naming conventions](/tidb-cloud/naming-conventions-for-data-import.md) for automatic mapping** 选项。 - 在**源文件 URI 和名称**中输入源文件 URI 和名称时,确保使用以下格式 `[gcs|gs]://[bucket_name]/[data_source_folder]/[file_name].parquet`。例如,`[gcs|gs]://sampledata/ingest/TableName.01.parquet`。 + > **Note:** + > + > 当 **Source Files URI** 指定为单个文件时,不显示 **Use [File naming conventions](/tidb-cloud/naming-conventions-for-data-import.md) for automatic mapping** 选项,TiDB Cloud 会自动将 **Source** 字段填充为文件名。此时,你只需选择目标数据库和表进行数据导入。 - 你还可以使用通配符匹配源文件。例如: + - 若希望 TiDB Cloud 自动将所有遵循 [File naming conventions](/tidb-cloud/naming-conventions-for-data-import.md) 的源文件映射到对应表,保持该选项选中,并选择 **Parquet** 作为数据格式。 - - `[gcs|gs]://[bucket_name]/[data_source_folder]/my-data?.parquet`:该文件夹中以 `my-data` 开头后跟一个字符的所有 Parquet 文件(如 `my-data1.parquet` 和 `my-data2.parquet`)将导入到同一个目标表中。 + - 若需手动配置映射规则,将你的源 Parquet 文件与目标数据库和表关联,取消选中该选项,然后填写以下字段: - - `[gcs|gs]://[bucket_name]/[data_source_folder]/my-data*.parquet`:该文件夹中以 `my-data` 开头的所有 Parquet 文件将导入到同一个目标表中。 + - **Source**:输入文件名模式,格式为 `[file_name].parquet`。例如:`TableName.01.parquet`。你也可以使用通配符匹配多个文件,仅支持 `*` 和 `?` 通配符。 - 注意,仅支持 `?` 和 `*`。 + - `my-data?.parquet`:匹配所有以 `my-data` 开头,后跟单个字符的 Parquet 文件,如 `my-data1.parquet` 和 `my-data2.parquet`。 + - `my-data*.parquet`:匹配所有以 `my-data` 开头的 Parquet 文件,如 `my-data-2023.parquet` 和 `my-data-final.parquet`。 - > **注意:** - > - > URI 必须包含数据源文件夹。 + - **Target Database** 和 **Target Table**:选择要导入数据的目标数据库和表。 + +6. 点击 **Next**。TiDB Cloud 会相应扫描源文件。 -6. 点击**开始导入**。 +7. 审查扫描结果,检查找到的数据文件及其对应的目标表,然后点击 **Start Import**。 -7. 当导入进度显示**已完成**时,检查导入的表。 +8. 当导入进度显示 **Completed** 时,检查已导入的数据表。
-1. 打开目标集群的**导入**页面。 +1. 打开目标集群的 **Import** 页面。 - 1. 登录 [TiDB Cloud 控制台](https://tidbcloud.com/),导航到项目的[**集群**](https://tidbcloud.com/project/clusters)页面。 + 1. 登录 [TiDB Cloud 控制台](https://tidbcloud.com/),进入你的项目 [**Clusters**](https://tidbcloud.com/project/clusters) 页面。 - > **提示:** + > **Tip:** > - > 你可以使用左上角的组合框在组织、项目和集群之间切换。 + > 你可以使用左上角的下拉框切换组织、项目和集群。 - 2. 点击目标集群的名称进入其概览页面,然后在左侧导航栏中点击**数据** > **导入**。 + 2. 点击目标集群名称进入其概览页面,然后在左侧导航栏点击 **Data** > **Import**。 -2. 选择**从云存储导入数据**,然后点击 **Azure Blob Storage**。 +2. 点击 **Import data from Cloud Storage**。 -3. 在**从 Azure Blob Storage 导入数据**页面,为源 Parquet 文件提供以下信息: +3. 在 **Import Data from Cloud Storage** 页面,填写以下信息: - - **导入文件数量**:根据需要选择**单个文件**或**多个文件**。 - - **包含架构文件**:此字段仅在导入多个文件时可见。如果源文件夹包含目标表架构,选择**是**。否则,选择**否**。 - - **数据格式**:选择 **Parquet**。 - - **文件 URI** 或**文件夹 URI**: - - 导入单个文件时,按以下格式输入源文件 URI 和名称 `[azure|https]://[bucket_name]/[data_source_folder]/[file_name].parquet`。例如,`[azure|https]://sampledata/ingest/TableName.01.parquet`。 - - 导入多个文件时,按以下格式输入源文件 URI 和名称 `[azure|https]://[bucket_name]/[data_source_folder]/`。例如,`[azure|https]://sampledata/ingest/`。 - - **存储桶访问**:你可以使用共享访问签名(SAS)令牌访问存储桶。更多信息,请参阅[配置 Azure Blob Storage 访问](/tidb-cloud/serverless-external-storage.md#configure-azure-blob-storage-access)。 + - **Storage Provider**:选择 **Azure Blob Storage**。 + - **Source Files URI**: + - 导入单个文件时,输入源文件 URI,格式为 `[azure|https]://[bucket_name]/[data_source_folder]/[file_name].parquet`。例如:`[azure|https]://sampledata/ingest/TableName.01.parquet`。 + - 导入多个文件时,输入源文件夹 URI,格式为 `[azure|https]://[bucket_name]/[data_source_folder]/`。例如:`[azure|https]://sampledata/ingest/`。 + - **Credential**:你可以使用共享访问签名(SAS)令牌访问你的桶。详情参见 [Configure Azure Blob Storage access](/tidb-cloud/serverless-external-storage.md#configure-azure-blob-storage-access)。 -4. 点击**连接**。 +4. 点击 **Next**。 -5. 在**目标**部分,选择目标数据库和表。 +5. 在 **Destination Mapping** 部分,指定源文件与目标表的映射方式。 - 导入多个文件时,你可以使用**高级设置** > **映射设置**为每个目标表及其对应的 Parquet 文件定义自定义映射规则。之后,将使用提供的自定义映射规则重新扫描数据源文件。 + 当 **Source Files URI** 指定为目录时,默认选中 **Use [File naming conventions](/tidb-cloud/naming-conventions-for-data-import.md) for automatic mapping** 选项。 - 在**源文件 URI 和名称**中输入源文件 URI 和名称时,确保使用以下格式 `[azure|https]://[bucket_name]/[data_source_folder]/[file_name].parquet`。例如,`[azure|https]://sampledata/ingest/TableName.01.parquet`。 + > **Note:** + > + > 当 **Source Files URI** 指定为单个文件时,不显示 **Use [File naming conventions](/tidb-cloud/naming-conventions-for-data-import.md) for automatic mapping** 选项,TiDB Cloud 会自动将 **Source** 字段填充为文件名。此时,你只需选择目标数据库和表进行数据导入。 - 你还可以使用通配符匹配源文件。例如: + - 若希望 TiDB Cloud 自动将所有遵循 [File naming conventions](/tidb-cloud/naming-conventions-for-data-import.md) 的源文件映射到对应表,保持该选项选中,并选择 **Parquet** 作为数据格式。 - - `[azure|https]://[bucket_name]/[data_source_folder]/my-data?.parquet`:该文件夹中以 `my-data` 开头后跟一个字符的所有 Parquet 文件(如 `my-data1.parquet` 和 `my-data2.parquet`)将导入到同一个目标表中。 + - 若需手动配置映射规则,将你的源 Parquet 文件与目标数据库和表关联,取消选中该选项,然后填写以下字段: - - `[azure|https]://[bucket_name]/[data_source_folder]/my-data*.parquet`:该文件夹中以 `my-data` 开头的所有 Parquet 文件将导入到同一个目标表中。 + - **Source**:输入文件名模式,格式为 `[file_name].parquet`。例如:`TableName.01.parquet`。你也可以使用通配符匹配多个文件,仅支持 `*` 和 `?` 通配符。 - 注意,仅支持 `?` 和 `*`。 + - `my-data?.parquet`:匹配所有以 `my-data` 开头,后跟单个字符的 Parquet 文件,如 `my-data1.parquet` 和 `my-data2.parquet`。 + - `my-data*.parquet`:匹配所有以 `my-data` 开头的 Parquet 文件,如 `my-data-2023.parquet` 和 `my-data-final.parquet`。 - > **注意:** - > - > URI 必须包含数据源文件夹。 + - **Target Database** 和 **Target Table**:选择要导入数据的目标数据库和表。 + +6. 点击 **Next**。TiDB Cloud 会相应扫描源文件。 -6. 点击**开始导入**。 +7. 审查扫描结果,检查找到的数据文件及其对应的目标表,然后点击 **Start Import**。 -7. 当导入进度显示**已完成**时,检查导入的表。 +8. 当导入进度显示 **Completed** 时,检查已导入的数据表。
-
+
-1. 打开目标集群的**导入**页面。 +1. 打开目标集群的 **Import** 页面。 - 1. 登录 [TiDB Cloud 控制台](https://tidbcloud.com/),导航到项目的[**集群**](https://tidbcloud.com/project/clusters)页面。 + 1. 登录 [TiDB Cloud 控制台](https://tidbcloud.com/),进入你的项目 [**Clusters**](https://tidbcloud.com/project/clusters) 页面。 - > **提示:** + > **Tip:** > - > 你可以使用左上角的组合框在组织、项目和集群之间切换。 + > 你可以使用左上角的下拉框切换组织、项目和集群。 - 2. 点击目标集群的名称进入其概览页面,然后在左侧导航栏中点击**数据** > **导入**。 + 2. 点击目标集群名称进入其概览页面,然后在左侧导航栏点击 **Data** > **Import**。 -2. 选择**从云存储导入数据**,然后点击**阿里云 OSS**。 +2. 点击 **Import data from Cloud Storage**。 -3. 在**从阿里云 OSS 导入数据**页面,为源 Parquet 文件提供以下信息: +3. 在 **Import Data from Cloud Storage** 页面,填写以下信息: - - **导入文件数量**:根据需要选择**单个文件**或**多个文件**。 - - **包含架构文件**:此字段仅在导入多个文件时可见。如果源文件夹包含目标表架构,选择**是**。否则,选择**否**。 - - **数据格式**:选择 **Parquet**。 - - **文件 URI** 或**文件夹 URI**: - - 导入单个文件时,按以下格式输入源文件 URI 和名称 `oss://[bucket_name]/[data_source_folder]/[file_name].parquet`。例如,`oss://sampledata/ingest/TableName.01.parquet`。 - - 导入多个文件时,按以下格式输入源文件 URI 和名称 `oss://[bucket_name]/[data_source_folder]/`。例如,`oss://sampledata/ingest/`。 - - **存储桶访问**:你可以使用 AccessKey 对访问存储桶。更多信息,请参阅[配置阿里云对象存储服务(OSS)访问](/tidb-cloud/serverless-external-storage.md#configure-alibaba-cloud-object-storage-service-oss-access)。 + - **Storage Provider**:选择 **Alibaba Cloud OSS**。 + - **Source Files URI**: + - 导入单个文件时,输入源文件 URI,格式为 `oss://[bucket_name]/[data_source_folder]/[file_name].parquet`。例如:`oss://sampledata/ingest/TableName.01.parquet`。 + - 导入多个文件时,输入源文件夹 URI,格式为 `oss://[bucket_name]/[data_source_folder]/`。例如:`oss://sampledata/ingest/`。 + - **Credential**:你可以使用 AccessKey 对访问你的桶。详情参见 [Configure Alibaba Cloud Object Storage Service (OSS) access](/tidb-cloud/serverless-external-storage.md#configure-alibaba-cloud-object-storage-service-oss-access)。 -4. 点击**连接**。 +4. 点击 **Next**。 -5. 在**目标**部分,选择目标数据库和表。 +5. 在 **Destination Mapping** 部分,指定源文件与目标表的映射方式。 - 导入多个文件时,你可以使用**高级设置** > **映射设置**为每个目标表及其对应的 Parquet 文件定义自定义映射规则。之后,将使用提供的自定义映射规则重新扫描数据源文件。 + 当 **Source Files URI** 指定为目录时,默认选中 **Use [File naming conventions](/tidb-cloud/naming-conventions-for-data-import.md) for automatic mapping** 选项。 - 在**源文件 URI 和名称**中输入源文件 URI 和名称时,确保使用以下格式 `oss://[bucket_name]/[data_source_folder]/[file_name].parquet`。例如,`oss://sampledata/ingest/TableName.01.parquet`。 + > **Note:** + > + > 当 **Source Files URI** 指定为单个文件时,不显示 **Use [File naming conventions](/tidb-cloud/naming-conventions-for-data-import.md) for automatic mapping** 选项,TiDB Cloud 会自动将 **Source** 字段填充为文件名。此时,你只需选择目标数据库和表进行数据导入。 - 你还可以使用通配符匹配源文件。例如: + - 若希望 TiDB Cloud 自动将所有遵循 [File naming conventions](/tidb-cloud/naming-conventions-for-data-import.md) 的源文件映射到对应表,保持该选项选中,并选择 **Parquet** 作为数据格式。 - - `oss://[bucket_name]/[data_source_folder]/my-data?.parquet`:该文件夹中以 `my-data` 开头后跟一个字符的所有 Parquet 文件(如 `my-data1.parquet` 和 `my-data2.parquet`)将导入到同一个目标表中。 + - 若需手动配置映射规则,将你的源 Parquet 文件与目标数据库和表关联,取消选中该选项,然后填写以下字段: - - `oss://[bucket_name]/[data_source_folder]/my-data*.parquet`:该文件夹中以 `my-data` 开头的所有 Parquet 文件将导入到同一个目标表中。 + - **Source**:输入文件名模式,格式为 `[file_name].parquet`。例如:`TableName.01.parquet`。你也可以使用通配符匹配多个文件,仅支持 `*` 和 `?` 通配符。 - 注意,仅支持 `?` 和 `*`。 + - `my-data?.parquet`:匹配所有以 `my-data` 开头,后跟单个字符的 Parquet 文件,如 `my-data1.parquet` 和 `my-data2.parquet`。 + - `my-data*.parquet`:匹配所有以 `my-data` 开头的 Parquet 文件,如 `my-data-2023.parquet` 和 `my-data-final.parquet`。 - > **注意:** - > - > URI 必须包含数据源文件夹。 + - **Target Database** 和 **Target Table**:选择要导入数据的目标数据库和表。 + +6. 点击 **Next**。TiDB Cloud 会相应扫描源文件。 -6. 点击**开始导入**。 +7. 审查扫描结果,检查找到的数据文件及其对应的目标表,然后点击 **Start Import**。 -7. 当导入进度显示**已完成**时,检查导入的表。 +8. 当导入进度显示 **Completed** 时,检查已导入的数据表。
-运行导入任务时,如果检测到任何不支持或无效的转换,TiDB Cloud Serverless 会自动终止导入作业并报告导入错误。 +当你运行导入任务时,如果检测到任何不支持或无效的类型转换,TiDB Cloud Serverless 会自动终止导入任务并报告导入错误。 -如果遇到导入错误,请执行以下操作: +如果你遇到导入错误,请按以下步骤操作: 1. 删除部分导入的表。 -2. 检查表架构文件。如果有任何错误,请更正表架构文件。 +2. 检查表结构文件,如有错误请修正表结构文件。 3. 检查 Parquet 文件中的数据类型。 - 如果 Parquet 文件包含任何不支持的数据类型(例如 `NEST STRUCT`、`ARRAY` 或 `MAP`),你需要使用[支持的数据类型](#支持的数据类型)(例如 `STRING`)重新生成 Parquet 文件。 + 如果 Parquet 文件包含任何不支持的数据类型(如 `NEST STRUCT`、`ARRAY` 或 `MAP`),你需要使用 [支持的数据类型](#supported-data-types)(如 `STRING`)重新生成 Parquet 文件。 -4. 重试导入任务。 +4. 重新尝试导入任务。 ## 支持的数据类型 -下表列出了可以导入到 TiDB Cloud Serverless 的支持的 Parquet 数据类型。 +下表列出了可导入到 TiDB Cloud Serverless 的 Parquet 支持数据类型。 -| Parquet 基本类型 | Parquet 逻辑类型 | TiDB 或 MySQL 中的类型 | +| Parquet Primitive Type | Parquet Logical Type | Types in TiDB or MySQL | |---|---|---| | DOUBLE | DOUBLE | DOUBLE
FLOAT | | FIXED_LEN_BYTE_ARRAY(9) | DECIMAL(20,0) | BIGINT UNSIGNED | @@ -332,14 +336,14 @@ summary: 了解如何从 Amazon S3、GCS、Azure Blob Storage 或阿里云对象 | TINYINT | N/A | INT32 | | TINYINT UNSIGNED | N/A | INT32 | -## 故障排除 +## 故障排查 ### 解决数据导入过程中的警告 -点击**开始导入**后,如果看到类似 `can't find the corresponding source files` 的警告消息,请通过提供正确的源文件、根据[数据导入命名约定](/tidb-cloud/naming-conventions-for-data-import.md)重命名现有文件或使用**高级设置**进行更改来解决此问题。 +点击 **Start Import** 后,如果你看到类似 `can't find the corresponding source files` 的警告信息,可以通过提供正确的源文件、按照 [Naming Conventions for Data Import](/tidb-cloud/naming-conventions-for-data-import.md) 重命名现有文件,或使用 **Advanced Settings** 进行修改来解决。 解决这些问题后,你需要重新导入数据。 -### 导入的表中行数为零 +### 导入表中数据行为零 -导入进度显示**已完成**后,检查导入的表。如果行数为零,则表示没有数据文件与你输入的存储桶 URI 匹配。在这种情况下,请通过提供正确的源文件、根据[数据导入命名约定](/tidb-cloud/naming-conventions-for-data-import.md)重命名现有文件或使用**高级设置**进行更改来解决此问题。之后,重新导入这些表。 +当导入进度显示 **Completed** 后,检查已导入的数据表。如果行数为零,说明没有数据文件匹配你输入的 Bucket URI。此时,请通过提供正确的源文件、按照 [Naming Conventions for Data Import](/tidb-cloud/naming-conventions-for-data-import.md) 重命名现有文件,或使用 **Advanced Settings** 进行修改来解决。之后,重新导入这些表。 \ No newline at end of file diff --git a/tidb-cloud/import-parquet-files.md b/tidb-cloud/import-parquet-files.md index bb056d9cb5ccf..b7307dd27ad7f 100644 --- a/tidb-cloud/import-parquet-files.md +++ b/tidb-cloud/import-parquet-files.md @@ -1,23 +1,23 @@ --- -title: 从云存储导入 Apache Parquet 文件到 TiDB Cloud Dedicated -summary: 了解如何从 Amazon S3、GCS 或 Azure Blob Storage 导入 Apache Parquet 文件到 TiDB Cloud Dedicated。 +title: 从云存储导入 Apache Parquet 文件到 TiDB Cloud 专属集群 +summary: 了解如何将 Apache Parquet 文件从 Amazon S3、GCS 或 Azure Blob Storage 导入到 TiDB Cloud 专属集群。 --- -# 从云存储导入 Apache Parquet 文件到 TiDB Cloud Dedicated +# 从云存储导入 Apache Parquet 文件到 TiDB Cloud 专属集群 -本文介绍如何从 Amazon Simple Storage Service (Amazon S3)、Google Cloud Storage (GCS) 或 Azure Blob Storage 导入 Apache Parquet 文件到 TiDB Cloud Dedicated。你可以导入未压缩的 Parquet 文件或使用 [Google Snappy](https://github.com/google/snappy) 压缩的 Parquet 文件。不支持其他 Parquet 压缩编解码器。 +本文档介绍如何将 Apache Parquet 文件从 Amazon Simple Storage Service(Amazon S3)、Google Cloud Storage(GCS)或 Azure Blob Storage 导入到 TiDB Cloud 专属集群。你可以导入未压缩的 Parquet 文件,或使用 [Google Snappy](https://github.com/google/snappy) 压缩的 Parquet 文件。不支持其他 Parquet 压缩编解码器。 ## 限制 -- 为确保数据一致性,TiDB Cloud 只允许将 Parquet 文件导入到空表中。要将数据导入到已包含数据的现有表中,你可以按照本文档将数据导入到临时空表中,然后使用 `INSERT SELECT` 语句将数据复制到目标现有表中。 +- 为保证数据一致性,TiDB Cloud 仅允许将 Parquet 文件导入到空表中。若需将数据导入到已存在数据的表中,你可以按照本文档的步骤,先将数据导入到一个临时空表,再使用 `INSERT SELECT` 语句将数据复制到目标表。 -- 如果 TiDB Cloud Dedicated 集群有 [changefeed](/tidb-cloud/changefeed-overview.md) 或启用了[时间点恢复](/tidb-cloud/backup-and-restore.md#turn-on-point-in-time-restore),则无法向该集群导入数据(**导入数据**按钮将被禁用),因为当前的数据导入功能使用[物理导入模式](https://docs.pingcap.com/tidb/stable/tidb-lightning-physical-import-mode)。在此模式下,导入的数据不会生成变更日志,因此 changefeed 和时间点恢复无法检测到导入的数据。 +- 如果 TiDB Cloud 专属集群已开启 [changefeed](/tidb-cloud/changefeed-overview.md) 或 [时间点恢复(Point-in-time Restore)](/tidb-cloud/backup-and-restore.md#turn-on-point-in-time-restore),则无法向该集群导入数据(**Import Data** 按钮会被禁用),因为当前数据导入功能使用的是 [物理导入模式](https://docs.pingcap.com/tidb/stable/tidb-lightning-physical-import-mode)。在该模式下,导入的数据不会生成变更日志,因此 changefeed 和时间点恢复无法检测到导入的数据。 -## 步骤 1. 准备 Parquet 文件 +## 第 1 步:准备 Parquet 文件 > **注意:** > -> 目前,TiDB Cloud 不支持导入包含以下任何数据类型的 Parquet 文件。如果要导入的 Parquet 文件包含此类数据类型,你需要首先使用[支持的数据类型](#支持的数据类型)(例如 `STRING`)重新生成 Parquet 文件。或者,你可以使用 AWS Glue 等服务轻松转换数据类型。 +> 目前,TiDB Cloud 不支持导入包含以下任意数据类型的 Parquet 文件。如果待导入的 Parquet 文件包含这些数据类型,你需要先使用 [支持的数据类型](#supported-data-types)(例如 `STRING`)重新生成 Parquet 文件。或者,你也可以使用如 AWS Glue 等服务轻松转换数据类型。 > > - `LIST` > - `NEST STRUCT` @@ -25,52 +25,50 @@ summary: 了解如何从 Amazon S3、GCS 或 Azure Blob Storage 导入 Apache Pa > - `ARRAY` > - `MAP` -1. 如果 Parquet 文件大于 256 MB,建议将其拆分为较小的文件,每个文件大小约为 256 MB。 +1. 如果单个 Parquet 文件大于 256 MB,建议将其拆分为多个小文件,每个文件大小约为 256 MB。 - TiDB Cloud 支持导入非常大的 Parquet 文件,但在处理大小约为 256 MB 的多个输入文件时性能最佳。这是因为 TiDB Cloud 可以并行处理多个文件,从而大大提高导入速度。 + TiDB Cloud 支持导入非常大的 Parquet 文件,但在多个约 256 MB 的输入文件下性能最佳。这是因为 TiDB Cloud 可以并行处理多个文件,从而大幅提升导入速度。 -2. 按以下方式命名 Parquet 文件: +2. 按如下方式命名 Parquet 文件: - - 如果 Parquet 文件包含整个表的所有数据,请按 `${db_name}.${table_name}.parquet` 格式命名文件,该文件在导入数据时会映射到 `${db_name}.${table_name}` 表。 - - 如果一个表的数据分散在多个 Parquet 文件中,请在这些 Parquet 文件后附加数字后缀。例如,`${db_name}.${table_name}.000001.parquet` 和 `${db_name}.${table_name}.000002.parquet`。数字后缀可以不连续,但必须按升序排列。你还需要在数字前添加额外的零,以确保所有后缀长度相同。 + - 如果一个 Parquet 文件包含整个表的所有数据,文件名应采用 `${db_name}.${table_name}.parquet` 格式,导入时会映射到 `${db_name}.${table_name}` 表。 + - 如果一个表的数据被拆分为多个 Parquet 文件,应为这些文件添加数字后缀。例如,`${db_name}.${table_name}.000001.parquet` 和 `${db_name}.${table_name}.000002.parquet`。数字后缀可以不连续,但必须递增。你还需要在数字前补零,确保所有后缀长度一致。 > **注意:** > - > - 如果在某些情况下无法按照上述规则更新 Parquet 文件名(例如,Parquet 文件链接也被你的其他程序使用),你可以保持文件名不变,并在[步骤 4](#步骤-4-将-parquet-文件导入到-tidb-cloud) 中使用**映射设置**将源数据导入到单个目标表中。 - > - Snappy 压缩文件必须采用[官方 Snappy 格式](https://github.com/google/snappy)。不支持其他变体的 Snappy 压缩。 + > - 如果在某些情况下无法按上述规则修改 Parquet 文件名(例如,Parquet 文件链接也被其他程序使用),你可以保持文件名不变,并在 [第 4 步](#step-4-import-parquet-files-to-tidb-cloud) 的 **Mapping Settings** 中将源数据导入到单一目标表。 + > - Snappy 压缩文件必须采用 [官方 Snappy 格式](https://github.com/google/snappy)。不支持其他 Snappy 压缩变体。 -## 步骤 2. 创建目标表架构 +## 第 2 步:创建目标表结构 -由于 Parquet 文件不包含架构信息,在将数据从 Parquet 文件导入到 TiDB Cloud 之前,你需要使用以下任一方法创建表架构: +由于 Parquet 文件不包含表结构信息,在将 Parquet 文件中的数据导入 TiDB Cloud 之前,你需要通过以下任一方式创建表结构: -- 方法 1:在 TiDB Cloud 中,为源数据创建目标数据库和表。 +- 方法一:在 TiDB Cloud 中为你的源数据创建目标数据库和数据表。 -- 方法 2:在存放 Parquet 文件的 Amazon S3、GCS 或 Azure Blob Storage 目录中,按以下方式为源数据创建目标表架构文件: +- 方法二:在存放 Parquet 文件的 Amazon S3、GCS 或 Azure Blob Storage 目录下,为你的源数据创建目标表结构文件,具体如下: - 1. 为源数据创建数据库架构文件。 + 1. 为你的源数据创建数据库结构文件。 - 如果你的 Parquet 文件遵循[步骤 1](#步骤-1-准备-parquet-文件) 中的命名规则,则数据导入时数据库架构文件是可选的。否则,数据库架构文件是必需的。 + 如果你的 Parquet 文件遵循 [第 1 步](#step-1-prepare-the-parquet-files) 的命名规则,则数据库结构文件为可选项。否则,数据库结构文件为必需项。 - 每个数据库架构文件必须采用 `${db_name}-schema-create.sql` 格式,并包含一个 `CREATE DATABASE` DDL 语句。通过此文件,TiDB Cloud 将在导入数据时创建 `${db_name}` 数据库来存储你的数据。 + 每个数据库结构文件必须采用 `${db_name}-schema-create.sql` 格式,并包含一个 `CREATE DATABASE` DDL 语句。通过该文件,TiDB Cloud 会在导入数据时创建 `${db_name}` 数据库以存储你的数据。 - 例如,如果你创建一个包含以下语句的 `mydb-scehma-create.sql` 文件,TiDB Cloud 将在导入数据时创建 `mydb` 数据库。 - - {{< copyable "sql" >}} + 例如,如果你创建了一个包含如下语句的 `mydb-scehma-create.sql` 文件,TiDB Cloud 会在导入数据时创建 `mydb` 数据库。 + ```sql CREATE DATABASE mydb; ``` - 2. 为源数据创建表架构文件。 - - 如果你没有在存放 Parquet 文件的 Amazon S3、GCS 或 Azure Blob Storage 目录中包含表架构文件,TiDB Cloud 在导入数据时将不会为你创建相应的表。 + 2. 为你的源数据创建表结构文件。 - 每个表架构文件必须采用 `${db_name}.${table_name}-schema.sql` 格式,并包含一个 `CREATE TABLE` DDL 语句。通过此文件,TiDB Cloud 将在导入数据时在 `${db_name}` 数据库中创建 `${db_table}` 表。 + 如果你没有在 Parquet 文件所在的 Amazon S3、GCS 或 Azure Blob Storage 目录下包含表结构文件,TiDB Cloud 在导入数据时不会为你创建相应的数据表。 - 例如,如果你创建一个包含以下语句的 `mydb.mytable-schema.sql` 文件,TiDB Cloud 将在 `mydb` 数据库中创建 `mytable` 表。 + 每个表结构文件必须采用 `${db_name}.${table_name}-schema.sql` 格式,并包含一个 `CREATE TABLE` DDL 语句。通过该文件,TiDB Cloud 会在导入数据时在 `${db_name}` 数据库中创建 `${db_table}` 表。 - {{< copyable "sql" >}} + 例如,如果你创建了一个包含如下语句的 `mydb.mytable-schema.sql` 文件,TiDB Cloud 会在 `mydb` 数据库中创建 `mytable` 表。 + ```sql CREATE TABLE mytable ( ID INT, @@ -80,167 +78,167 @@ summary: 了解如何从 Amazon S3、GCS 或 Azure Blob Storage 导入 Apache Pa > **注意:** > - > 每个 `${db_name}.${table_name}-schema.sql` 文件应该只包含一个 DDL 语句。如果文件包含多个 DDL 语句,只有第一个语句会生效。 + > 每个 `${db_name}.${table_name}-schema.sql` 文件只能包含一个 DDL 语句。如果文件中包含多个 DDL 语句,只有第一个会生效。 -## 步骤 3. 配置跨账户访问 +## 第 3 步:配置跨账号访问 -要允许 TiDB Cloud 访问 Amazon S3 存储桶、GCS 存储桶或 Azure Blob Storage 容器中的 Parquet 文件,请执行以下操作之一: +为了让 TiDB Cloud 能够访问 Amazon S3、GCS 或 Azure Blob Storage 容器中的 Parquet 文件,请按以下方式操作: -- 如果你的 Parquet 文件位于 Amazon S3 中,[配置 Amazon S3 访问](/tidb-cloud/dedicated-external-storage.md#configure-amazon-s3-access)。 +- 如果你的 Parquet 文件位于 Amazon S3,[配置 Amazon S3 访问权限](/tidb-cloud/dedicated-external-storage.md#configure-amazon-s3-access)。 - 你可以使用 AWS 访问密钥或 Role ARN 访问你的存储桶。完成后,请记下访问密钥(包括访问密钥 ID 和密钥)或 Role ARN 值,因为你将在[步骤 4](#步骤-4-将-parquet-文件导入到-tidb-cloud) 中需要它。 + 你可以使用 AWS 访问密钥或 Role ARN 访问你的存储桶。完成后,请记录访问密钥(包括访问密钥 ID 和密钥)或 Role ARN 值,在 [第 4 步](#step-4-import-parquet-files-to-tidb-cloud) 中会用到。 -- 如果你的 Parquet 文件位于 GCS 中,[配置 GCS 访问](/tidb-cloud/dedicated-external-storage.md#configure-gcs-access)。 +- 如果你的 Parquet 文件位于 GCS,[配置 GCS 访问权限](/tidb-cloud/dedicated-external-storage.md#configure-gcs-access)。 -- 如果你的 Parquet 文件位于 Azure Blob Storage 中,[配置 Azure Blob Storage 访问](/tidb-cloud/dedicated-external-storage.md#configure-azure-blob-storage-access)。 +- 如果你的 Parquet 文件位于 Azure Blob Storage,[配置 Azure Blob Storage 访问权限](/tidb-cloud/dedicated-external-storage.md#configure-azure-blob-storage-access)。 -## 步骤 4. 将 Parquet 文件导入到 TiDB Cloud +## 第 4 步:将 Parquet 文件导入 TiDB Cloud -要将 Parquet 文件导入到 TiDB Cloud,请执行以下步骤: +要将 Parquet 文件导入 TiDB Cloud,请按以下步骤操作:
-1. 打开目标集群的**导入**页面。 +1. 打开目标集群的 **Import** 页面。 - 1. 登录 [TiDB Cloud 控制台](https://tidbcloud.com/)并导航到项目的[**集群**](https://tidbcloud.com/project/clusters)页面。 + 1. 登录 [TiDB Cloud 控制台](https://tidbcloud.com/),进入你的项目 [**Clusters**](https://tidbcloud.com/project/clusters) 页面。 > **提示:** > - > 你可以使用左上角的组合框在组织、项目和集群之间切换。 + > 你可以使用左上角的下拉框在组织、项目和集群之间切换。 - 2. 点击目标集群的名称进入其概览页面,然后在左侧导航栏中点击**数据** > **导入**。 + 2. 点击目标集群名称进入概览页面,然后在左侧导航栏点击 **Data** > **Import**。 -2. 选择**从云存储导入数据**。 +2. 选择 **Import data from Cloud Storage**。 -3. 在**从 Amazon S3 导入数据**页面上,提供以下信息: +3. 在 **Import Data from Amazon S3** 页面,填写以下信息: - - **包含架构文件**:如果源文件夹包含目标表架构文件(如 `${db_name}-schema-create.sql`),选择**是**。否则,选择**否**。 - - **数据格式**:选择 **Parquet**。 - - **文件夹 URI**:以 `s3://[bucket_name]/[data_source_folder]/` 格式输入源文件夹 URI。路径必须以 `/` 结尾。例如,`s3://sampledata/ingest/`。 - - **存储桶访问**:你可以使用 AWS IAM 角色 ARN 或 AWS 访问密钥访问你的存储桶。 - - **AWS Role ARN**(推荐):输入 AWS IAM 角色 ARN 值。如果你还没有存储桶的 IAM 角色,可以通过点击**点击此处使用 AWS CloudFormation 创建新角色**并按照屏幕上的说明使用提供的 AWS CloudFormation 模板创建。或者,你可以手动为存储桶创建 IAM 角色 ARN。 - - **AWS 访问密钥**:输入 AWS 访问密钥 ID 和 AWS 密钥。 - - 有关两种方法的详细说明,请参见[配置 Amazon S3 访问](/tidb-cloud/dedicated-external-storage.md#configure-amazon-s3-access)。 + - **Included Schema Files**:如果源文件夹包含目标表结构文件(如 `${db_name}-schema-create.sql`),请选择 **Yes**,否则选择 **No**。 + - **Data Format**:选择 **Parquet**。 + - **Folder URI**:输入源文件夹的 URI,格式为 `s3://[bucket_name]/[data_source_folder]/`,路径必须以 `/` 结尾。例如,`s3://sampledata/ingest/`。 + - **Bucket Access**:你可以使用 AWS IAM role ARN 或 AWS 访问密钥访问你的存储桶。 + - **AWS Role ARN**(推荐):输入 AWS IAM role ARN。如果你还没有为存储桶创建 IAM role,可以点击 **Click here to create new one with AWS CloudFormation**,按照屏幕上的指引使用 AWS CloudFormation 模板创建。或者,你也可以手动为存储桶创建 IAM role ARN。 + - **AWS Access Key**:输入 AWS 访问密钥 ID 和 AWS 密钥。 + - 两种方式的详细说明见 [配置 Amazon S3 访问权限](/tidb-cloud/dedicated-external-storage.md#configure-amazon-s3-access)。 -4. 点击**连接**。 +4. 点击 **Connect**。 -5. 在**目标**部分,选择目标数据库和表。 +5. 在 **Destination** 部分,选择目标数据库和数据表。 - 导入多个文件时,你可以使用**高级设置** > **映射设置**来自定义各个目标表与其对应 Parquet 文件的映射。对于每个目标数据库和表: + 当导入多个文件时,你可以通过 **Advanced Settings** > **Mapping Settings** 自定义每个目标表与其对应 Parquet 文件的映射。对于每个目标数据库和表: - - **目标数据库**:从列表中选择相应的数据库名称。 - - **目标表**:从列表中选择相应的表名称。 - - **源文件 URI 和名称**:输入源文件的完整 URI,包括文件夹和文件名,确保其格式为 `s3://[bucket_name]/[data_source_folder]/[file_name].parquet`。例如,`s3://sampledata/ingest/TableName.01.parquet`。你也可以使用通配符(`?` 和 `*`)匹配多个文件。例如: - - `s3://[bucket_name]/[data_source_folder]/my-data1.parquet`:`[data_source_folder]` 中名为 `my-data1.parquet` 的单个 Parquet 文件将被导入到目标表中。 - - `s3://[bucket_name]/[data_source_folder]/my-data?.parquet`:`[data_source_folder]` 中以 `my-data` 开头后跟一个字符的所有 Parquet 文件(如 `my-data1.parquet` 和 `my-data2.parquet`)将被导入到同一个目标表中。 - - `s3://[bucket_name]/[data_source_folder]/my-data*.parquet`:`[data_source_folder]` 中以 `my-data` 开头的所有 Parquet 文件(如 `my-data10.parquet` 和 `my-data100.parquet`)将被导入到同一个目标表中。 + - **Target Database**:从列表中选择对应的数据库名。 + - **Target Table**:从列表中选择对应的表名。 + - **Source File URIs and Names**:输入源文件的完整 URI,包括文件夹和文件名,格式为 `s3://[bucket_name]/[data_source_folder]/[file_name].parquet`。例如,`s3://sampledata/ingest/TableName.01.parquet`。你也可以使用通配符(`?` 和 `*`)匹配多个文件。例如: + - `s3://[bucket_name]/[data_source_folder]/my-data1.parquet`:`[data_source_folder]` 下名为 `my-data1.parquet` 的单个 Parquet 文件将被导入到目标表。 + - `s3://[bucket_name]/[data_source_folder]/my-data?.parquet`:`[data_source_folder]` 下所有以 `my-data` 开头、后跟一个字符(如 `my-data1.parquet` 和 `my-data2.parquet`)的 Parquet 文件将被导入到同一个目标表。 + - `s3://[bucket_name]/[data_source_folder]/my-data*.parquet`:`[data_source_folder]` 下所有以 `my-data` 开头(如 `my-data10.parquet` 和 `my-data100.parquet`)的 Parquet 文件将被导入到同一个目标表。 -6. 点击**开始导入**。 +6. 点击 **Start Import**。 -7. 当导入进度显示**已完成**时,检查导入的表。 +7. 当导入进度显示 **Completed** 时,检查已导入的数据表。
-1. 打开目标集群的**导入**页面。 +1. 打开目标集群的 **Import** 页面。 - 1. 登录 [TiDB Cloud 控制台](https://tidbcloud.com/)并导航到项目的[**集群**](https://tidbcloud.com/project/clusters)页面。 + 1. 登录 [TiDB Cloud 控制台](https://tidbcloud.com/),进入你的项目 [**Clusters**](https://tidbcloud.com/project/clusters) 页面。 > **提示:** > - > 你可以使用左上角的组合框在组织、项目和集群之间切换。 + > 你可以使用左上角的下拉框在组织、项目和集群之间切换。 - 2. 点击目标集群的名称进入其概览页面,然后在左侧导航栏中点击**数据** > **导入**。 + 2. 点击目标集群名称进入概览页面,然后在左侧导航栏点击 **Data** > **Import**。 -2. 选择**从云存储导入数据**。 +2. 选择 **Import data from Cloud Storage**。 -3. 在**从 GCS 导入数据**页面上,为源 Parquet 文件提供以下信息: +3. 在 **Import Data from Cloud Storage** 页面,为源 Parquet 文件填写以下信息: - - **包含架构文件**:如果源文件夹包含目标表架构文件(如 `${db_name}-schema-create.sql`),选择**是**。否则,选择**否**。 - - **数据格式**:选择 **Parquet**。 - - **文件夹 URI**:以 `gs://[bucket_name]/[data_source_folder]/` 格式输入源文件夹 URI。路径必须以 `/` 结尾。例如,`gs://sampledata/ingest/`。 - - **Google Cloud 服务账号 ID**:TiDB Cloud 在此页面上提供唯一的服务账号 ID(如 `example-service-account@your-project.iam.gserviceaccount.com`)。你必须在 Google Cloud 项目中为你的 GCS 存储桶授予此服务账号 ID 必要的 IAM 权限(如 "Storage Object Viewer")。更多信息,请参见[配置 GCS 访问](/tidb-cloud/dedicated-external-storage.md#configure-gcs-access)。 + - **Included Schema Files**:如果源文件夹包含目标表结构文件(如 `${db_name}-schema-create.sql`),请选择 **Yes**,否则选择 **No**。 + - **Data Format**:选择 **Parquet**。 + - **Folder URI**:输入源文件夹的 URI,格式为 `gs://[bucket_name]/[data_source_folder]/`,路径必须以 `/` 结尾。例如,`gs://sampledata/ingest/`。 + - **Google Cloud Service Account ID**:TiDB Cloud 会在此页面提供一个唯一的 Service Account ID(如 `example-service-account@your-project.iam.gserviceaccount.com`)。你必须在 Google Cloud 项目中为该 Service Account ID 授予所需的 IAM 权限(如 “Storage Object Viewer”)以访问你的 GCS 存储桶。更多信息见 [配置 GCS 访问权限](/tidb-cloud/dedicated-external-storage.md#configure-gcs-access)。 -4. 点击**连接**。 +4. 点击 **Connect**。 -5. 在**目标**部分,选择目标数据库和表。 +5. 在 **Destination** 部分,选择目标数据库和数据表。 - 导入多个文件时,你可以使用**高级设置** > **映射设置**来自定义各个目标表与其对应 Parquet 文件的映射。对于每个目标数据库和表: + 当导入多个文件时,你可以通过 **Advanced Settings** > **Mapping Settings** 自定义每个目标表与其对应 Parquet 文件的映射。对于每个目标数据库和表: - - **目标数据库**:从列表中选择相应的数据库名称。 - - **目标表**:从列表中选择相应的表名称。 - - **源文件 URI 和名称**:输入源文件的完整 URI,包括文件夹和文件名,确保其格式为 `gs://[bucket_name]/[data_source_folder]/[file_name].parquet`。例如,`gs://sampledata/ingest/TableName.01.parquet`。你也可以使用通配符(`?` 和 `*`)匹配多个文件。例如: - - `gs://[bucket_name]/[data_source_folder]/my-data1.parquet`:`[data_source_folder]` 中名为 `my-data1.parquet` 的单个 Parquet 文件将被导入到目标表中。 - - `gs://[bucket_name]/[data_source_folder]/my-data?.parquet`:`[data_source_folder]` 中以 `my-data` 开头后跟一个字符的所有 Parquet 文件(如 `my-data1.parquet` 和 `my-data2.parquet`)将被导入到同一个目标表中。 - - `gs://[bucket_name]/[data_source_folder]/my-data*.parquet`:`[data_source_folder]` 中以 `my-data` 开头的所有 Parquet 文件(如 `my-data10.parquet` 和 `my-data100.parquet`)将被导入到同一个目标表中。 + - **Target Database**:从列表中选择对应的数据库名。 + - **Target Table**:从列表中选择对应的表名。 + - **Source File URIs and Names**:输入源文件的完整 URI,包括文件夹和文件名,格式为 `gs://[bucket_name]/[data_source_folder]/[file_name].parquet`。例如,`gs://sampledata/ingest/TableName.01.parquet`。你也可以使用通配符(`?` 和 `*`)匹配多个文件。例如: + - `gs://[bucket_name]/[data_source_folder]/my-data1.parquet`:`[data_source_folder]` 下名为 `my-data1.parquet` 的单个 Parquet 文件将被导入到目标表。 + - `gs://[bucket_name]/[data_source_folder]/my-data?.parquet`:`[data_source_folder]` 下所有以 `my-data` 开头、后跟一个字符(如 `my-data1.parquet` 和 `my-data2.parquet`)的 Parquet 文件将被导入到同一个目标表。 + - `gs://[bucket_name]/[data_source_folder]/my-data*.parquet`:`[data_source_folder]` 下所有以 `my-data` 开头(如 `my-data10.parquet` 和 `my-data100.parquet`)的 Parquet 文件将被导入到同一个目标表。 -6. 点击**开始导入**。 +6. 点击 **Start Import**。 -7. 当导入进度显示**已完成**时,检查导入的表。 +7. 当导入进度显示 **Completed** 时,检查已导入的数据表。
-1. 打开目标集群的**导入**页面。 +1. 打开目标集群的 **Import** 页面。 - 1. 登录 [TiDB Cloud 控制台](https://tidbcloud.com/)并导航到项目的[**集群**](https://tidbcloud.com/project/clusters)页面。 + 1. 登录 [TiDB Cloud 控制台](https://tidbcloud.com/),进入你的项目 [**Clusters**](https://tidbcloud.com/project/clusters) 页面。 > **提示:** > - > 你可以使用左上角的组合框在组织、项目和集群之间切换。 + > 你可以使用左上角的下拉框在组织、项目和集群之间切换。 - 2. 点击目标集群的名称进入其概览页面,然后在左侧导航栏中点击**数据** > **导入**。 + 2. 点击目标集群名称进入概览页面,然后在左侧导航栏点击 **Data** > **Import**。 -2. 选择**从云存储导入数据**。 +2. 选择 **Import data from Cloud Storage**。 -3. 在**从 Azure Blob Storage 导入数据**页面上,提供以下信息: +3. 在 **Import Data from Azure Blob Storage** 页面,填写以下信息: - - **包含架构文件**:如果源文件夹包含目标表架构文件(如 `${db_name}-schema-create.sql`),选择**是**。否则,选择**否**。 - - **数据格式**:选择 **Parquet**。 - - **文件夹 URI**:使用格式 `https://[account_name].blob.core.windows.net/[container_name]/[data_source_folder]/` 输入源文件所在的 Azure Blob Storage URI。路径必须以 `/` 结尾。例如,`https://myaccount.blob.core.windows.net/mycontainer/data-ingestion/`。 - - **SAS 令牌**:输入账户 SAS 令牌以允许 TiDB Cloud 访问你的 Azure Blob Storage 容器中的源文件。如果你还没有,可以通过点击**点击此处使用 Azure ARM 模板创建新令牌**并按照屏幕上的说明使用提供的 Azure ARM 模板创建。或者,你可以手动创建账户 SAS 令牌。更多信息,请参见[配置 Azure Blob Storage 访问](/tidb-cloud/dedicated-external-storage.md#configure-azure-blob-storage-access)。 + - **Included Schema Files**:如果源文件夹包含目标表结构文件(如 `${db_name}-schema-create.sql`),请选择 **Yes**,否则选择 **No**。 + - **Data Format**:选择 **Parquet**。 + - **Folder URI**:输入源文件所在的 Azure Blob Storage URI,格式为 `https://[account_name].blob.core.windows.net/[container_name]/[data_source_folder]/`,路径必须以 `/` 结尾。例如,`https://myaccount.blob.core.windows.net/mycontainer/data-ingestion/`。 + - **SAS Token**:输入账户 SAS token,以允许 TiDB Cloud 访问 Azure Blob Storage 容器中的源文件。如果你还没有 SAS token,可以点击 **Click here to create a new one with Azure ARM template**,按照屏幕上的指引使用 Azure ARM 模板创建。或者,你也可以手动创建账户 SAS token。更多信息见 [配置 Azure Blob Storage 访问权限](/tidb-cloud/dedicated-external-storage.md#configure-azure-blob-storage-access)。 -4. 点击**连接**。 +4. 点击 **Connect**。 -5. 在**目标**部分,选择目标数据库和表。 +5. 在 **Destination** 部分,选择目标数据库和数据表。 - 导入多个文件时,你可以使用**高级设置** > **映射设置**来自定义各个目标表与其对应 Parquet 文件的映射。对于每个目标数据库和表: + 当导入多个文件时,你可以通过 **Advanced Settings** > **Mapping Settings** 自定义每个目标表与其对应 Parquet 文件的映射。对于每个目标数据库和表: - - **目标数据库**:从列表中选择相应的数据库名称。 - - **目标表**:从列表中选择相应的表名称。 - - **源文件 URI 和名称**:输入源文件的完整 URI,包括文件夹和文件名,确保其格式为 `https://[account_name].blob.core.windows.net/[container_name]/[data_source_folder]/[file_name].parquet`。例如,`https://myaccount.blob.core.windows.net/mycontainer/data-ingestion/TableName.01.parquet`。你也可以使用通配符(`?` 和 `*`)匹配多个文件。例如: - - `https://[account_name].blob.core.windows.net/[container_name]/[data_source_folder]/my-data1.parquet`:`[data_source_folder]` 中名为 `my-data1.parquet` 的单个 Parquet 文件将被导入到目标表中。 - - `https://[account_name].blob.core.windows.net/[container_name]/[data_source_folder]/my-data?.parquet`:`[data_source_folder]` 中以 `my-data` 开头后跟一个字符的所有 Parquet 文件(如 `my-data1.parquet` 和 `my-data2.parquet`)将被导入到同一个目标表中。 - - `https://[account_name].blob.core.windows.net/[container_name]/[data_source_folder]/my-data*.parquet`:`[data_source_folder]` 中以 `my-data` 开头的所有 Parquet 文件(如 `my-data10.parquet` 和 `my-data100.parquet`)将被导入到同一个目标表中。 + - **Target Database**:从列表中选择对应的数据库名。 + - **Target Table**:从列表中选择对应的表名。 + - **Source File URIs and Names**:输入源文件的完整 URI,包括文件夹和文件名,格式为 `https://[account_name].blob.core.windows.net/[container_name]/[data_source_folder]/[file_name].parquet`。例如,`https://myaccount.blob.core.windows.net/mycontainer/data-ingestion/TableName.01.parquet`。你也可以使用通配符(`?` 和 `*`)匹配多个文件。例如: + - `https://[account_name].blob.core.windows.net/[container_name]/[data_source_folder]/my-data1.parquet`:`[data_source_folder]` 下名为 `my-data1.parquet` 的单个 Parquet 文件将被导入到目标表。 + - `https://[account_name].blob.core.windows.net/[container_name]/[data_source_folder]/my-data?.parquet`:`[data_source_folder]` 下所有以 `my-data` 开头、后跟一个字符(如 `my-data1.parquet` 和 `my-data2.parquet`)的 Parquet 文件将被导入到同一个目标表。 + - `https://[account_name].blob.core.windows.net/[container_name]/[data_source_folder]/my-data*.parquet`:`[data_source_folder]` 下所有以 `my-data` 开头(如 `my-data10.parquet` 和 `my-data100.parquet`)的 Parquet 文件将被导入到同一个目标表。 -6. 点击**开始导入**。 +6. 点击 **Start Import**。 -7. 当导入进度显示**已完成**时,检查导入的表。 +7. 当导入进度显示 **Completed** 时,检查已导入的数据表。
-运行导入任务时,如果检测到任何不支持或无效的转换,TiDB Cloud 会自动终止导入作业并报告导入错误。你可以在**状态**字段中查看详细信息。 +当你运行导入任务时,如果检测到任何不支持或无效的类型转换,TiDB Cloud 会自动终止导入作业并报告导入错误。你可以在 **Status** 字段查看详细信息。 -如果遇到导入错误,请执行以下操作: +如果遇到导入错误,请按以下步骤操作: 1. 删除部分导入的表。 -2. 检查表架构文件。如果有任何错误,请更正表架构文件。 +2. 检查表结构文件,如有错误请修正。 3. 检查 Parquet 文件中的数据类型。 - 如果 Parquet 文件包含任何不支持的数据类型(例如 `NEST STRUCT`、`ARRAY` 或 `MAP`),你需要使用[支持的数据类型](#支持的数据类型)(例如 `STRING`)重新生成 Parquet 文件。 + 如果 Parquet 文件包含任何不支持的数据类型(如 `NEST STRUCT`、`ARRAY` 或 `MAP`),你需要使用 [支持的数据类型](#supported-data-types)(如 `STRING`)重新生成 Parquet 文件。 -4. 重试导入任务。 +4. 重新尝试导入任务。 ## 支持的数据类型 -下表列出了可以导入到 TiDB Cloud 的支持的 Parquet 数据类型。 +下表列出了可导入到 TiDB Cloud 的 Parquet 支持数据类型。 -| Parquet 基本类型 | Parquet 逻辑类型 | TiDB 或 MySQL 中的类型 | +| Parquet Primitive Type | Parquet Logical Type | Types in TiDB or MySQL | |---|---|---| | DOUBLE | DOUBLE | DOUBLE
FLOAT | | FIXED_LEN_BYTE_ARRAY(9) | DECIMAL(20,0) | BIGINT UNSIGNED | @@ -257,14 +255,14 @@ summary: 了解如何从 Amazon S3、GCS 或 Azure Blob Storage 导入 Apache Pa | TINYINT | N/A | INT32 | | TINYINT UNSIGNED | N/A | INT32 | -## 故障排除 +## 故障排查 -### 解决数据导入期间的警告 +### 解决数据导入过程中的警告 -点击**开始导入**后,如果看到类似 `can't find the corresponding source files` 的警告消息,请通过提供正确的源文件、按照[数据导入命名约定](/tidb-cloud/naming-conventions-for-data-import.md)重命名现有文件或使用**高级设置**进行更改来解决此问题。 +点击 **Start Import** 后,如果看到类似 `can't find the corresponding source files` 的警告信息,可以通过提供正确的源文件、按照 [数据导入命名规范](/tidb-cloud/naming-conventions-for-data-import.md) 重命名现有文件,或使用 **Advanced Settings** 进行修改来解决。 -解决这些问题后,你需要重新导入数据。 +解决这些问题后,需要重新导入数据。 -### 导入的表中行数为零 +### 导入表中行数为零 -导入进度显示**已完成**后,检查导入的表。如果行数为零,则表示没有数据文件与你输入的存储桶 URI 匹配。在这种情况下,请通过提供正确的源文件、按照[数据导入命名约定](/tidb-cloud/naming-conventions-for-data-import.md)重命名现有文件或使用**高级设置**进行更改来解决此问题。之后,重新导入这些表。 +当导入进度显示 **Completed** 后,检查已导入的数据表。如果行数为零,说明没有数据文件匹配你输入的 Bucket URI。此时,可以通过提供正确的源文件、按照 [数据导入命名规范](/tidb-cloud/naming-conventions-for-data-import.md) 重命名现有文件,或使用 **Advanced Settings** 进行修改来解决。之后,重新导入这些表。 \ No newline at end of file diff --git a/tidb-cloud/import-sample-data-serverless.md b/tidb-cloud/import-sample-data-serverless.md index 1eaa1d5a89559..b3dbe77d41c74 100644 --- a/tidb-cloud/import-sample-data-serverless.md +++ b/tidb-cloud/import-sample-data-serverless.md @@ -1,45 +1,49 @@ --- -title: 导入示例数据到 TiDB Cloud Serverless -summary: 了解如何通过 UI 将示例数据导入到 TiDB Cloud Serverless。 +title: Import Sample Data into TiDB Cloud Serverless +summary: 了解如何通过 UI 将示例数据导入 TiDB Cloud Serverless。 --- -# 导入示例数据到 TiDB Cloud Serverless +# Import Sample Data into TiDB Cloud Serverless -本文介绍如何通过 UI 将示例数据导入到 TiDB Cloud Serverless。使用的示例数据是 Capital Bikeshare 的系统数据,根据 Capital Bikeshare 数据许可协议发布。在导入示例数据之前,你需要有一个 TiDB 集群。 +本文档介绍如何通过 UI 将示例数据导入 TiDB Cloud Serverless。所使用的示例数据为 Capital Bikeshare 的系统数据,根据 Capital Bikeshare Data License Agreement 发布。在导入示例数据之前,你需要拥有一个 TiDB 集群。 > **注意:** > > TiDB Cloud Serverless 目前仅支持从 Amazon S3 导入示例数据。 -1. 打开目标集群的**导入**页面。 +1. 打开目标集群的 **Import** 页面。 - 1. 登录 [TiDB Cloud 控制台](https://tidbcloud.com/)并导航到项目的[**集群**](https://tidbcloud.com/project/clusters)页面。 + 1. 登录 [TiDB Cloud 控制台](https://tidbcloud.com/),并导航到你的项目的 [**Clusters**](https://tidbcloud.com/project/clusters) 页面。 > **提示:** > - > 你可以使用左上角的组合框在组织、项目和集群之间切换。 + > 你可以使用左上角的下拉框在组织、项目和集群之间切换。 - 2. 点击目标集群的名称进入其概览页面,然后在左侧导航栏中点击**数据** > **导入**。 + 2. 点击目标集群的名称进入其概览页面,然后在左侧导航栏点击 **Data** > **Import**。 -2. 选择**从云存储导入数据**,然后点击 **Amazon S3**。 +2. 点击 **Import data from Cloud Storage**。 -3. 在**从 Amazon S3 导入数据**页面上,配置以下源数据信息: +3. 在 **Import Data from Cloud Storage** 页面,填写以下信息: - - **导入文件数量**:对于示例数据,选择**多个文件**。 - - **包含架构文件**:对于示例数据,选择**是**。 - - **数据格式**:选择 **SQL**。 - - **文件夹 URI** 或**文件 URI**:输入示例数据 URI `s3://tidbcloud-sample-data/data-ingestion/`。 - - **存储桶访问**:对于示例数据,你只能使用 Role ARN 访问其存储桶。对于你自己的数据,你可以使用 AWS 访问密钥或 Role ARN 访问你的存储桶。 - - **AWS Role ARN**:输入 `arn:aws:iam::801626783489:role/import-sample-access`。 - - **AWS 访问密钥**:对于示例数据,跳过此选项。 + - **Storage Provider**:选择 **Amazon S3**。 + - **Source Files URI**:输入示例数据的 URI `s3://tidbcloud-sample-data/data-ingestion/`。 + - **Credential**: + - **AWS Role ARN**:输入 `arn:aws:iam::801626783489:role/import-sample-access`。 + - **AWS Access Key**:对于示例数据,此项可跳过。 -4. 点击**连接** > **开始导入**。 +4. 点击 **Next**。 -当数据导入进度显示**已完成**时,你已成功将示例数据和数据库架构导入到 TiDB Cloud Serverless 中的数据库。 +5. 在 **Destination Mapping** 部分,保持选中 **Use [File naming conventions](/tidb-cloud/naming-conventions-for-data-import.md) for automatic mapping** 选项,并选择 **SQL** 作为数据格式。 + +6. 点击 **Next**。 + +7. 查看扫描结果,检查发现的数据文件及其对应的目标表,然后点击 **Start Import**。 + +8. 当导入进度显示为 **Completed** 时,检查已导入的表。 连接到集群后,你可以在终端中运行一些查询来检查结果,例如: -1. 获取起始站为 "12th & U St NW" 的行程记录: +1. 获取起点为 "12th & U St NW" 的行程记录: ```sql use bikeshare; @@ -66,7 +70,7 @@ summary: 了解如何通过 UI 将示例数据导入到 TiDB Cloud Serverless。 +-----------------+---------------+---------------------+---------------------+--------------------+------------------+-------------------------------------------+----------------+-----------+------------+-----------+------------+---------------+ ``` -2. 获取电动自行车的行程记录: +2. 获取使用 electric_bike 的行程记录: ```sql use bikeshare; @@ -91,4 +95,4 @@ summary: 了解如何通过 UI 将示例数据导入到 TiDB Cloud Serverless。 | 211D449363FB7EE3 | electric_bike | 2021-01-15 17:22:02 | 2021-01-15 17:35:49 | 7th & K St NW | 31653 | 15th & East Capitol St NE | 31630 | 38.90216 | -77.0211 | 38.88 | 76.98357 | casual | | CE667578A7291701 | electric_bike | 2021-01-15 16:55:12 | 2021-01-15 17:38:26 | East West Hwy & 16th St | 32056 | East West Hwy & Blair Mill Rd | 32019 | 38.995674 | -77.03868 | 38.990 | 77.02953 | casual | +------------------+---------------+---------------------+---------------------+----------------------------------------+------------------+-------------------------------------------------------+----------------+-----------+------------+-----------+------------+---------------+ - ``` + ``` \ No newline at end of file diff --git a/tidb-cloud/tidb-cloud-faq.md b/tidb-cloud/tidb-cloud-faq.md index 69b3d1597db80..f9750081aad5b 100644 --- a/tidb-cloud/tidb-cloud-faq.md +++ b/tidb-cloud/tidb-cloud-faq.md @@ -1,207 +1,207 @@ --- title: TiDB Cloud 常见问题 -summary: 了解关于 TiDB Cloud 的最常见问题(FAQ)。 +summary: 了解与 TiDB Cloud 相关的最常见问题(FAQs)。 --- # TiDB Cloud 常见问题 -本文列出了关于 TiDB Cloud 的最常见问题。 +本文档列出了关于 TiDB Cloud 的最常见问题。 -## 一般问题 +## 通用常见问题 ### 什么是 TiDB Cloud? -TiDB Cloud 通过完全托管的云实例使部署、管理和维护 TiDB 集群变得更加简单,你可以通过直观的控制台来控制它。你可以轻松地在 Amazon Web Services (AWS)、Google Cloud 或 Microsoft Azure 上部署,快速构建关键任务应用程序。 +TiDB Cloud 通过一个直观的控制台,为你提供了一个完全托管的云实例,使得部署、管理和维护 TiDB 集群变得更加简单。你可以轻松地在 Amazon Web Services (AWS)、Google Cloud 或 Microsoft Azure 上部署,快速构建关键业务应用。 -TiDB Cloud 使得几乎不需要培训的开发人员和 DBA 也能轻松处理曾经复杂的任务,如基础设施管理和集群部署,从而专注于你的应用程序,而不是数据库的复杂性。通过简单的点击按钮即可扩展或收缩 TiDB 集群,你不再浪费昂贵的资源,因为你可以根据需要的容量和时间来配置数据库。 +TiDB Cloud 让开发者和 DBA 即使没有或几乎没有培训,也能轻松处理曾经复杂的任务,如基础设施管理和集群部署,让你专注于应用本身,而不是数据库的复杂性。通过简单点击按钮即可横向扩展或缩减 TiDB 集群,你可以根据实际需求灵活配置数据库资源,避免资源浪费。 ### TiDB 和 TiDB Cloud 之间是什么关系? -TiDB 是一个开源数据库,是希望在自己的数据中心、自管理的云环境或两者混合环境中运行 TiDB Self-Managed 的组织的最佳选择。 +TiDB 是一个开源数据库,非常适合希望在自有数据中心、自管云环境或两者混合环境中运行 TiDB 自管版的组织。 -TiDB Cloud 是 TiDB 的完全托管的云数据库即服务。它具有易于使用的基于 Web 的管理控制台,让你可以管理关键任务生产环境的 TiDB 集群。 +TiDB Cloud 是 TiDB 的完全托管云数据库服务(Database as a Service)。它提供了易用的基于 Web 的管理控制台,帮助你在关键生产环境中管理 TiDB 集群。 -### TiDB Cloud 是否与 MySQL 兼容? +### TiDB Cloud 兼容 MySQL 吗? -目前,TiDB Cloud 支持大部分 MySQL 5.7 和 MySQL 8.0 语法,但不支持触发器、存储过程和用户定义函数。更多详细信息,请参见[与 MySQL 的兼容性](/mysql-compatibility.md)。 +目前,TiDB Cloud 支持大部分 MySQL 5.7 和 MySQL 8.0 语法,但不支持触发器、存储过程和用户自定义函数。更多详情,参见 [与 MySQL 的兼容性](/mysql-compatibility.md)。 -### 我可以使用哪些编程语言来使用 TiDB Cloud? +### 我可以用哪些编程语言操作 TiDB Cloud? -你可以使用任何支持 MySQL 客户端或驱动程序的语言。 +你可以使用任何被 MySQL 客户端或驱动支持的语言。 ### 我可以在哪里运行 TiDB Cloud? TiDB Cloud 目前可在 Amazon Web Services (AWS)、Google Cloud 和 Microsoft Azure 上使用。 -### TiDB Cloud 是否支持不同云服务提供商之间的 VPC 对等连接? +### TiDB Cloud 支持不同云服务商之间的 VPC 对等连接吗? 不支持。 -### TiDB Cloud 支持哪些版本的 TiDB? +### TiDB Cloud 支持哪些 TiDB 版本? -- 从 2025 年 1 月 2 日起,新建 TiDB Cloud Dedicated 集群的默认 TiDB 版本是 [v8.1.2](https://docs.pingcap.com/tidb/v8.1/release-8.1.2)。 -- 从 2024 年 2 月 21 日起,TiDB Cloud Serverless 集群的 TiDB 版本是 [v7.1.3](https://docs.pingcap.com/tidb/v7.1/release-7.1.3)。 +- 对于新建的 TiDB Cloud 专属集群,自 2025 年 7 月 15 日起,默认 TiDB 版本为 [v8.5.2](https://docs.pingcap.com/tidb/v8.5/release-8.5.2)。 +- 对于 TiDB Cloud Serverless 集群,自 2025 年 4 月 22 日起,TiDB 版本为 [v7.5.2](https://docs.pingcap.com/tidb/v7.5/release-7.5.2)。 -更多信息,请参见 [TiDB Cloud 发布说明](/tidb-cloud/tidb-cloud-release-notes.md)。 +更多信息,参见 [TiDB Cloud 发布说明](/tidb-cloud/tidb-cloud-release-notes.md)。 ### 哪些公司在生产环境中使用 TiDB 或 TiDB Cloud? -TiDB 受到全球超过 1500 家企业的信任,涉及金融服务、游戏和电子商务等各个行业。我们的用户包括 Square(美国)、Shopee(新加坡)和中国银联(中国)。具体详情请参见我们的[案例研究](https://www.pingcap.com/customers/)。 +TiDB 已被全球 1500 多家企业信赖,覆盖金融服务、游戏、电商等多个行业。我们的用户包括 Square(美国)、Shopee(新加坡)和中国银联(中国)。具体案例请参见我们的 [客户案例](https://www.pingcap.com/customers/)。 ### SLA 是什么样的? -TiDB Cloud 提供 99.99% 的 SLA。详情请参见 [TiDB Cloud 服务的服务级别协议](https://www.pingcap.com/legal/service-level-agreement-for-tidb-cloud-services/)。 +TiDB Cloud 提供 99.99% 的 SLA。详情参见 [TiDB Cloud 服务级别协议](https://www.pingcap.com/legal/service-level-agreement-for-tidb-cloud-services/)。 ### TiDB Cloud 中的 BETA 是什么意思? -BETA 是 TiDB Cloud 功能或产品在正式发布(GA)之前的公开预览阶段。 +BETA 表示 TiDB Cloud 某项功能或服务在正式发布(GA)前的公开预览阶段。 -### 如何了解更多关于 TiDB Cloud 的信息? +### 如何进一步了解 TiDB Cloud? -了解 TiDB Cloud 的最好方法是按照我们的分步教程进行操作。查看以下主题以开始: +了解 TiDB Cloud 的最佳方式是按照我们的分步教程操作。你可以从以下主题开始: - [TiDB Cloud 简介](/tidb-cloud/tidb-cloud-intro.md) -- [开始使用](/tidb-cloud/tidb-cloud-quickstart.md) +- [快速开始](/tidb-cloud/tidb-cloud-quickstart.md) - [创建 TiDB Cloud Serverless 集群](/tidb-cloud/create-tidb-cluster-serverless.md) -### 删除集群时提到的 `XXX's Org/default project/Cluster0` 是什么意思? +### 删除集群时,`XXX's Org/default project/Cluster0` 指的是什么? -在 TiDB Cloud 中,集群由组织名称、项目名称和集群名称的组合唯一标识。为确保你删除的是预期的集群,你需要提供该集群的完全限定名称,例如 `XXX's Org/default project/Cluster0`。 +在 TiDB Cloud 中,一个集群由组织名、项目名和集群名唯一标识。为了确保你删除的是目标集群,你需要提供该集群的全限定名称,例如 `XXX's Org/default project/Cluster0`。 -## 架构问题 +## 架构常见问题 -### 我的 TiDB 集群中有不同的组件。TiDB、TiKV 和 TiFlash 节点是什么? +### 我的 TiDB 集群中有不同的组件。什么是 TiDB、TiKV 和 TiFlash 节点? -TiDB 是 SQL 计算层,用于聚合从 TiKV 或 TiFlash 存储返回的查询数据。TiDB 可以水平扩展;增加 TiDB 节点数量将增加集群可以处理的并发查询数量。 +TiDB 是 SQL 计算层,用于聚合来自 TiKV 或 TiFlash 存储的查询数据。TiDB 支持横向扩展,增加 TiDB 节点数量可以提升集群的并发查询能力。 -TiKV 是用于存储 OLTP 数据的事务存储。TiKV 中的所有数据都自动维护多个副本(默认为三个副本),因此 TiKV 具有原生高可用性并支持自动故障转移。TiKV 可以水平扩展;增加事务存储数量将增加 OLTP 吞吐量。 +TiKV 是事务型存储,用于存储 OLTP 数据。TiKV 中的所有数据会自动维护多副本(默认三副本),因此 TiKV 天生具备高可用性并支持自动故障转移。TiKV 支持横向扩展,增加事务型存储节点可以提升 OLTP 吞吐量。 -TiFlash 是分析存储,它实时从事务存储(TiKV)复制数据,并支持实时 OLAP 工作负载。与 TiKV 不同,TiFlash 以列式存储数据以加速分析处理。TiFlash 也可以水平扩展;增加 TiFlash 节点将增加 OLAP 存储和计算能力。 +TiFlash 是分析型存储,实时从事务型存储(TiKV)同步数据,支持实时 OLAP 负载。与 TiKV 不同,TiFlash 以列存方式存储数据,加速分析型处理。TiFlash 也支持横向扩展,增加 TiFlash 节点可以提升 OLAP 存储和计算能力。 -PD(Placement Driver)是整个 TiDB 集群的"大脑",因为它存储了集群的元数据。它根据 TiKV 节点实时报告的数据分布状态向特定的 TiKV 节点发送数据调度命令。在 TiDB Cloud 中,每个集群的 PD 由 PingCAP 管理,你无法看到或维护它。 +PD(Placement Driver)是整个 TiDB 集群的“大脑”,负责存储集群元数据。它根据 TiKV 节点实时上报的数据分布状态,向特定 TiKV 节点下发数据调度命令。在 TiDB Cloud 上,每个集群的 PD 由 PingCAP 统一管理,你无法直接查看或维护。 ### TiDB 如何在 TiKV 节点之间复制数据? -TiKV 将键值空间划分为键范围,每个键范围被视为一个"Region"。在 TiKV 中,数据分布在集群中的所有节点上,并使用 Region 作为基本单位。PD 负责将 Region 尽可能均匀地分布(调度)到集群中的所有节点上。 +TiKV 将键值空间划分为多个键区间,每个区间称为一个 “Region”。在 TiKV 中,数据以 Region 为基本单位分布在集群所有节点上。PD 负责将 Region 尽可能均匀地调度到集群所有节点。 -TiDB 使用 Raft 共识算法按 Region 复制数据。存储在不同节点上的 Region 的多个副本形成一个 Raft Group。 +TiDB 采用 Raft 一致性算法,通过 Region 进行数据复制。存储在不同节点上的同一个 Region 的多个副本组成一个 Raft Group。 -每个数据更改都记录为一个 Raft 日志。通过 Raft 日志复制,数据被安全可靠地复制到 Raft Group 的多个节点上。 +每次数据变更都会被记录为一条 Raft 日志。通过 Raft 日志复制,数据可以安全可靠地同步到 Raft Group 的多个节点。 -## 高可用性问题 +## 高可用性常见问题 -### TiDB Cloud 如何确保高可用性? +### TiDB Cloud 如何保证高可用性? -TiDB 使用 Raft 共识算法确保数据在 Raft Groups 中的存储具有高可用性和安全复制。数据在 TiKV 节点之间冗余复制,并放置在不同的可用区中,以防止机器或数据中心故障。通过自动故障转移,TiDB 确保你的服务始终在线。 +TiDB 采用 Raft 一致性算法,确保数据在 Raft Group 内高度可用且安全复制。数据会在 TiKV 节点之间冗余复制,并分布在不同的可用区,以防止机器或数据中心故障。通过自动故障转移,TiDB 能确保你的服务始终可用。 -作为软件即服务(SaaS)提供商,我们非常重视数据安全。我们已经建立了 [Service Organization Control (SOC) 2 Type 1 合规](https://www.pingcap.com/press-release/pingcap-successfully-completes-soc-2-type-1-examination-for-tidb-cloud/) 所要求的严格信息安全政策和程序。这确保了你的数据是安全、可用和保密的。 +作为软件即服务(SaaS)提供商,我们高度重视数据安全。我们已建立严格的信息安全政策和流程,符合 [服务组织控制(SOC)2 Type 1 合规性](https://www.pingcap.com/press-release/pingcap-successfully-completes-soc-2-type-1-examination-for-tidb-cloud/)。这确保了你的数据安全、可用且保密。 -## 迁移问题 +## 迁移常见问题 -### 是否有从其他 RDBMS 迁移到 TiDB Cloud 的简单途径? +### 从其他关系型数据库迁移到 TiDB Cloud 是否有便捷路径? -TiDB 与 MySQL 高度兼容。你可以从任何 MySQL 兼容的数据库平滑迁移数据到 TiDB,无论数据是来自自托管的 MySQL 实例还是公共云提供的 RDS 服务。更多信息,请参见[使用数据迁移将 MySQL 兼容数据库迁移到 TiDB Cloud](/tidb-cloud/migrate-from-mysql-using-data-migration.md)。 +TiDB 高度兼容 MySQL。你可以顺利地将数据从任何 MySQL 兼容数据库迁移到 TiDB,无论数据来自自建 MySQL 实例还是公有云提供的 RDS 服务。更多信息,参见 [使用数据迁移将 MySQL 兼容数据库迁移到 TiDB Cloud](/tidb-cloud/migrate-from-mysql-using-data-migration.md)。 -## 备份和恢复问题 +## 备份与恢复常见问题 -### TiDB Cloud 是否支持增量备份? +### TiDB Cloud 支持增量备份吗? -不支持。如果你需要将数据恢复到集群备份保留期内的任意时间点,你可以使用 PITR(时间点恢复)。更多信息,请参见[在 TiDB Cloud Dedicated 集群中使用 PITR](/tidb-cloud/backup-and-restore.md#turn-on-auto-backup) 或[在 TiDB Cloud Serverless 集群中使用 PITR](/tidb-cloud/backup-and-restore-serverless.md#restore)。 +不支持。如果你需要在集群备份保留期内将数据恢复到任意时间点,可以使用 PITR(时间点恢复)。更多信息,参见 [在 TiDB Cloud 专属集群中使用 PITR](/tidb-cloud/backup-and-restore.md#turn-on-auto-backup) 或 [在 TiDB Cloud Serverless 集群中使用 PITR](/tidb-cloud/backup-and-restore-serverless.md#restore)。 -## HTAP 问题 +## HTAP 常见问题 -### 如何利用 TiDB Cloud 的 HTAP 功能? +### 如何利用 TiDB Cloud 的 HTAP 能力? -传统上,有两种类型的数据库:在线事务处理(OLTP)数据库和在线分析处理(OLAP)数据库。OLTP 和 OLAP 请求通常在不同的独立数据库中处理。使用这种传统架构,将数据从 OLTP 数据库迁移到数据仓库或数据湖进行 OLAP 是一个漫长且容易出错的过程。 +传统上,数据库分为联机事务处理(OLTP)数据库和联机分析处理(OLAP)数据库。OLTP 和 OLAP 请求通常在不同且隔离的数据库中处理。在这种传统架构下,将数据从 OLTP 数据库迁移到数据仓库或数据湖进行 OLAP 分析是一个漫长且容易出错的过程。 -作为混合事务分析处理(HTAP)数据库,TiDB Cloud 通过在 OLTP(TiKV)存储和 OLAP(TiFlash)存储之间自动可靠地复制数据,帮助你简化系统架构,降低维护复杂性,并支持对事务数据进行实时分析。典型的 HTAP 用例包括用户个性化、AI 推荐、欺诈检测、商业智能和实时报告。 +作为混合事务与分析处理(HTAP)数据库,TiDB Cloud 通过在 OLTP(TiKV)存储和 OLAP(TiFlash)存储之间自动可靠地复制数据,帮助你简化系统架构,降低运维复杂度,并支持对事务数据的实时分析。典型 HTAP 场景包括用户个性化、AI 推荐、欺诈检测、商业智能和实时报表。 -有关更多 HTAP 场景,请参考[我们如何构建一个简化数据平台的 HTAP 数据库](https://pingcap.com/blog/how-we-build-an-htap-database-that-simplifies-your-data-platform)。 +更多 HTAP 场景,参见 [我们如何构建简化数据平台的 HTAP 数据库](https://pingcap.com/blog/how-we-build-an-htap-database-that-simplifies-your-data-platform)。 -### 我可以直接将数据导入到 TiFlash 吗? +### 我可以直接将数据导入 TiFlash 吗? -不可以。当你将数据导入到 TiDB Cloud 时,数据会被导入到 TiKV。导入完成后,你可以使用 SQL 语句指定要复制到 TiFlash 的表。然后,TiDB 会相应地在 TiFlash 中创建指定表的副本。更多信息,请参见[创建 TiFlash 副本](/tiflash/create-tiflash-replicas.md)。 +不可以。当你将数据导入 TiDB Cloud 时,数据会被导入到 TiKV。导入完成后,你可以通过 SQL 语句指定哪些表需要同步到 TiFlash。随后,TiDB 会在 TiFlash 中为指定表创建副本。更多信息,参见 [创建 TiFlash 副本](/tiflash/create-tiflash-replicas.md)。 -### 我可以将 TiFlash 数据以 CSV 格式导出吗? +### 我可以将 TiFlash 数据导出为 CSV 格式吗? 不可以。TiFlash 数据无法导出。 -## 安全问题 +## 安全性常见问题 -### TiDB Cloud 是否安全? +### TiDB Cloud 安全吗? -在 TiDB Cloud 中,所有静态数据都经过加密,所有网络流量都使用传输层安全性(TLS)加密。 +在 TiDB Cloud 中,所有静态数据都经过加密,所有网络流量都通过传输层安全协议(TLS)加密。 -- 静态数据加密使用加密存储卷自动完成。 -- 客户端和集群之间传输中的数据加密使用 TiDB Cloud Web 服务器 TLS 和 TiDB 集群 TLS 自动完成。 +- 静态数据的加密通过加密存储卷自动完成。 +- 客户端与集群之间的数据传输加密通过 TiDB Cloud Web 服务器 TLS 和 TiDB 集群 TLS 自动完成。 ### TiDB Cloud 如何加密我的业务数据? -TiDB Cloud 默认使用存储卷加密来保护你的静态业务数据,包括你的数据库数据和备份数据。TiDB Cloud 要求对传输中的数据使用 TLS 加密,并要求对数据库集群中 TiDB、PD、TiKV 和 TiFlash 之间的数据进行组件级 TLS 加密。 +TiDB Cloud 默认对你的静态业务数据(包括数据库数据和备份数据)使用存储卷加密。TiDB Cloud 要求传输中的数据必须使用 TLS 加密,同时也要求数据库集群内部(TiDB、PD、TiKV、TiFlash 之间)进行组件级 TLS 加密。 -要获取有关 TiDB Cloud 中业务数据加密的更多具体信息,请联系 [TiDB Cloud 支持](/tidb-cloud/tidb-cloud-support.md)。 +如需获取 TiDB Cloud 业务数据加密的详细信息,请联系 [TiDB Cloud 支持](/tidb-cloud/tidb-cloud-support.md)。 -### TiDB Cloud 支持哪些版本的 TLS? +### TiDB Cloud 支持哪些 TLS 版本? TiDB Cloud 支持 TLS 1.2 或 TLS 1.3。 -### 我可以在我的 VPC 中运行 TiDB Cloud 吗? +### 我可以在自己的 VPC 中运行 TiDB Cloud 吗? -不可以。TiDB Cloud 是数据库即服务(DBaaS),只能在 TiDB Cloud VPC 中运行。作为云计算托管服务,TiDB Cloud 提供数据库访问,无需设置物理硬件和安装软件。 +不可以。TiDB Cloud 是数据库即服务(DBaaS),仅运行在 TiDB Cloud VPC 中。作为云计算托管服务,TiDB Cloud 提供数据库访问,无需你搭建物理硬件和安装软件。 -### 我的 TiDB 集群是否安全? +### 我的 TiDB 集群安全吗? -在 TiDB Cloud 中,你可以根据需要使用 TiDB Cloud Dedicated 集群或 TiDB Cloud Serverless 集群。 +在 TiDB Cloud 中,你可以根据需求选择 TiDB Cloud 专属集群或 TiDB Cloud Serverless 集群。 -对于 TiDB Cloud Dedicated 集群,TiDB Cloud 通过以下措施确保集群安全: +对于 TiDB Cloud 专属集群,TiDB Cloud 通过以下措施保障集群安全: -- 为每个集群创建独立的子账户和 VPC。 -- 设置防火墙规则以隔离外部连接。 -- 为每个集群创建服务器端 TLS 证书和组件级 TLS 证书,以加密传输中的集群数据。 -- 为每个集群提供 IP 访问规则,确保只有允许的源 IP 地址才能访问你的集群。 +- 为每个集群创建独立的子账号和 VPC。 +- 设置防火墙规则,隔离外部连接。 +- 为每个集群创建服务器端 TLS 证书和组件级 TLS 证书,加密集群内传输数据。 +- 为每个集群提供 IP 访问规则,确保只有允许的源 IP 地址可以访问你的集群。 -对于 TiDB Cloud Serverless 集群,TiDB Cloud 通过以下措施确保集群安全: +对于 TiDB Cloud Serverless 集群,TiDB Cloud 通过以下措施保障集群安全: -- 为每个集群创建独立的子账户。 -- 设置防火墙规则以隔离外部连接。 -- 提供集群服务器 TLS 证书以加密传输中的集群数据。 +- 为每个集群创建独立的子账号。 +- 设置防火墙规则,隔离外部连接。 +- 提供集群服务器 TLS 证书,加密集群内传输数据。 -### 如何连接到 TiDB 集群中的数据库? +### 如何连接 TiDB 集群中的数据库?
-对于 TiDB Cloud Dedicated 集群,连接到集群的步骤简化如下: +对于 TiDB Cloud 专属集群,连接集群的步骤简化如下: 1. 授权你的网络。 -2. 设置数据库用户和登录凭据。 +2. 设置数据库用户和登录凭证。 3. 下载并配置集群服务器的 TLS。 -4. 选择一个 SQL 客户端,获取 TiDB Cloud UI 上显示的自动生成的连接字符串,然后使用该字符串通过 SQL 客户端连接到你的集群。 +4. 选择 SQL 客户端,在 TiDB Cloud UI 上获取自动生成的连接字符串,然后通过该字符串在 SQL 客户端中连接集群。 -更多信息,请参见[连接到你的 TiDB Cloud Dedicated 集群](/tidb-cloud/connect-to-tidb-cluster.md)。 +更多信息,参见 [连接到你的 TiDB Cloud 专属集群](/tidb-cloud/connect-to-tidb-cluster.md)。
-对于 TiDB Cloud Serverless 集群,连接到集群的步骤简化如下: +对于 TiDB Cloud Serverless 集群,连接集群的步骤简化如下: -1. 设置数据库用户和登录凭据。 -2. 选择一个 SQL 客户端,获取 TiDB Cloud UI 上显示的自动生成的连接字符串,然后使用该字符串通过 SQL 客户端连接到你的集群。 +1. 设置数据库用户和登录凭证。 +2. 选择 SQL 客户端,在 TiDB Cloud UI 上获取自动生成的连接字符串,然后通过该字符串在 SQL 客户端中连接集群。 -更多信息,请参见[连接到你的 TiDB Cloud Serverless 集群](/tidb-cloud/connect-to-tidb-cluster-serverless.md)。 +更多信息,参见 [连接到你的 TiDB Cloud Serverless 集群](/tidb-cloud/connect-to-tidb-cluster-serverless.md)。
-## 支持问题 +## 支持常见问题 -### 为客户提供哪些支持? +### 客户可以获得哪些支持? -TiDB Cloud 由 TiDB 背后的同一团队提供支持,该团队已经为金融服务、电子商务、企业应用和游戏等行业的 1500 多家全球企业运行关键任务用例。TiDB Cloud 为每个用户提供免费的基本支持计划,你可以升级到付费计划以获得扩展服务。更多信息,请参见 [TiDB Cloud 支持](/tidb-cloud/tidb-cloud-support.md)。 +TiDB Cloud 由 TiDB 背后的同一团队提供支持,该团队已为全球 1500 多家企业在金融服务、电商、企业应用、游戏等行业的关键业务场景中提供服务。TiDB Cloud 为每位用户提供免费基础支持计划,你也可以升级为付费计划以获得更全面的服务。更多信息,参见 [TiDB Cloud 支持](/tidb-cloud/tidb-cloud-support.md)。 ### 如何检查 TiDB Cloud 是否宕机? -你可以在[系统状态](https://status.tidbcloud.com/)页面上检查 TiDB Cloud 的当前运行时间状态。 +你可以在 [系统状态](https://status.tidbcloud.com/) 页面查看 TiDB Cloud 当前的运行状态。 \ No newline at end of file diff --git a/tidb-cloud/tidb-cloud-quickstart.md b/tidb-cloud/tidb-cloud-quickstart.md index 41fad7fc4dcf2..3b4cbba942cf7 100644 --- a/tidb-cloud/tidb-cloud-quickstart.md +++ b/tidb-cloud/tidb-cloud-quickstart.md @@ -1,54 +1,54 @@ --- -title: TiDB Cloud 快速上手 -summary: 快速注册并试用 TiDB Cloud,创建你的 TiDB 集群。 +title: TiDB Cloud 快速入门 +summary: 快速注册体验 TiDB Cloud 并创建你的 TiDB 集群。 category: quick start --- -# TiDB Cloud 快速上手 +# TiDB Cloud 快速入门 *预计完成时间:20 分钟* -本教程将指导你快速开始使用 TiDB Cloud。你也可以在 TiDB Cloud 控制台的[**快速开始**](https://tidbcloud.com/getting-started)页面按照分步教程进行操作。 +本教程将引导你以简单的方式快速上手 TiDB Cloud。 -此外,你还可以在 [TiDB Playground](https://play.tidbcloud.com/?utm_source=docs&utm_medium=tidb_cloud_quick_start) 上试用 TiDB 的功能。 +此外,你还可以在 [TiDB Playground](https://play.tidbcloud.com/?utm_source=docs&utm_medium=tidb_cloud_quick_start) 上体验 TiDB 的相关特性。 ## 第 1 步:创建 TiDB 集群 -[TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless) 是开始使用 TiDB Cloud 的最佳方式。要创建 TiDB Cloud Serverless 集群,请按照以下步骤操作: +[TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless) 是体验 TiDB Cloud 的最佳方式。要创建 TiDB Cloud Serverless 集群,请按照以下步骤操作: -1. 如果你还没有 TiDB Cloud 账号,请点击[这里](https://tidbcloud.com/free-trial)注册。 +1. 如果你还没有 TiDB Cloud 账号,请点击 [这里](https://tidbcloud.com/free-trial) 注册。 - 你可以使用电子邮件和密码注册,通过 TiDB Cloud 管理你的密码,或者选择使用 Google、GitHub 或 Microsoft 账号进行单点登录 (SSO)。 + 你可以使用邮箱和密码注册并由 TiDB Cloud 管理密码,或者选择使用 Google、GitHub 或 Microsoft 账号进行单点登录(SSO)到 TiDB Cloud。 -2. [登录](https://tidbcloud.com/)你的 TiDB Cloud 账号。 +2. [登录](https://tidbcloud.com/) 你的 TiDB Cloud 账号。 - 默认显示[**集群**](https://tidbcloud.com/project/clusters)页面。 + 默认会显示 [**Clusters**](https://tidbcloud.com/project/clusters) 页面。 3. 对于新注册用户,TiDB Cloud 会自动为你创建一个名为 `Cluster0` 的默认 TiDB Cloud Serverless 集群。 - - 要立即使用此默认集群试用 TiDB Cloud 功能,请继续[第 2 步:试用 AI 辅助 SQL 编辑器](#第-2-步试用-ai-辅助-sql-编辑器)。 - - 要自行创建新的 TiDB Cloud Serverless 集群,请按照以下步骤操作: + - 如果你想立即使用该默认集群体验 TiDB Cloud 的功能,请继续阅读 [第 2 步:体验 AI 辅助 SQL 编辑器](#step-2-try-ai-assisted-sql-editor)。 + - 如果你想自行创建新的 TiDB Cloud Serverless 集群,请按照以下步骤操作: - 1. 点击**创建集群**。 - 2. 在**创建集群**页面,默认选择 **Serverless**。选择集群的目标区域,根据需要更新默认集群名称,选择你的[集群方案](/tidb-cloud/select-cluster-tier.md#cluster-plans),然后点击**创建**。你的 TiDB Cloud Serverless 集群将在大约 30 秒内创建完成。 + 1. 点击 **Create Cluster**。 + 2. 在 **Create Cluster** 页面,**Serverless** 会被默认选中。选择你的集群目标区域,如有需要可修改默认集群名称,选择你的 [集群方案](/tidb-cloud/select-cluster-tier.md#cluster-plans),然后点击 **Create**。你的 TiDB Cloud Serverless 集群将在大约 30 秒内创建完成。 -## 第 2 步:试用 AI 辅助 SQL 编辑器 +## 第 2 步:体验 AI 辅助 SQL 编辑器 -你可以使用 TiDB Cloud 控制台中内置的 AI 辅助 SQL 编辑器来最大化数据价值。这使你无需本地 SQL 客户端即可对数据库运行 SQL 查询。你可以直观地以表格或图表形式查看查询结果,并轻松查看查询日志。 +你可以在 TiDB Cloud 控制台中使用内置的 AI 辅助 SQL 编辑器,最大化数据价值。这样你无需本地 SQL 客户端即可对数据库运行 SQL 查询,并可以直观地以表格或图表形式查看查询结果,轻松查看查询日志。 -1. 在[**集群**](https://tidbcloud.com/project/clusters)页面,点击集群名称进入其概览页面,然后在左侧导航栏中点击 **SQL 编辑器**。 +1. 在 [**Clusters**](https://tidbcloud.com/project/clusters) 页面,点击某个集群名称进入其概览页面,然后在左侧导航栏点击 **SQL Editor**。 -2. 要试用 TiDB Cloud 的 AI 功能,请按照屏幕上的说明允许 PingCAP 和 AWS Bedrock 使用你的代码片段进行研究和服务改进,然后点击**保存并开始**。 +2. 若要体验 TiDB Cloud 的 AI 能力,请按照页面提示允许 PingCAP 和 AWS Bedrock 使用你的代码片段进行研究和服务改进,然后点击 **Save and Get Started**。 -3. 在 SQL 编辑器中,在 macOS 上按 + I(或在 Windows 或 Linux 上按 Control + I)来指示 [Chat2Query (beta)](/tidb-cloud/tidb-cloud-glossary.md#chat2query) 自动生成 SQL 查询。 +3. 在 SQL Editor 中,按下 macOS 的 + I(或 Windows/Linux 的 Control + I),即可指示 [Chat2Query (beta)](/tidb-cloud/tidb-cloud-glossary.md#chat2query) 自动生成 SQL 查询。 - 例如,要创建一个包含两列(列 `id` 和列 `name`)的新表 `test.t`,你可以输入 `use test;` 来指定数据库,按 + I,输入 `create a new table t with id and name` 作为指令,然后按 **Enter** 让 AI 相应地生成 SQL 语句。 - - 对于生成的语句,你可以点击**接受**来接受它,然后根据需要进一步编辑,或者点击**放弃**来拒绝它。 + 例如,若要创建一个包含两列(`id` 和 `name`)的新表 `test.t`,你可以输入 `use test;` 指定数据库,按下 + I,输入 `create a new table t with id and name` 作为指令,然后按 **Enter**,让 AI 自动生成相应的 SQL 语句。 + + 对于生成的语句,你可以点击 **Accept** 接受并根据需要进一步编辑,或点击 **Discard** 拒绝。 > **注意:** > - > AI 生成的 SQL 查询并非 100% 准确,可能仍需要进一步调整。 + > AI 生成的 SQL 查询并非 100% 准确,可能仍需进一步调整。 4. 运行 SQL 查询。 @@ -57,11 +57,11 @@ category: quick start 对于 macOS: - - 如果编辑器中只有一个查询,按 **⌘ + Enter** 或点击 **运行**来执行它。 + - 如果编辑器中只有一个查询,按下 **⌘ + Enter** 或点击 **Run** 执行。 - - 如果编辑器中有多个查询,用光标选择目标查询的行,然后按 **⌘ + Enter** 或点击**运行**来按顺序执行它们。 + - 如果编辑器中有多个查询,使用光标选中目标查询的行,然后按 **⌘ + Enter** 或点击 **Run** 顺序执行。 - - 要按顺序运行编辑器中的所有查询,按 **⇧ + ⌘ + Enter**,或用光标选择所有查询的行并点击**运行**。 + - 若要顺序执行编辑器中的所有查询,按 **⇧ + ⌘ + Enter**,或用光标选中所有查询的行后点击 **Run**。
@@ -69,18 +69,18 @@ category: quick start 对于 Windows 或 Linux: - - 如果编辑器中只有一个查询,按 **Ctrl + Enter** 或点击 **运行**来执行它。 + - 如果编辑器中只有一个查询,按下 **Ctrl + Enter** 或点击 **Run** 执行。 - - 如果编辑器中有多个查询,用光标选择目标查询的行,然后按 **Ctrl + Enter** 或点击**运行**来按顺序执行它们。 + - 如果编辑器中有多个查询,使用光标选中目标查询的行,然后按 **Ctrl + Enter** 或点击 **Run** 顺序执行。 - - 要按顺序运行编辑器中的所有查询,按 **Shift + Ctrl + Enter**,或用光标选择所有查询的行并点击**运行**。 + - 若要顺序执行编辑器中的所有查询,按 **Shift + Ctrl + Enter**,或用光标选中所有查询的行后点击 **Run**。
-运行查询后,你可以立即在页面底部看到查询日志和结果。 +运行查询后,你可以在页面底部立即看到查询日志和结果。 -要让 AI 生成更多 SQL 语句,你可以按照以下示例输入更多指令: +如果想让 AI 生成更多 SQL 语句,可以像下面的示例一样输入更多指令: ```sql use test; @@ -105,18 +105,18 @@ FROM `t`; ``` -## 第 3 步:试用交互式教程 +## 第 3 步:体验交互式教程 -TiDB Cloud 提供了带有精心设计的示例数据集的交互式教程,帮助你快速开始使用 TiDB Cloud。你可以尝试这些教程,学习如何使用 TiDB Cloud 进行高性能数据分析。 +TiDB Cloud 提供了配套示例数据集的交互式教程,帮助你快速上手 TiDB Cloud。你可以通过这些教程学习如何使用 TiDB Cloud 进行高性能数据分析。 -1. 点击控制台右下角的 **?** 图标,选择**交互式教程**。 -2. 在教程列表中,选择一个教程卡片开始,例如 **Steam 游戏统计**。 -3. 选择你想要用于教程的 TiDB Cloud Serverless 集群,然后点击**导入数据集**。导入过程可能需要大约一分钟。 -4. 数据导入完成后,按照屏幕上的说明完成教程。 +1. 点击控制台右下角的 **?** 图标,选择 **Interactive Tutorials**。 +2. 在教程列表中,选择一个教程卡片开始,例如 **Steam Game Stats**。 +3. 选择你想用于本教程的 TiDB Cloud Serverless 集群,点击 **Import Dataset**。导入过程大约需要 1 分钟。 +4. 示例数据导入完成后,按照页面提示完成教程。 -## 下一步 +## 后续操作 -- 要了解如何使用不同方法连接到集群,请参阅[连接到 TiDB Cloud Serverless 集群](/tidb-cloud/connect-to-tidb-cluster-serverless.md)。 -- 要了解更多关于如何使用 SQL 编辑器和 Chat2Query 探索数据的信息,请参阅[使用 AI 辅助 SQL 编辑器探索数据](/tidb-cloud/explore-data-with-chat2query.md)。 -- 关于 TiDB SQL 的使用,请参阅[使用 TiDB 探索 SQL](/basic-sql-operations.md)。 -- 对于需要跨可用区高可用性、水平扩展和 [HTAP](https://en.wikipedia.org/wiki/Hybrid_transactional/analytical_processing) 优势的生产环境使用,请参阅[创建 TiDB Cloud Dedicated 集群](/tidb-cloud/create-tidb-cluster.md)。 +- 了解如何通过不同方式连接你的集群,请参见 [连接到 TiDB Cloud Serverless 集群](/tidb-cloud/connect-to-tidb-cluster-serverless.md)。 +- 获取更多关于如何使用 SQL Editor 和 Chat2Query 探索数据的信息,请参见 [使用 AI 辅助 SQL 编辑器探索数据](/tidb-cloud/explore-data-with-chat2query.md)。 +- 了解 TiDB SQL 的用法,请参见 [使用 TiDB 探索 SQL](/basic-sql-operations.md)。 +- 若需生产环境使用,享受跨可用区高可用、水平扩展和 [HTAP](https://en.wikipedia.org/wiki/Hybrid_transactional/analytical_processing) 等优势,请参见 [创建 TiDB Cloud 专属集群](/tidb-cloud/create-tidb-cluster.md)。 \ No newline at end of file diff --git a/tidb-cloud/tidb-cloud-release-notes.md b/tidb-cloud/tidb-cloud-release-notes.md index 839bcdd05e1ee..9f8cb0c7c9afe 100644 --- a/tidb-cloud/tidb-cloud-release-notes.md +++ b/tidb-cloud/tidb-cloud-release-notes.md @@ -1,305 +1,371 @@ --- -title: TiDB Cloud 2025 年发布说明 -summary: 了解 TiDB Cloud 2025 年的发布说明。 +title: 2025 年 TiDB Cloud 发布说明 +summary: 了解 2025 年 TiDB Cloud 的发布说明。 aliases: ['/tidbcloud/supported-tidb-versions','/tidbcloud/release-notes'] --- -# TiDB Cloud 2025 年发布说明 +# 2025 年 TiDB Cloud 发布说明 -本页列出了 [TiDB Cloud](https://www.pingcap.com/tidb-cloud/) 在 2025 年的发布说明。 +本页面列出了 [TiDB Cloud](https://www.pingcap.com/tidb-cloud/) 在 2025 年的发布说明。 + +## 2025 年 7 月 22 日 + +**通用变更** + +- 为托管在 Google Cloud 上的 [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 集群提供了新的节点规格:`32 vCPU, 128 GiB`。 + + 该新规格适用于 TiDB、TiKV 和 TiFlash 节点。 + +- 优化了 [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 中 TiKV 的扩缩容流程,以提升集群稳定性。 + + 当你 [更改 TiKV 节点的 vCPU 和内存规格](/tidb-cloud/scale-tidb-cluster.md#change-vcpu-and-ram) 时,TiDB Cloud 会自动检查集群内部服务是否需要额外容量以支持新配置。 + + - 如果需要扩容,TiDB Cloud 会在操作前提示你确认。 + - 如果当前内部服务容量在扩容后已大于所需容量,TiDB Cloud 会保留现有内部服务配置,以避免不必要的变更影响集群稳定性。 + +**控制台变更** + +- 优化了 [TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless) 集群的云存储数据导入体验。 + + 导入流程现已简化为 3 步向导,并配备智能预检查。新向导将引导你完成连接设置、文件映射和存储桶扫描。通过扫描,TiDB Cloud 会在导入前准确展示将被导入的文件及其目标位置,大幅降低配置复杂度并防止导入失败。 + + 详细信息请参见以下文档: + + - [导入示例数据到 TiDB Cloud Serverless](/tidb-cloud/import-sample-data-serverless.md) + - [从云存储导入 CSV 文件到 TiDB Cloud Serverless](/tidb-cloud/import-csv-files-serverless.md) + - [从云存储导入 Apache Parquet 文件到 TiDB Cloud Serverless](/tidb-cloud/import-parquet-files-serverless.md) + +## 2025 年 7 月 15 日 + +**通用变更** + +- 新建 [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 集群的默认 TiDB 版本从 [v8.1.2](https://docs.pingcap.com/tidb/stable/release-8.1.2/) 升级为 [v8.5.2](https://docs.pingcap.com/tidb/stable/release-8.5.2/)。 + + 与 v8.1.2 相比,v8.5.2 包含了 [v8.2.0-DMR](https://docs.pingcap.com/tidb/stable/release-8.2.0/)、[v8.3.0-DMR](https://docs.pingcap.com/tidb/stable/release-8.3.0/)、[v8.4.0-DMR](https://docs.pingcap.com/tidb/stable/release-8.4.0/)、[v8.5.0](https://docs.pingcap.com/tidb/stable/release-8.5.0/)、[v8.5.1](https://docs.pingcap.com/tidb/stable/release-8.5.1/) 和 [v8.5.2](https://docs.pingcap.com/tidb/stable/release-8.5.2/) 中发布的新特性、改进和 bug 修复。 + +- 支持审计 `BackupCompleted` 事件,以增强备份活动的控制台审计日志。 + + 该增强功能允许你记录备份完成活动,以满足安全和合规要求。 + + 详细信息请参见 [控制台审计日志](/tidb-cloud/tidb-cloud-console-auditing.md)。 + +- 支持在 [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) changefeed 中过滤列值。 + + 你现在可以使用表达式在 changefeed 中过滤特定列值,从源头排除无关数据。该功能支持对 DML 事件进行细粒度过滤,帮助你降低资源消耗并提升性能。 + + 详细信息请参见 [Changefeed](/tidb-cloud/changefeed-overview.md)。 + +## 2025 年 6 月 24 日 + +**通用变更** + +- [TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless) 数据库审计日志(beta)现可按需申请。该功能允许你在日志中记录用户访问详情(如执行的 SQL 语句等)历史。 + + 如需申请该功能,请点击 [TiDB Cloud 控制台](https://tidbcloud.com) 右下角的 **?**,然后点击 **Request Support**。在 Description 字段填写“Apply for TiDB Cloud Serverless database audit logging”,并点击 **Submit**。 + + 详细信息请参见 [TiDB Cloud Serverless 数据库审计日志](/tidb-cloud/serverless-audit-logging.md)。 + +- [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 支持用户自主控制日志脱敏。 + + 你现在可以为 TiDB Cloud Dedicated 集群启用或禁用日志脱敏,自主管理集群日志的脱敏状态。 + + 详细信息请参见 [用户自主控制日志脱敏](/tidb-cloud/tidb-cloud-log-redaction.md)。 + +- 托管在 AWS 上的 [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 集群现已正式(GA)支持使用客户自管加密密钥(CMEK)进行静态加密。 + + 该功能允许你通过密钥管理服务(KMS)管理的对称加密密钥,保护静态数据安全。 + + 详细信息请参见 [使用客户自管加密密钥进行静态加密](/tidb-cloud/tidb-cloud-encrypt-cmek.md)。 ## 2025 年 6 月 17 日 -**一般变更** +**通用变更** -- 对于 [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 集群,16 vCPU 和 32 vCPU 的 TiKV 节点的最大存储大小从 **6144 GiB** 改为 **4096 GiB**。 +- 对于 [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 集群,16 vCPU 和 32 vCPU 的 TiKV 节点最大存储容量由 **6144 GiB** 调整为 **4096 GiB**。 - 更多信息,请参见 [TiKV 节点存储大小](/tidb-cloud/size-your-cluster.md#tikv-node-storage-size)。 + 详细信息请参见 [TiKV 节点存储容量](/tidb-cloud/size-your-cluster.md#tikv-node-storage-size)。 **控制台变更** -- 重新设计左侧导航栏以改善整体导航体验。 +- 全面升级左侧导航栏,提升整体导航体验。 - - 在左上角新增了一个 图标,让你可以根据需要轻松隐藏或显示左侧导航栏。 - - 在左上角新增了一个组合框,让你可以从一个中心位置快速切换组织、项目和集群。 + - 左上角新增 图标,可随时便捷地隐藏或显示左侧导航栏。 + - 左上角新增组合框,可在一个中心位置快速切换组织、项目和集群。 - - 左侧导航栏显示的条目现在会根据你在组合框中的当前选择动态调整,帮助你专注于最相关的功能。 - - 为了方便快速访问,**支持**、**通知**和你的账户条目现在会始终显示在所有控制台页面的左侧导航栏底部。 + - 左侧导航栏的入口会根据你在组合框中的当前选择动态调整,帮助你聚焦最相关的功能。 + - **Support**、**Notification** 和你的账号入口现始终固定显示在所有控制台页面左侧导航栏底部,便于快速访问。 ## 2025 年 6 月 4 日 -**一般变更** +**通用变更** + +- [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 现已在 Microsoft Azure 上公测开放。 + + 随着本次发布,TiDB Cloud 现已支持三大主流公有云平台 —— AWS、Google Cloud 和 Azure,助你根据业务需求和云战略灵活部署 TiDB Cloud Dedicated 集群。 + + - 在 Azure 上,所有 AWS 和 Google Cloud 支持的核心功能均已全面支持。 + - Azure 目前支持的区域包括:美国东部 2、日本东部和东南亚,更多区域即将开放。 + - Azure 上的 TiDB Cloud Dedicated 集群需使用 TiDB v7.5.3 或更高版本。 + + 快速上手 Azure 上的 TiDB Cloud Dedicated,请参见以下文档: -- [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 在 Microsoft Azure 上现已公开预览。 - - 随着此次发布,TiDB Cloud 现在支持所有三大公有云平台 — AWS、Google Cloud 和 Azure,使你能够在最适合你的业务需求和云战略的地方部署 TiDB Cloud Dedicated 集群。 - - - AWS 和 Google Cloud 上可用的所有核心功能在 Azure 上都完全支持。 - - Azure 支持目前在三个区域可用:East US 2、Japan East 和 Southeast Asia,更多区域即将推出。 - - Azure 上的 TiDB Cloud Dedicated 集群需要 TiDB v7.5.3 或更高版本。 - - 要快速开始使用 Azure 上的 TiDB Cloud Dedicated,请参见以下文档: - - [在 Azure 上创建 TiDB Cloud Dedicated 集群](/tidb-cloud/create-tidb-cluster.md) - - [通过 Azure 私有端点连接 TiDB Cloud Dedicated 集群](/tidb-cloud/set-up-private-endpoint-connections-on-azure.md) - - [将数据导入 Azure 上的 TiDB Cloud Dedicated 集群](/tidb-cloud/import-csv-files.md) + - [通过 Azure Private Endpoint 连接 TiDB Cloud Dedicated 集群](/tidb-cloud/set-up-private-endpoint-connections-on-azure.md) + - [向 Azure 上的 TiDB Cloud Dedicated 集群导入数据](/tidb-cloud/import-csv-files.md) -- Prometheus 集成提供更多指标以增强 [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 集群的监控能力。 - - 现在你可以将更多指标(如 `tidbcloud_disk_read_latency` 和 `tidbcloud_kv_request_duration`)集成到 Prometheus 中,以跟踪 TiDB Cloud Dedicated 性能的更多方面。 - - 有关可用指标以及如何为现有和新用户启用这些指标的更多信息,请参见[将 TiDB Cloud 与 Prometheus 和 Grafana 集成(Beta)](/tidb-cloud/monitor-prometheus-and-grafana-integration.md#metrics-available-to-prometheus)。 +- Prometheus 集成为 [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 集群提供了更多监控指标。 + + 你现在可以将 `tidbcloud_disk_read_latency`、`tidbcloud_kv_request_duration` 等更多指标集成到 Prometheus,监控 TiDB Cloud Dedicated 的更多性能维度。 + + 有关可用指标及如何为新老用户启用的详细信息,请参见 [集成 TiDB Cloud 与 Prometheus 和 Grafana(Beta)](/tidb-cloud/monitor-prometheus-and-grafana-integration.md#metrics-available-to-prometheus)。 -- TiKV [标准](/tidb-cloud/size-your-cluster.md#standard-storage)和[性能](/tidb-cloud/size-your-cluster.md#performance-and-plus-storage)存储定价正式发布。 +- TiKV [Standard](/tidb-cloud/size-your-cluster.md#standard-storage) 和 [Performance](/tidb-cloud/size-your-cluster.md#performance-and-plus-storage) 存储定价已正式发布。 - 折扣期将于 **2025 年 6 月 5 日 00:00 UTC** 结束。之后,价格将恢复到标准价格。有关 TiDB Cloud Dedicated 价格的更多信息,请参见 [TiDB Cloud Dedicated 价格详情](https://www.pingcap.com/tidb-dedicated-pricing-details/#node-cost)。 + 优惠期自 **2025 年 6 月 5 日 00:00 UTC** 起结束,届时价格恢复为标准价。关于 TiDB Cloud Dedicated 价格的更多信息,请参见 [TiDB Cloud Dedicated 价格详情](https://www.pingcap.com/tidb-dedicated-pricing-details/#node-cost)。 **控制台变更** -- 增强配置 [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 集群的 TiFlash 节点大小时的交互体验。 +- 优化 [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 集群 TiFlash 节点规格配置的交互体验。 - 现在你可以在创建 TiDB Cloud Dedicated 集群时使用切换开关来控制 TiFlash 配置,使配置体验更加直观和流畅。 + 你现在可以在创建 TiDB Cloud Dedicated 集群时,通过开关按钮控制 TiFlash 配置,使配置过程更加直观流畅。 ## 2025 年 5 月 27 日 -**一般变更** +**通用变更** -- 支持通过 changefeed 将 [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 集群的数据流式传输到 [Apache Pulsar](https://pulsar.apache.org)。 +- [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 集群的 changefeed 现已支持将数据流式同步到 [Apache Pulsar](https://pulsar.apache.org)。 - 此功能使你能够将 TiDB Cloud Dedicated 集群与更多下游系统集成,并满足额外的数据集成需求。要使用此功能,请确保你的 TiDB Cloud Dedicated 集群版本为 v7.5.1 或更高版本。 + 该功能使你可以将 TiDB Cloud Dedicated 集群与更多下游系统集成,满足更多数据集成需求。使用该功能需确保集群版本为 v7.5.1 或更高。 - 更多信息,请参见[导出到 Apache Pulsar](/tidb-cloud/changefeed-sink-to-apache-pulsar.md)。 + 详细信息请参见 [同步到 Apache Pulsar](/tidb-cloud/changefeed-sink-to-apache-pulsar.md)。 ## 2025 年 5 月 13 日 -**一般变更** +**通用变更** -- [TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless) 现在为 AI 应用提供全文搜索功能(beta)。 +- [TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless) 现已支持 AI 应用的全文检索(beta)。 - TiDB Cloud Serverless 现在支持全文搜索(beta),使 AI 和检索增强生成(RAG)应用能够通过精确关键词检索内容。这补充了通过语义相似性检索内容的向量搜索。结合这两种方法可以显著提高 RAG 工作流中的检索准确性和答案质量。主要功能包括: + TiDB Cloud Serverless 现已支持全文检索(beta),使 AI 和 RAG(检索增强生成)应用能够通过精确关键词检索内容。该功能补充了向量检索(按语义相似度检索内容),两者结合可显著提升 RAG 工作流的检索准确性和答案质量。主要特性包括: - - 直接文本搜索:无需嵌入即可直接查询字符串列。 - - 多语言支持:自动检测和分析多种语言的文本,即使在同一个表中也无需指定语言。 - - 基于相关性的排名:使用行业标准的 BM25 算法对结果进行排名,以获得最佳相关性。 - - 原生 SQL 兼容性:与全文搜索无缝使用 SQL 功能,如过滤、分组和连接。 + - 直接文本检索:可直接查询字符串列,无需嵌入向量。 + - 多语言支持:自动检测并分析多语言文本,即使在同一张表中也无需指定语言。 + - 相关性排序:结果采用业界标准 BM25 算法进行相关性排序。 + - 原生 SQL 兼容:可无缝结合 SQL 的过滤、分组、关联等功能进行全文检索。 - 要开始使用,请参见[使用 SQL 进行全文搜索](/tidb-cloud/vector-search-full-text-search-sql.md)或[使用 Python 进行全文搜索](/tidb-cloud/vector-search-full-text-search-python.md)。 + 快速上手请参见 [使用 SQL 进行全文检索](/tidb-cloud/vector-search-full-text-search-sql.md) 或 [使用 Python 进行全文检索](/tidb-cloud/vector-search-full-text-search-python.md)。 -- 增加 [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 集群的最大 TiFlash 节点存储: +- 提升 [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 集群 TiFlash 节点最大存储容量: - - 8 vCPU TiFlash,从 2048 GiB 增加到 4096 GiB - - 32 vCPU TiFlash,从 4096 GiB 增加到 8192 GiB + - 8 vCPU TiFlash:由 2048 GiB 提升至 4096 GiB + - 32 vCPU TiFlash:由 4096 GiB 提升至 8192 GiB - 此增强提高了 TiDB Cloud Dedicated 集群的分析数据存储容量,提升了工作负载扩展效率,并适应不断增长的数据需求。 + 此增强提升了 TiDB Cloud Dedicated 集群的分析型数据存储能力,提高了工作负载扩展效率,满足不断增长的数据需求。 - 更多信息,请参见 [TiFlash 节点存储](/tidb-cloud/size-your-cluster.md#tiflash-node-storage)。 + 详细信息请参见 [TiFlash 节点存储](/tidb-cloud/size-your-cluster.md#tiflash-node-storage)。 -- 通过提供直观的选项来配置和重新安排维护任务,增强维护窗口配置体验。 +- 优化维护窗口配置体验,提供更直观的选项以配置和重新安排维护任务。 - 更多信息,请参见[配置维护窗口](/tidb-cloud/configure-maintenance-window.md)。 + 详细信息请参见 [配置维护窗口](/tidb-cloud/configure-maintenance-window.md)。 -- 延长 TiKV [标准](/tidb-cloud/size-your-cluster.md#standard-storage)和[性能](/tidb-cloud/size-your-cluster.md#performance-and-plus-storage)存储类型的折扣期。促销现在将于 2025 年 6 月 5 日结束。在此日期之后,价格将恢复到标准费率。 +- 延长 TiKV [Standard](/tidb-cloud/size-your-cluster.md#standard-storage) 和 [Performance](/tidb-cloud/size-your-cluster.md#performance-and-plus-storage) 存储类型的优惠期。促销活动现延长至 2025 年 6 月 5 日,届时价格将恢复为标准价。 **控制台变更** -- 优化**备份设置**页面布局,改善 [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 集群的备份配置体验。 +- 优化 [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 集群 **Backup Setting** 页布局,提升备份配置体验。 - 更多信息,请参见[备份和恢复 TiDB Cloud Dedicated 数据](/tidb-cloud/backup-and-restore.md)。 + 详细信息请参见 [备份与恢复 TiDB Cloud Dedicated 数据](/tidb-cloud/backup-and-restore.md)。 ## 2025 年 4 月 22 日 -**一般变更** +**通用变更** -- 现在支持将数据导出到阿里云 OSS。 +- 现已支持导出数据到阿里云 OSS。 - [TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless) 集群现在支持使用 [AccessKey 对](https://www.alibabacloud.com/help/en/ram/user-guide/create-an-accesskey-pair)将数据导出到[阿里云对象存储服务(OSS)](https://www.alibabacloud.com/en/product/object-storage-service)。 + [TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless) 集群现支持使用 [AccessKey 对](https://www.alibabacloud.com/help/en/ram/user-guide/create-an-accesskey-pair) 将数据导出到 [阿里云对象存储服务(OSS)](https://www.alibabacloud.com/en/product/object-storage-service)。 - 更多信息,请参见[从 TiDB Cloud Serverless 导出数据](/tidb-cloud/serverless-export.md#alibaba-cloud-oss)。 + 详细信息请参见 [从 TiDB Cloud Serverless 导出数据](/tidb-cloud/serverless-export.md#alibaba-cloud-oss)。 + +- [TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless) 集群的 TiDB 版本由 [v7.1.3](https://docs.pingcap.com/tidb/v7.1/release-7.1.3) 升级为 [v7.5.2](https://docs.pingcap.com/tidb/v7.5/release-7.5.2)。 ## 2025 年 4 月 15 日 -**一般变更** +**通用变更** -- 支持从[阿里云对象存储服务(OSS)](https://www.alibabacloud.com/en/product/object-storage-service)将数据导入到 [TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless) 集群。 +- 支持从 [阿里云对象存储服务(OSS)](https://www.alibabacloud.com/en/product/object-storage-service) 导入数据到 [TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless) 集群。 - 此功能简化了向 TiDB Cloud Serverless 的数据迁移。你可以使用 AccessKey 对进行身份验证。 + 该功能简化了向 TiDB Cloud Serverless 的数据迁移。你可以使用 AccessKey 对进行认证。 - 更多信息,请参见以下文档: + 详细信息请参见以下文档: - [从 Amazon S3、GCS、Azure Blob Storage 或阿里云 OSS 导入 CSV 文件到 TiDB Cloud Serverless](/tidb-cloud/import-csv-files-serverless.md) - [从 Amazon S3、GCS、Azure Blob Storage 或阿里云 OSS 导入 Apache Parquet 文件到 TiDB Cloud Serverless](/tidb-cloud/import-parquet-files-serverless.md) ## 2025 年 4 月 1 日 -**一般变更** +**通用变更** -- [TiDB 节点组](/tidb-cloud/tidb-node-group-overview.md)功能现在在 AWS 和 Google Cloud 上托管的 [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 集群中正式发布(GA)。 +- [TiDB Node Groups](/tidb-cloud/tidb-node-group-overview.md) 功能现已在托管于 AWS 和 Google Cloud 的 [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 集群上正式(GA)发布。 - 此功能实现了单个集群内的**细粒度计算资源隔离**,帮助你优化多租户或多工作负载场景下的性能和资源分配。 + 该功能支持在单个集群内实现**细粒度计算资源隔离**,帮助你在多租户或多工作负载场景下优化性能和资源分配。 **主要优势:** - **资源隔离**: - - 将 TiDB 节点分组为逻辑隔离的单元,确保一个组中的工作负载不会影响其他组。 - - 防止应用程序或业务单位之间的资源争用。 + - 将 TiDB 节点分组为逻辑隔离单元,确保一个组内的工作负载不会影响其他组。 + - 防止应用或业务单元间的资源争用。 - **简化管理**: - - 在单个集群内管理所有节点组,减少运维开销。 - - 根据需求独立扩展各个组。 + - 在单个集群内统一管理所有节点组,降低运维负担。 + - 可根据需求独立扩缩各节点组。 - 有关优势的更多信息,请参见[技术博客](https://www.pingcap.com/blog/tidb-cloud-node-groups-scaling-workloads-predictable-performance/)。要开始使用,请参见[管理 TiDB 节点组](/tidb-cloud/tidb-node-group-management.md)。 + 详细优势请参见 [技术博客](https://www.pingcap.com/blog/tidb-cloud-node-groups-scaling-workloads-predictable-performance/)。快速上手请参见 [管理 TiDB Node Groups](/tidb-cloud/tidb-node-group-management.md)。 -- 为 AWS 上托管的 [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 集群的 TiKV 节点引入[标准存储](/tidb-cloud/size-your-cluster.md#standard-storage)类型。 +- 在托管于 AWS 的 [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 集群中引入 [Standard storage](/tidb-cloud/size-your-cluster.md#standard-storage) 类型的 TiKV 节点。 - 标准存储类型适用于大多数工作负载,在性能和成本效益之间提供平衡。 + Standard 存储类型适用于大多数工作负载,在性能与成本之间实现平衡。 **主要优势:** - - **性能提升**:为 Raft 日志保留足够的磁盘资源,减少 Raft 和数据存储之间的 I/O 争用,从而提高 TiKV 的读写性能。 - - **稳定性增强**:将关键的 Raft 操作与数据工作负载隔离,确保更可预测的性能。 - - **成本效益**:与之前的存储类型相比,以具有竞争力的价格提供更高的性能。 + - **性能提升**:为 Raft 日志预留充足磁盘资源,减少 Raft 与数据存储间的 I/O 争用,从而提升 TiKV 的读写性能。 + - **稳定性增强**:将关键 Raft 操作与数据工作负载隔离,确保更可预测的性能。 + - **成本效益**:与之前的存储类型相比,以更具竞争力的价格提供更高性能。 **可用性:** - 标准存储类型自动应用于 2025 年 4 月 1 日或之后在 AWS 上创建的新 [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 集群,支持的版本为(版本 >= 7.5.5、8.1.2 或 8.5.0)。现有集群仍使用之前的[基础存储](/tidb-cloud/size-your-cluster.md#basic-storage)类型,无需迁移。 + Standard 存储类型会自动应用于 2025 年 4 月 1 日及以后在 AWS 上新建的 [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 集群,且需支持的版本(>= 7.5.5、8.1.2 或 8.5.0)。现有集群仍使用之前的 [Basic storage](/tidb-cloud/size-your-cluster.md#basic-storage) 类型,无需迁移。 - 标准存储的价格与基础存储不同。更多信息,请参见[定价](https://www.pingcap.com/tidb-dedicated-pricing-details/)。 + Standard 存储类型的价格与 Basic 存储类型不同。详细信息请参见 [价格](https://www.pingcap.com/tidb-dedicated-pricing-details/)。 ## 2025 年 3 月 25 日 **控制台变更** -- 支持 [TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless) 集群的公共端点防火墙规则。 +- [TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless) 集群现已支持为公网访问端点配置防火墙规则。 - 你现在可以为 TiDB Cloud Serverless 集群配置防火墙规则,以控制通过公共端点的访问。直接在 [TiDB Cloud 控制台](https://tidbcloud.com/)中指定允许的 IP 地址或范围以增强安全性。 + 你现在可以在 [TiDB Cloud 控制台](https://tidbcloud.com/) 中为 TiDB Cloud Serverless 集群配置防火墙规则,控制公网端点的访问。可直接指定允许的 IP 地址或范围,提升安全性。 - 更多信息,请参见[为公共端点配置 TiDB Cloud Serverless 防火墙规则](/tidb-cloud/configure-serverless-firewall-rules-for-public-endpoints.md)。 + 详细信息请参见 [为 TiDB Cloud Serverless 公网端点配置防火墙规则](/tidb-cloud/configure-serverless-firewall-rules-for-public-endpoints.md)。 ## 2025 年 3 月 18 日 -**一般变更** +**通用变更** -- 支持为部署在 Google Cloud 上的 [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 集群创建 TiDB 节点组,以增强资源管理灵活性。 +- 支持为部署在 Google Cloud 的 [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 集群创建 TiDB 节点组,提升资源管理灵活性。 - 更多信息,请参见 [TiDB 节点组概述](/tidb-cloud/tidb-node-group-overview.md)。 + 详细信息请参见 [TiDB Node Group 概览](/tidb-cloud/tidb-node-group-overview.md)。 -- 支持在 TiDB Cloud 中存储部署在 AWS 上的 [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 集群的数据库审计日志文件。 +- 支持将数据库审计日志文件存储在 TiDB Cloud 中,适用于部署在 AWS 的 [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 集群。 - 你可以直接从 TiDB Cloud 下载这些审计日志文件。请注意,此功能仅在申请后可用。 + 你可以直接从 TiDB Cloud 下载这些审计日志文件。注意,该功能仅可按需申请。 - 更多信息,请参见[数据库审计日志](/tidb-cloud/tidb-cloud-auditing.md)。 + 详细信息请参见 [数据库审计日志](/tidb-cloud/tidb-cloud-auditing.md)。 -- 通过改进多因素认证(MFA)的管理来增强 TiDB Cloud 账户安全性。此功能适用于 TiDB Cloud 的基于密码的登录。 +- 通过优化多因素认证(MFA)管理,提升 TiDB Cloud 账号安全性。该功能适用于 TiDB Cloud 的密码登录。 - 更多信息,请参见[密码认证](/tidb-cloud/tidb-cloud-password-authentication.md)。 + 详细信息请参见 [密码认证](/tidb-cloud/tidb-cloud-password-authentication.md)。 ## 2025 年 2 月 18 日 **控制台变更** -- 推出 Connected Care,TiDB Cloud 的新支持服务。 +- 推出 Connected Care,TiDB Cloud 的全新支持服务。 - Connected Care 服务旨在通过现代通信工具、主动支持和先进的 AI 功能加强你与 TiDB Cloud 的连接,提供无缝和以客户为中心的体验。 + Connected Care 服务通过现代通信工具、主动支持和先进的 AI 能力,增强你与 TiDB Cloud 的连接,带来无缝且以客户为中心的体验。 - Connected Care 服务引入了以下功能: + Connected Care 服务包含以下功能: - - **诊所服务**:先进的监控和诊断,优化性能。 - - **即时通讯中的 AI 聊天**:通过即时通讯(IM)工具获得即时 AI 帮助。 - - **告警和工单更新的即时通讯订阅**:通过即时通讯及时了解告警和工单进展。 - - **支持工单的即时通讯交互**:通过即时通讯工具创建和处理支持工单。 + - **Clinic service**:高级监控与诊断,优化性能。 + - **AI chat in IM**:通过即时通讯工具获得 AI 实时协助。 + - **IM subscription for alerts and ticket updates**:通过 IM 实时获取告警和工单进展。 + - **IM interaction for support tickets**:可通过 IM 工具创建和跟进支持工单。 - 更多信息,请参见 [Connected Care 概述](/tidb-cloud/connected-care-overview.md)。 + 详细信息请参见 [Connected Care 概览](/tidb-cloud/connected-care-overview.md)。 -- 支持从 GCS 和 Azure Blob Storage 将数据导入到 [TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless) 集群。 +- 支持从 GCS 和 Azure Blob Storage 导入数据到 [TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless) 集群。 - TiDB Cloud Serverless 现在支持从 Google Cloud Storage (GCS) 和 Azure Blob Storage 导入数据。你可以使用 Google Cloud 服务账号密钥或 Azure 共享访问签名(SAS)令牌进行身份验证。此功能简化了向 TiDB Cloud Serverless 的数据迁移。 + TiDB Cloud Serverless 现已支持从 Google Cloud Storage(GCS)和 Azure Blob Storage 导入数据。你可以使用 Google Cloud 服务账号密钥或 Azure SAS token 进行认证。该功能简化了向 TiDB Cloud Serverless 的数据迁移。 - 更多信息,请参见[从 Amazon S3、GCS 或 Azure Blob Storage 导入 CSV 文件到 TiDB Cloud Serverless](/tidb-cloud/import-csv-files-serverless.md)和[从 Amazon S3、GCS 或 Azure Blob Storage 导入 Apache Parquet 文件到 TiDB Cloud Serverless](/tidb-cloud/import-parquet-files-serverless.md)。 + 详细信息请参见 [从 Amazon S3、GCS 或 Azure Blob Storage 导入 CSV 文件到 TiDB Cloud Serverless](/tidb-cloud/import-csv-files-serverless.md) 及 [从 Amazon S3、GCS 或 Azure Blob Storage 导入 Apache Parquet 文件到 TiDB Cloud Serverless](/tidb-cloud/import-parquet-files-serverless.md)。 ## 2025 年 1 月 21 日 **控制台变更** -- 支持每个任务将单个本地 CSV 文件(最大 250 MiB)导入到 [TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless) 集群,从之前的 50 MiB 限制提高。 +- [TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless) 集群现已支持单次任务导入最大 250 MiB 的本地 CSV 文件(此前为 50 MiB)。 - 更多信息,请参见[将本地文件导入到 TiDB Cloud](/tidb-cloud/tidb-cloud-import-local-files.md)。 + 详细信息请参见 [导入本地文件到 TiDB Cloud](/tidb-cloud/tidb-cloud-import-local-files.md)。 ## 2025 年 1 月 14 日 -**一般变更** +**通用变更** -- 支持 [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 集群的新 AWS 区域:`雅加达 (ap-southeast-3)`。 +- [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 集群现已支持新的 AWS 区域:`Jakarta (ap-southeast-3)`。 -- 引入通知功能,使你能够通过 [TiDB Cloud 控制台](https://tidbcloud.com/)即时了解 TiDB Cloud 更新和告警。 +- 推出 Notification 功能,使你可通过 [TiDB Cloud 控制台](https://tidbcloud.com/) 实时获取 TiDB Cloud 更新和告警。 - 更多信息,请参见[通知](/tidb-cloud/notifications.md)。 + 详细信息请参见 [Notifications](/tidb-cloud/notifications.md)。 ## 2025 年 1 月 2 日 -**一般变更** - -- 支持为 [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 集群创建 TiDB 节点组,以增强资源管理灵活性。 - - 更多信息,请参见 [TiDB 节点组概述](/tidb-cloud/tidb-node-group-overview.md)。 +**通用变更** -- 支持通过私有连接(beta)将 [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 集群连接到 AWS 和 Google Cloud 中的通用 Kafka。 +- 支持为 [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 集群创建 TiDB 节点组,提升资源管理灵活性。 - 私有连接利用云提供商的 Private Link 或 Private Service Connect 技术,使 TiDB Cloud VPC 中的 changefeed 能够使用私有 IP 地址连接到客户 VPC 中的 Kafka,就像这些 Kafka 直接托管在 TiDB Cloud VPC 中一样。此功能有助于防止 VPC CIDR 冲突并满足安全合规要求。 + 详细信息请参见 [TiDB Node Group 概览](/tidb-cloud/tidb-node-group-overview.md)。 - - 对于 AWS 中的 Apache Kafka,请按照[在 AWS 中设置自托管 Kafka Private Link 服务](/tidb-cloud/setup-aws-self-hosted-kafka-private-link-service.md)中的说明配置网络连接。 +- 支持通过 Private Connect(beta)将 [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 集群连接到 AWS 和 Google Cloud 上的通用 Kafka。 - - 对于 Google Cloud 中的 Apache Kafka,请按照[在 Google Cloud 中设置自托管 Kafka Private Service Connect](/tidb-cloud/setup-self-hosted-kafka-private-service-connect.md)中的说明配置网络连接。 - - 请注意,使用此功能会产生额外的[私有数据链路成本](/tidb-cloud/tidb-cloud-billing-ticdc-rcu.md#private-data-link-cost)。 - - 更多信息,请参见[导出到 Apache Kafka](/tidb-cloud/changefeed-sink-to-apache-kafka.md#network)。 + Private Connect 利用云厂商的 Private Link 或 Private Service Connect 技术,使 TiDB Cloud VPC 内的 changefeed 能通过私有 IP 连接到客户 VPC 内的 Kafka,就像这些 Kafka 直接部署在 TiDB Cloud VPC 内一样。该功能有助于避免 VPC CIDR 冲突并满足安全合规要求。 -- 为 Kafka changefeed 引入额外的可配置选项: + - 对于 AWS 上的 Apache Kafka,请参见 [在 AWS 上配置自建 Kafka Private Link 服务](/tidb-cloud/setup-aws-self-hosted-kafka-private-link-service.md)。 + - 对于 Google Cloud 上的 Apache Kafka,请参见 [在 Google Cloud 上配置自建 Kafka Private Service Connect](/tidb-cloud/setup-self-hosted-kafka-private-service-connect.md)。 - - 支持使用 Debezium 协议。Debezium 是一个用于捕获数据库变更的工具。它将每个捕获的数据库变更转换为称为事件的消息,并将这些事件发送到 Kafka。更多信息,请参见 [TiCDC Debezium 协议](https://docs.pingcap.com/tidb/v8.1/ticdc-debezium)。 + 注意,使用该功能会产生额外的 [Private Data Link 费用](/tidb-cloud/tidb-cloud-billing-ticdc-rcu.md#private-data-link-cost)。 - - 支持为所有表定义单个分区调度器,或为不同表定义不同的分区调度器。 + 详细信息请参见 [Changefeed Sink to Apache Kafka](/tidb-cloud/changefeed-sink-to-apache-kafka.md#network)。 - - 为 Kafka 消息的分区分配引入两种新的调度器类型:时间戳和列值。 +- Kafka changefeed 新增可配置选项: - 更多信息,请参见[导出到 Apache Kafka](/tidb-cloud/changefeed-sink-to-apache-kafka.md)。 + - 支持使用 Debezium 协议。Debezium 是一种数据库变更捕获工具,会将每次捕获的数据库变更转换为事件消息并发送到 Kafka。详细信息请参见 [TiCDC Debezium 协议](https://docs.pingcap.com/tidb/v8.1/ticdc-debezium)。 + - 支持为所有表定义单一分区分发器,或为不同表定义不同的分区分发器。 + - 新增两种分发器类型:按时间戳和按列值分区分发 Kafka 消息。 -- 增强 TiDB Cloud 中的角色: + 详细信息请参见 [同步到 Apache Kafka](/tidb-cloud/changefeed-sink-to-apache-kafka.md)。 - - 引入 `Project Viewer` 和 `Organization Billing Viewer` 角色,以增强 TiDB Cloud 上的细粒度访问控制。 +- TiDB Cloud 角色增强: + - 新增 `Project Viewer` 和 `Organization Billing Viewer` 角色,实现更细粒度的访问控制。 - 重命名以下角色: - `Organization Member` 改为 `Organization Viewer` - `Organization Billing Admin` 改为 `Organization Billing Manager` - `Organization Console Audit Admin` 改为 `Organization Console Audit Manager` - 更多信息,请参见[身份访问管理](/tidb-cloud/manage-user-access.md#organization-roles)。 + 详细信息请参见 [身份访问管理](/tidb-cloud/manage-user-access.md#organization-roles)。 -- [TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless) 集群的区域高可用性(beta)。 +- [TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless) 集群支持区域高可用(beta)。 - 此功能专为需要最大基础设施冗余和业务连续性的工作负载而设计。主要功能包括: + 该功能适用于对基础设施冗余和业务连续性有极高要求的工作负载。主要功能包括: - - 节点分布在多个可用区,以确保在区域故障时的高可用性。 - - 关键的 OLTP(在线事务处理)组件,如 PD 和 TiKV,在可用区之间复制以实现冗余。 - - 自动故障转移最大限度地减少主要区域故障期间的服务中断。 - - 此功能目前仅在 AWS 东京(ap-northeast-1)区域可用,且只能在集群创建时启用。 - - 更多信息,请参见 [TiDB Cloud Serverless 中的高可用性](/tidb-cloud/serverless-high-availability.md)。 + - 节点分布在多个可用区,确保单区故障时的高可用性。 + - 关键 OLTP 组件(如 PD 和 TiKV)在可用区间冗余复制。 + - 主可用区故障时自动故障转移,最小化服务中断。 -- 将新 [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 集群的默认 TiDB 版本从 [v8.1.1](https://docs.pingcap.com/tidb/v8.1/release-8.1.1) 升级到 [v8.1.2](https://docs.pingcap.com/tidb/v8.1/release-8.1.2)。 + 该功能目前仅在 AWS 东京(ap-northeast-1)区域可用,且仅可在集群创建时启用。 -**控制台变更** + 详细信息请参见 [TiDB Cloud Serverless 高可用](/tidb-cloud/serverless-high-availability.md)。 + +- 新建 [TiDB Cloud Dedicated](/tidb-cloud/select-cluster-tier.md#tidb-cloud-dedicated) 集群的默认 TiDB 版本由 [v8.1.1](https://docs.pingcap.com/tidb/v8.1/release-8.1.1) 升级为 [v8.1.2](https://docs.pingcap.com/tidb/v8.1/release-8.1.2)。 -- 加强数据导出服务: +**控制台变更** - - 支持通过 [TiDB Cloud 控制台](https://tidbcloud.com/)将数据从 [TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless) 导出到 Google Cloud Storage 和 Azure Blob Storage。 +- 数据导出服务增强: - - 支持通过 [TiDB Cloud 控制台](https://tidbcloud.com/)以 Parquet 文件格式导出数据。 + - 支持通过 [TiDB Cloud 控制台](https://tidbcloud.com/) 将 [TiDB Cloud Serverless](/tidb-cloud/select-cluster-tier.md#tidb-cloud-serverless) 数据导出到 Google Cloud Storage 和 Azure Blob Storage。 + - 支持通过 [TiDB Cloud 控制台](https://tidbcloud.com/) 导出 Parquet 格式数据。 - 更多信息,请参见[从 TiDB Cloud Serverless 导出数据](/tidb-cloud/serverless-export.md)和[为 TiDB Cloud Serverless 配置外部存储访问](/tidb-cloud/serverless-external-storage.md)。 + 详细信息请参见 [从 TiDB Cloud Serverless 导出数据](/tidb-cloud/serverless-export.md) 及 [为 TiDB Cloud Serverless 配置外部存储访问](/tidb-cloud/serverless-external-storage.md)。