From 57e8676ffe3697463ee05d45eb441d96397bf769 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Thu, 26 Oct 2023 11:06:33 +0800 Subject: [PATCH 1/5] removed description about not supporting FLOAT4/FLOAT8 (#15294) --- mysql-compatibility.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/mysql-compatibility.md b/mysql-compatibility.md index f959e90d85d7..70a9934dec3e 100644 --- a/mysql-compatibility.md +++ b/mysql-compatibility.md @@ -222,11 +222,7 @@ TiDB 与 MySQL 在日期时间处理上有如下差异: ### 类型系统 -MySQL 支持以下列类型,但 TiDB 不支持: - -+ 不支持 FLOAT4/FLOAT8。 - -+ 不支持 `SQL_TSI_*`(包括 `SQL_TSI_MONTH`、`SQL_TSI_WEEK`、`SQL_TSI_DAY`、`SQL_TSI_HOUR`、`SQL_TSI_MINUTE` 和 `SQL_TSI_SECOND`,但不包括 `SQL_TSI_YEAR`)。 +MySQL 支持 `SQL_TSI_*`(包括 `SQL_TSI_MONTH`、`SQL_TSI_WEEK`、`SQL_TSI_DAY`、`SQL_TSI_HOUR`、`SQL_TSI_MINUTE` 和 `SQL_TSI_SECOND`,但不包括 `SQL_TSI_YEAR`),但 TiDB 不支持。 ### MySQL 弃用功能导致的不兼容问题 From d62474c13f2fed74376076961cecb104dfc73e3f Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Thu, 26 Oct 2023 17:48:35 +0800 Subject: [PATCH 2/5] release-7.1.2.md: fix an issue number (#15297) --- releases/release-7.1.2.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.1.2.md b/releases/release-7.1.2.md index b797ca5ef5cb..d8f5e9638b2c 100644 --- a/releases/release-7.1.2.md +++ b/releases/release-7.1.2.md @@ -100,7 +100,7 @@ TiDB 版本:7.1.2 - 修复使用 BR 恢复 `AUTO_ID_CACHE=1` 的非聚簇索引表时发生重复主键的问题 [#46093](https://github.com/pingcap/tidb/issues/46093) @[tiancaiamao](https://github.com/tiancaiamao) - 修复在静态裁剪模式下查询分区表且查询计划中带有 `IndexLookUp` 时可能报错的问题 [#45757](https://github.com/pingcap/tidb/issues/45757) @[Defined2014](https://github.com/Defined2014) - 修复在对分区表和有 Placement Policy 的表进行分区交换后,往分区表中插入数据可能失败的问题 [#45791](https://github.com/pingcap/tidb/issues/45791) @[mjonss](https://github.com/mjonss) - - 修复使用错误的时区信息对时间字段进行编码的问题 [#46044](https://github.com/pingcap/tidb/issues/46033) @[tangenta](https://github.com/tangenta) + - 修复使用错误的时区信息对时间字段进行编码的问题 [#46033](https://github.com/pingcap/tidb/issues/46033) @[tangenta](https://github.com/tangenta) - 修复当 `tmp` 路径不存在时快速添加索引的 DDL 会卡住的问题 [#45456](https://github.com/pingcap/tidb/issues/45456) @[tangenta](https://github.com/tangenta) - 修复同时升级多个 TiDB 节点时可能阻塞升级过程的问题 [#46288](https://github.com/pingcap/tidb/issues/46228) @[zimulala](https://github.com/zimulala) - 修复分区表由于 split Region 使用参数有误导致 Region 打散效果差的问题 [#46135](https://github.com/pingcap/tidb/issues/46135) @[zimulala](https://github.com/zimulala) From 8a23167d043295b4f8abac534ef5a8f2469868a7 Mon Sep 17 00:00:00 2001 From: Aolin Date: Thu, 26 Oct 2023 19:21:34 +0800 Subject: [PATCH 3/5] Connector/J: fix broken links (#15301) --- best-practices/java-app-best-practices.md | 4 ++-- develop/dev-guide-choose-driver-or-orm.md | 2 +- develop/dev-guide-connect-to-tidb.md | 4 ++-- develop/dev-guide-connection-parameters.md | 4 ++-- develop/dev-guide-third-party-tools-compatibility.md | 2 +- system-variables.md | 2 +- tispark-overview.md | 2 +- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/best-practices/java-app-best-practices.md b/best-practices/java-app-best-practices.md index 49e4d2bf24d1..006cb9c28ee4 100644 --- a/best-practices/java-app-best-practices.md +++ b/best-practices/java-app-best-practices.md @@ -55,7 +55,7 @@ Java 应用尽管可以选择在不同的框架中封装,但在最底层一般 在 JDBC 中通常有以下两种处理方式: -- 设置 [`FetchSize` 为 `Integer.MIN_VALUE`](https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-implementation-notes.html#ResultSet) 让客户端不缓存,客户端通过 StreamingResult 的方式从网络连接上流式读取执行结果。 +- 设置 [`FetchSize` 为 `Integer.MIN_VALUE`](https://dev.mysql.com/doc/connector-j/en/connector-j-reference-implementation-notes.html#ResultSet) 让客户端不缓存,客户端通过 StreamingResult 的方式从网络连接上流式读取执行结果。 使用流式读取数据时,需要将 `resultset` 读取完成或 close 后,才能继续使用该语句进行下次查询,否则会报错 `No statements may be issued when any streaming result sets are open and in use on a given connection. Ensure that you have called .close() on any active streaming result sets before attempting more queries.`。 @@ -67,7 +67,7 @@ TiDB 中同时支持两种方式,但更推荐使用第一种将 `FetchSize` ### MySQL JDBC 参数 -JDBC 实现通常通过 JDBC URL 参数的形式来提供实现相关的配置。这里以 MySQL 官方的 Connector/J 来介绍[参数配置](https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-configuration-properties.html)(如果使用的是 MariaDB,可以参考 [MariaDB 的类似配置](https://mariadb.com/kb/en/library/about-mariadb-connector-j/#optional-url-parameters))。因为配置项较多,这里主要关注几个可能影响到性能的参数。 +JDBC 实现通常通过 JDBC URL 参数的形式来提供实现相关的配置。这里以 MySQL 官方的 Connector/J 来介绍[参数配置](https://dev.mysql.com/doc/connector-j/en/connector-j-reference-configuration-properties.html)(如果使用的是 MariaDB,可以参考 [MariaDB 的类似配置](https://mariadb.com/kb/en/library/about-mariadb-connector-j/#optional-url-parameters))。因为配置项较多,这里主要关注几个可能影响到性能的参数。 #### Prepare 相关参数 diff --git a/develop/dev-guide-choose-driver-or-orm.md b/develop/dev-guide-choose-driver-or-orm.md index 0cb789ad2e09..bc900976a711 100644 --- a/develop/dev-guide-choose-driver-or-orm.md +++ b/develop/dev-guide-choose-driver-or-orm.md @@ -28,7 +28,7 @@ TiDB 兼容 MySQL 的协议,但存在部分与 MySQL 不兼容或有差异的 支持等级:**Full** -按照 [MySQL 文档](https://dev.mysql.com/doc/connector-j/8.0/en/)中的说明下载并配置 Java JDBC 驱动程序即可使用。对于 TiDB v6.3.0 及以上版本,建议使用 MySQL Connector/J 8.0.33 及以上版本。 +按照 [MySQL 文档](https://dev.mysql.com/doc/connector-j/en/)中的说明下载并配置 Java JDBC 驱动程序即可使用。对于 TiDB v6.3.0 及以上版本,建议使用 MySQL Connector/J 8.0.33 及以上版本。 > **建议:** > diff --git a/develop/dev-guide-connect-to-tidb.md b/develop/dev-guide-connect-to-tidb.md index 8b161f095324..0956ff06b7d6 100644 --- a/develop/dev-guide-connect-to-tidb.md +++ b/develop/dev-guide-connect-to-tidb.md @@ -46,7 +46,7 @@ mysqlsh --sql mysql://root@:4000 ## JDBC -你可以使用 [JDBC](https://dev.mysql.com/doc/connector-j/8.0/en/) 驱动连接到 TiDB,这需要创建一个 `MysqlDataSource` 或 `MysqlConnectionPoolDataSource` 对象(它们都实现了 `DataSource` 接口),并使用 `setURL` 函数设置连接字符串。 +你可以使用 [JDBC](https://dev.mysql.com/doc/connector-j/en/) 驱动连接到 TiDB,这需要创建一个 `MysqlDataSource` 或 `MysqlConnectionPoolDataSource` 对象(它们都实现了 `DataSource` 接口),并使用 `setURL` 函数设置连接字符串。 例如: @@ -55,7 +55,7 @@ MysqlDataSource mysqlDataSource = new MysqlDataSource(); mysqlDataSource.setURL("jdbc:mysql://{host}:{port}/{database}?user={username}&password={password}"); ``` -有关 JDBC 连接的更多信息,可参考 [JDBC 官方文档](https://dev.mysql.com/doc/connector-j/8.0/en/)。 +有关 JDBC 连接的更多信息,可参考 [JDBC 官方文档](https://dev.mysql.com/doc/connector-j/en/)。 **连接参数** diff --git a/develop/dev-guide-connection-parameters.md b/develop/dev-guide-connection-parameters.md index cdc2dae1f45c..987fe64871f5 100644 --- a/develop/dev-guide-connection-parameters.md +++ b/develop/dev-guide-connection-parameters.md @@ -128,14 +128,14 @@ Java 应用尽管可以选择在不同的框架中封装,但在最底层一般 在 JDBC 中通常有以下两种处理方式: -- 设置 [**FetchSize** 为 `Integer.MIN_VALUE`](https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-implementation-notes.html#ResultSet) 让客户端不缓存,客户端通过 StreamingResult 的方式从网络连接上流式读取执行结果。 +- 设置 [**FetchSize** 为 `Integer.MIN_VALUE`](https://dev.mysql.com/doc/connector-j/en/connector-j-reference-implementation-notes.html#ResultSet) 让客户端不缓存,客户端通过 StreamingResult 的方式从网络连接上流式读取执行结果。 - 使用 Cursor Fetch,首先需[设置 **FetchSize**](http://makejavafaster.blogspot.com/2015/06/jdbc-fetch-size-performance.html) 为正整数,且在 JDBC URL 中配置 `useCursorFetch = true`。 TiDB 中同时支持两种方式,但更推荐使用第一种将 **FetchSize** 设置为 `Integer.MIN_VALUE` 的方式,比第二种功能实现更简单且执行效率更高。 ### MySQL JDBC 参数 -JDBC 实现通常通过 JDBC URL 参数的形式来提供实现相关的配置。这里以 MySQL 官方的 Connector/J 来介绍[参数配置](https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-configuration-properties.html)(如果使用的是 MariaDB,可以参考 [MariaDB 的类似配置](https://mariadb.com/kb/en/library/about-mariadb-connector-j/#optional-url-parameters))。因为配置项较多,这里主要关注几个可能影响到性能的参数。 +JDBC 实现通常通过 JDBC URL 参数的形式来提供实现相关的配置。这里以 MySQL 官方的 Connector/J 来介绍[参数配置](https://dev.mysql.com/doc/connector-j/en/connector-j-reference-configuration-properties.html)(如果使用的是 MariaDB,可以参考 [MariaDB 的类似配置](https://mariadb.com/kb/en/library/about-mariadb-connector-j/#optional-url-parameters))。因为配置项较多,这里主要关注几个可能影响到性能的参数。 #### Prepare 相关参数 diff --git a/develop/dev-guide-third-party-tools-compatibility.md b/develop/dev-guide-third-party-tools-compatibility.md index 2ef03c30e41a..77f04e4186a6 100644 --- a/develop/dev-guide-third-party-tools-compatibility.md +++ b/develop/dev-guide-third-party-tools-compatibility.md @@ -111,7 +111,7 @@ TiDB 在通讯协议中未设置 `SERVER_QUERY_NO_GOOD_INDEX_USED` 与 `SERVER_Q **描述** -TiDB 不支持 [enablePacketDebug](https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-connp-props-debugging-profiling.html) 参数,这是一个 MySQL Connector/J 用于调试的参数,将保留数据包的 Buffer。这将导致连接的**意外关闭**,**请勿**打开。 +TiDB 不支持 [enablePacketDebug](https://dev.mysql.com/doc/connector-j/en/connector-j-connp-props-debugging-profiling.html) 参数,这是一个 MySQL Connector/J 用于调试的参数,将保留数据包的 Buffer。这将导致连接的**意外关闭**,**请勿**打开。 **规避方法** diff --git a/system-variables.md b/system-variables.md index 3f6d14f4bc67..f32491996a4b 100644 --- a/system-variables.md +++ b/system-variables.md @@ -3144,7 +3144,7 @@ v5.0 后,用户仍可以单独修改以上系统变量(会有废弃警告) > > * [go-sql-driver](https://github.com/go-sql-driver/mysql#multistatements) (`multiStatements`) -> * [Connector/J](https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-configuration-properties.html) (`allowMultiQueries`) +> * [Connector/J](https://dev.mysql.com/doc/connector-j/en/connector-j-reference-configuration-properties.html) (`allowMultiQueries`) > * PHP [mysqli](https://www.php.net/manual/en/mysqli.quickstart.multiple-statement.php) (`mysqli_multi_query`) ### `tidb_opt_agg_push_down` diff --git a/tispark-overview.md b/tispark-overview.md index 0855b91e89f5..3b4708999d1c 100644 --- a/tispark-overview.md +++ b/tispark-overview.md @@ -340,7 +340,7 @@ spark.tispark.jdbc.client_cert_password jdbc_clientstore_ ``` - 对于如何开启 TiDB TLS,请参考 [Enable TLS between TiDB Clients and Servers](/enable-tls-between-clients-and-servers.md)。 -- 对于如何生成 JAVA key store,请参考 [Connecting Securely Using SSL](https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-using-ssl.html)。 +- 对于如何生成 JAVA key store,请参考 [Connecting Securely Using SSL](https://dev.mysql.com/doc/connector-j/en/connector-j-reference-using-ssl.html)。 ### 时区配置 From 2e556546f1828b6b8272f0674efb71d4628880de Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Thu, 26 Oct 2023 19:23:03 +0800 Subject: [PATCH 4/5] chore: update pull_request_template (#15302) --- .github/pull_request_template.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index c684bf939aad..ff2e5c3d33e5 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -20,8 +20,8 @@ For details, see [tips for choosing the affected versions (in Chinese)](https:// - [ ] master (the latest development version) - [ ] v7.5 (TiDB 7.5 versions) +- [ ] v7.4 (TiDB 7.4 versions) - [ ] v7.3 (TiDB 7.3 versions) -- [ ] v7.2 (TiDB 7.2 versions) - [ ] v7.1 (TiDB 7.1 versions) - [ ] v6.5 (TiDB 6.5 versions) - [ ] v6.1 (TiDB 6.1 versions) From 3f4cb95a9a475db8be1ff71a01d0b7b6c32630cb Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Fri, 27 Oct 2023 12:21:34 +0800 Subject: [PATCH 5/5] dumpling: add URI formats (#15289) --- TOC.md | 1 + br/backup-and-restore-overview.md | 2 +- br/backup-and-restore-storages.md | 50 +------------ br/br-incremental-guide.md | 2 +- br/br-pitr-manual.md | 10 +-- br/br-snapshot-guide.md | 2 +- br/use-br-command-line-tool.md | 2 +- dumpling-overview.md | 16 ++++- error-codes.md | 2 +- external-storage-uri.md | 72 +++++++++++++++++++ migrate-large-mysql-shards-to-tidb.md | 2 +- migrate-large-mysql-to-tidb.md | 2 +- sql-statements/sql-statement-backup.md | 2 +- sql-statements/sql-statement-import-into.md | 22 +++--- sql-statements/sql-statement-restore.md | 2 +- system-variables.md | 2 +- ticdc/ticdc-sink-to-cloud-storage.md | 4 +- ticdc/ticdc-sink-to-kafka.md | 4 +- .../tidb-lightning-command-line-full.md | 2 +- .../tidb-lightning-configuration.md | 2 +- tidb-lightning/tidb-lightning-data-source.md | 2 +- .../tidb-lightning-distributed-import.md | 4 +- tidb-lightning/tidb-lightning-overview.md | 5 +- 23 files changed, 129 insertions(+), 85 deletions(-) create mode 100644 external-storage-uri.md diff --git a/TOC.md b/TOC.md index ac20c9244d74..f6901ab5d618 100644 --- a/TOC.md +++ b/TOC.md @@ -1007,6 +1007,7 @@ - [遥测](/telemetry.md) - [错误码](/error-codes.md) - [通过拓扑 label 进行副本调度](/schedule-replicas-by-topology-labels.md) + - [外部存储服务的 URI 格式](/external-storage-uri.md) - 内部组件介绍 - [TiDB 后端任务分布式并行执行框架](/tidb-distributed-execution-framework.md) - [TiDB 全局排序](/tidb-global-sort.md) diff --git a/br/backup-and-restore-overview.md b/br/backup-and-restore-overview.md index f6af417732fa..e0a38e536082 100644 --- a/br/backup-and-restore-overview.md +++ b/br/backup-and-restore-overview.md @@ -100,7 +100,7 @@ TiDB 备份恢复功能可以用于满足以下业务的需求: TiDB 支持将数据备份到 Amazon S3、Google Cloud Storage (GCS)、Azure Blob Storage、NFS,或者实现 S3 协议的其他文件存储服务。更多备份存储的详细信息,请参考如下内容: -- [使用 URI 格式指定备份存储](/br/backup-and-restore-storages.md#uri-格式) +- [使用 URI 格式指定备份存储](/external-storage-uri.md) - [配置备份存储的访问权限](/br/backup-and-restore-storages.md#鉴权) ## 兼容性 diff --git a/br/backup-and-restore-storages.md b/br/backup-and-restore-storages.md index cfeac9e982b5..9c2ff0664e5b 100644 --- a/br/backup-and-restore-storages.md +++ b/br/backup-and-restore-storages.md @@ -32,59 +32,13 @@ BACKUP DATABASE * TO 's3://bucket-name/prefix' SEND_CREDENTIALS_TO_TIKV = FALSE; ### 格式说明 -本部分介绍存储服务的 URI 格式: +外部存储服务的 URI 格式如下: ```shell [scheme]://[host]/[path]?[parameters] ``` - -
- -- `scheme`:`s3` -- `host`:`bucket name` -- `parameters`: - - - `access-key`:访问密钥 - - `secret-access-key`:秘密访问密钥 - - `session-token`:临时会话令牌(BR 尚不支持该参数) - - `use-accelerate-endpoint`:是否在 Amazon S3 上使用加速端点,默认为 `false` - - `endpoint`:Amazon S3 兼容服务自定义端点的 URL,例如 `` - - `force-path-style`:使用路径类型 (path-style),而不是虚拟托管类型 (virtual-hosted-style),默认为 `true` - - `storage-class`:上传对象的存储类别,例如 `STANDARD`、`STANDARD_IA` - - `sse`:加密上传的服务端加密算法,可以设置为空、`AES256` 或 `aws:kms` - - `sse-kms-key-id`:如果 `sse` 设置为 `aws:kms`,则使用该参数指定 KMS ID - - `acl`:上传对象的标准 ACL (Canned ACL),例如 `private`、`authenticated-read` - - `role-arn`:当需要使用特定的 [IAM 角色](https://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/id_roles.html)来访问第三方 Amazon S3 的数据时,使用这个参数来指定 IAM 角色的对应 [Amazon Resource Name (ARN)](https://docs.aws.amazon.com/zh_cn/general/latest/gr/aws-arns-and-namespaces.html)(例如 `arn:aws:iam::888888888888:role/my-role`)。关于使用 IAM 角色访问第三方 Amazon S3 数据的场景,请参考 [AWS 相关文档介绍](https://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html)。 - - `external-id`:当需要使用特定的 [IAM 角色](https://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/id_roles.html)来访问第三方 Amazon S3 的数据时,可能需要同时提供正确的[外部 ID](https://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html) 来确保用户有权限代入该 IAM 角色。这个参数用来指定对应的外部 ID,确保成功代入 IAM 角色。外部 ID 可以是任意字符串,并且不是必须的,一般由控制 Amazon S3 数据访问的第三方来指定。如果第三方对于 IAM 角色没有要求指定外部 ID,则可以不需要提供该参数也能顺利代入对应的 IAM 角色,从而访问对应的 Amazon S3 数据。 - -
-
- -- `scheme`:`gcs` 或 `gs` -- `host`:`bucket name` -- `parameters`: - - - `credentials-file`:迁移工具节点上凭证 JSON 文件的路径 - - `storage-class`:上传对象的存储类别,例如 `STANDARD` 或 `COLDLINE` - - `predefined-acl`:上传对象的预定义 ACL,例如 `private` 或 `project-private` - -
-
- -- `scheme`:`azure` 或 `azblob` -- `host`:`container name` -- `parameters`: - - - `account-name`:存储账户名 - - `account-key`:访问密钥 - - `sas-token`:共享访问签名令牌 - - `access-tier`:上传对象的存储类别,例如 `Hot`、`Cool`、`Archive`,默认值为该存储账户的默认访问层。 - - `encryption-scope`:服务端的[加密范围 (Encryption Scope)](https://learn.microsoft.com/zh-cn/azure/storage/blobs/encryption-scope-manage?tabs=powershell#upload-a-blob-with-an-encryption-scope) - - `encryption-key`:服务端使用的[加密密钥 (Encryption Key)](https://learn.microsoft.com/zh-cn/azure/storage/blobs/encryption-customer-provided-keys),采用的加密算法为 AES256 - -
-
+关于 URI 格式的详细信息,请参考[外部存储服务的 URI 格式](/external-storage-uri.md)。 ### URI 示例 diff --git a/br/br-incremental-guide.md b/br/br-incremental-guide.md index e53eb7e5143b..da1872a5c856 100644 --- a/br/br-incremental-guide.md +++ b/br/br-incremental-guide.md @@ -32,7 +32,7 @@ tiup br backup full --pd "${PD_IP}:2379" \ - `--lastbackupts`:上一次的备份时间戳。 - `--ratelimit`:**每个 TiKV** 执行备份任务的速度上限(单位 MiB/s)。 -- `storage`:数据备份到存储地址。增量备份数据需要与快照备份数据保存在不同的路径下,例如上例保存在全量备份数据下的 `incr` 目录中。详细参考[备份存储 URI 配置](/br/backup-and-restore-storages.md#uri-格式)。 +- `storage`:数据备份到存储地址。增量备份数据需要与快照备份数据保存在不同的路径下,例如上例保存在全量备份数据下的 `incr` 目录中。关于 URI 格式的详细信息,请参考[外部存储服务的 URI 格式](/external-storage-uri.md)。 ## 恢复增量备份数据 diff --git a/br/br-pitr-manual.md b/br/br-pitr-manual.md index 416a20d5b4b8..f3d1623ac6c1 100644 --- a/br/br-pitr-manual.md +++ b/br/br-pitr-manual.md @@ -78,7 +78,7 @@ Global Flags: - `task-name`:指定日志备份任务名。该名称也用于查询备份状态、暂停、重启和恢复备份任务等操作。 - `ca`、`cert`、`key`:指定使用 mTLS 加密方式与 TiKV 和 PD 进行通讯。 - `--pd`:指定备份集群的 PD 访问地址。br 命令行工具需要访问 PD,发起日志备份任务。 -- `--storage`:指定备份存储地址。日志备份支持以 Amazon S3、Google Cloud Storage (GCS)、Azure Blob Storage 为备份存储,以上命令以 S3 为示例。详细参考[备份存储 URI 格式](/br/backup-and-restore-storages.md#uri-格式)。 +- `--storage`:指定备份存储地址。日志备份支持以 Amazon S3、Google Cloud Storage (GCS)、Azure Blob Storage 为备份存储,以上命令以 S3 为示例。关于 URI 格式的详细信息,请参考[外部存储服务的 URI 格式](/external-storage-uri.md)。 使用示例: @@ -284,7 +284,7 @@ Global Flags: - `--dry-run`:运行命令,但是不删除文件。 - `--until`:早于该参数指定时间点的日志备份数据会被删除。建议使用快照备份的时间点作为该参数值。 -- `--storage`:指定备份存储地址。日志备份支持以 Amazon S3、Google Cloud Storage (GCS)、Azure Blob Storage 为备份存储。详细参考[备份存储 URI 格式](/br/backup-and-restore-storages.md#uri-格式)。 +- `--storage`:指定备份存储地址。日志备份支持以 Amazon S3、Google Cloud Storage (GCS)、Azure Blob Storage 为备份存储。关于 URI 格式的详细信息,请参考[外部存储服务的 URI 格式](/external-storage-uri.md)。 使用示例: @@ -325,7 +325,7 @@ Global Flags: 该命令只需要访问备份存储,不需要访问备份集群。 -以上示例中,`--storage` 为常用参数,它用来指定备份存储地址。日志备份支持以 Amazon S3、Google Cloud Storage (GCS)、Azure Blob Storage 为备份存储。详细参考[备份存储 URI 格式](/br/backup-and-restore-storages.md#uri-格式)。 +以上示例中,`--storage` 为常用参数,它用来指定备份存储地址。日志备份支持以 Amazon S3、Google Cloud Storage (GCS)、Azure Blob Storage 为备份存储。关于 URI 格式的详细信息,请参考[外部存储服务的 URI 格式](/external-storage-uri.md)。 使用示例: @@ -369,12 +369,12 @@ Global Flags: 以上示例只展示了常用的参数,这些参数作用如下: -- `--full-backup-storage`:指定快照(全量)备份的存储地址。如果你要使用 PITR,需要指定该参数,并选择恢复时间点之前最近的快照备份;如果只恢复日志备份数据,则不需要指定该参数。快照备份支持以 Amazon S3、Google Cloud Storage (GCS)、Azure Blob Storage 为备份存储。详细参考[备份存储 URI 格式](/br/backup-and-restore-storages.md#uri-格式)。 +- `--full-backup-storage`:指定快照(全量)备份的存储地址。如果你要使用 PITR,需要指定该参数,并选择恢复时间点之前最近的快照备份;如果只恢复日志备份数据,则不需要指定该参数。快照备份支持以 Amazon S3、Google Cloud Storage (GCS)、Azure Blob Storage 为备份存储。关于 URI 格式的详细信息,请参考[外部存储服务的 URI 格式](/external-storage-uri.md)。 - `--restored-ts`:指定恢复到的时间点。如果没有指定该参数,则恢复到日志备份数据最后的可恢复时间点(备份数据的 checkpoint)。 - `--start-ts`:指定日志备份恢复的起始时间点。如果你只恢复日志备份数据,不恢复快照备份,需要指定这个参数。 - `ca`、`cert`、`key`:指定使用 mTLS 加密方式与 TiKV 和 PD 进行通讯。 - `--pd`:指定恢复集群的 PD 访问地址。 -- `--storage`:指定备份存储地址。日志备份支持以 Amazon S3、Google Cloud Storage (GCS)、Azure Blob Storage 为备份存储。详细参考[备份存储 URI 格式](/br/backup-and-restore-storages.md#uri-格式)。 +- `--storage`:指定备份存储地址。日志备份支持以 Amazon S3、Google Cloud Storage (GCS)、Azure Blob Storage 为备份存储。关于 URI 格式的详细信息,请参考[外部存储服务的 URI 格式](/external-storage-uri.md)。 使用示例: diff --git a/br/br-snapshot-guide.md b/br/br-snapshot-guide.md index 8a928344ac1e..5524f7d74507 100644 --- a/br/br-snapshot-guide.md +++ b/br/br-snapshot-guide.md @@ -34,7 +34,7 @@ tiup br backup full --pd "${PD_IP}:2379" \ 以上命令中: - `--backupts`:快照对应的物理时间点,格式可以是 [TSO](/glossary.md#tso) 或者时间戳,例如 `400036290571534337` 或者 `2018-05-11 01:42:23`。如果该快照的数据被垃圾回收 (GC) 了,那么 `br backup` 命令会报错并退出。如果你没有指定该参数,那么 br 会选取备份开始的时间点所对应的快照。 -- `--storage`:数据备份到的存储地址。快照备份支持以 Amazon S3、Google Cloud Storage、Azure Blob Storage 为备份存储,以上命令以 Amazon S3 为示例。详细存储地址格式请参考[备份存储 URI 配置](/br/backup-and-restore-storages.md#uri-格式)。 +- `--storage`:数据备份到的存储地址。快照备份支持以 Amazon S3、Google Cloud Storage、Azure Blob Storage 为备份存储,以上命令以 Amazon S3 为示例。详细存储地址格式请参考[外部存储服务的 URI 格式](/external-storage-uri.md)。 - `--ratelimit`:**每个 TiKV** 备份数据的速度上限,单位为 MiB/s。 在快照备份过程中,终端会显示备份进度条。在备份完成后,会输出备份耗时、速度、备份数据大小等信息。 diff --git a/br/use-br-command-line-tool.md b/br/use-br-command-line-tool.md index b26a6606ef8f..ea7cdd9b43e5 100644 --- a/br/use-br-command-line-tool.md +++ b/br/use-br-command-line-tool.md @@ -42,7 +42,7 @@ br backup full --pd "${PD_IP}:2379" \ ### 常用选项 * `--pd`:PD 访问地址选项,例如 `"${PD_IP}:2379"`。 -* `-s` 或 `--storage`:备份数据的存储地址选项。TiDB 备份恢复支持以 Amazon S3、Google Cloud Storage (GCS)、Azure Blob Storage 及 NFS 为备份存储。详细参考[备份存储 URI 配置](/br/backup-and-restore-storages.md#uri-格式)。 +* `-s` 或 `--storage`:备份数据的存储地址选项。TiDB 备份恢复支持以 Amazon S3、Google Cloud Storage (GCS)、Azure Blob Storage 及 NFS 为备份存储。关于 URI 格式的详细信息,请参考[外部存储服务的 URI 格式](/external-storage-uri.md)。 * `--ca`:指定 PEM 格式的受信任 CA 的证书文件路径。 * `--cert`:指定 PEM 格式的 SSL 证书文件路径。 * `--key`:指定 PEM 格式的 SSL 证书密钥文件路径。 diff --git a/dumpling-overview.md b/dumpling-overview.md index cd3982aa86cc..3723cd54d76a 100644 --- a/dumpling-overview.md +++ b/dumpling-overview.md @@ -76,7 +76,7 @@ dumpling -u root -P 4000 -h 127.0.0.1 --filetype sql -t 8 -o /tmp/test -r 200000 以上命令中: - `-h`、`-P`、`-u` 分别代表地址、端口、用户。如果需要密码验证,可以使用 `-p $YOUR_SECRET_PASSWORD` 将密码传给 Dumpling。 -- `-o`(或 `--output`)用于选择存储导出文件的目录,支持本地文件的绝对路径或[外部存储 URI 格式](/br/backup-and-restore-storages.md#uri-格式)。 +- `-o`(或 `--output`)用于选择存储导出文件的目录,支持本地文件的绝对路径或[外部存储服务的 URI 格式](#存储服务的-uri-格式说明)。 - `-t` 用于指定导出的线程数。增加线程数会增加 Dumpling 并发度提高导出速度,但也会加大数据库内存消耗,因此不宜设置过大。一般不超过 64。 - `-r` 用于开启表内并发加速导出。默认值是 `0`,表示不开启。取值大于 0 表示开启,取值是 INT 类型。当数据源为 TiDB 时,设置 `-r` 参数大于 0 表示使用 TiDB region 信息划分区间,同时减少内存使用。具体取值不影响划分算法。对数据源为 MySQL 且表的主键是 INT 的场景,该参数也有表内并发效果。 - `-F` 选项用于指定单个文件的最大大小,单位为 `MiB`,可接受类似 `5GiB` 或 `8KB` 的输入。如果你想使用 TiDB Lightning 将该文件加载到 TiDB 实例中,建议将 `-F` 选项的值保持在 256 MiB 或以下。 @@ -85,6 +85,16 @@ dumpling -u root -P 4000 -h 127.0.0.1 --filetype sql -t 8 -o /tmp/test -r 200000 > > 如果导出的单表大小超过 10 GB,**强烈建议**使用 `-r` 和 `-F` 参数。 +#### 存储服务的 URI 格式说明 + +本部分介绍 Amazon S3、GCS、和 Azure Blob Storage 存储服务的 URI 格式。基本格式如下: + +```shell +[scheme]://[host]/[path]?[parameters] +``` + +关于 URI 格式的详细信息,请参考[外部存储服务的 URI 格式](/external-storage-uri.md)。 + ### 导出为 CSV 文件 你可以通过使用 `--filetype csv` 导出数据到 CSV 文件。 @@ -191,7 +201,7 @@ export AWS_ACCESS_KEY_ID=${AccessKey} export AWS_SECRET_ACCESS_KEY=${SecretKey} ``` -Dumpling 同时还支持从 `~/.aws/credentials` 读取凭证文件。Dumpling 导出到 Amazon S3 的配置参数与 BR 大致相同,更多参数描述,请参考[外部存储 URI 格式](/br/backup-and-restore-storages.md#uri-格式)。 +Dumpling 同时还支持从 `~/.aws/credentials` 读取凭证文件。更多参数描述,请参考[外部存储服务的 URI 格式](/external-storage-uri.md)。 {{< copyable "shell-regular" >}} @@ -346,7 +356,7 @@ SET GLOBAL tidb_gc_life_time = '10m'; | -s 或--statement-size | 控制 `INSERT` SQL 语句的大小,单位 bytes | | -F 或 --filesize | 将 table 数据划分出来的文件大小,需指明单位(如 `128B`, `64KiB`, `32MiB`, `1.5GiB`) | | --filetype| 导出文件类型(csv/sql) | "sql" | -| -o 或 --output | 导出本地文件的绝对路径或[外部存储 URI 格式](/br/backup-and-restore-storages.md#uri-格式) | "./export-${time}" | +| -o 或 --output | 导出本地文件的绝对路径或[外部存储服务的 URI 格式](/external-storage-uri.md) | "./export-${time}" | | -S 或 --sql | 根据指定的 sql 导出数据,该选项不支持并发导出 | | --consistency | flush: dump 前用 FTWRL
snapshot: 通过 TSO 来指定 dump 某个快照时间点的 TiDB 数据
lock: 对需要 dump 的所有表执行 `lock tables read` 命令
none: 不加锁 dump,无法保证一致性
auto: 对 MySQL 使用 --consistency flush;对 TiDB 使用 --consistency snapshot | "auto" | | --snapshot | snapshot tso,只在 consistency=snapshot 下生效 | diff --git a/error-codes.md b/error-codes.md index a652baa416f6..b12dc3b80078 100644 --- a/error-codes.md +++ b/error-codes.md @@ -307,7 +307,7 @@ TiDB 兼容 MySQL 的错误码,在大多数情况下,返回和 MySQL 一样 * Error Number: 8158 - 传入的文件路径不合法。请根据具体的错误提示进行处理。S3/GCS 路径设置可参考[外部存储](/br/backup-and-restore-storages.md#uri-格式)。 + 传入的文件路径不合法。请根据具体的错误提示进行处理。S3 和 GCS 路径设置可参考[外部存储服务的 URI 格式](/external-storage-uri.md)。 * Error Number: 8159 diff --git a/external-storage-uri.md b/external-storage-uri.md new file mode 100644 index 000000000000..2ba0f07ada8d --- /dev/null +++ b/external-storage-uri.md @@ -0,0 +1,72 @@ +--- +title: 外部存储服务的 URI 格式 +summary: 介绍了外部存储服务 Amazon S3、GCS、和 Azure Blob Storage 的 URI 格式。 +--- + +# 外部存储服务的 URI 格式 + +本文介绍 Amazon S3、GCS、和 Azure Blob Storage 存储服务的 URI 格式。基本格式如下: + +```shell +[scheme]://[host]/[path]?[parameters] +``` + +## Amazon S3 URI 格式 + +- `scheme`:`s3` +- `host`:`bucket name` +- `parameters`: + + - `access-key`:访问密钥 + - `secret-access-key`:秘密访问密钥 + - `session-token`:临时会话令牌(BR 尚不支持该参数) + - `use-accelerate-endpoint`:是否在 Amazon S3 上使用加速端点,默认为 `false` + - `endpoint`:Amazon S3 兼容服务自定义端点的 URL,例如 `` + - `force-path-style`:使用路径类型 (path-style),而不是虚拟托管类型 (virtual-hosted-style),默认为 `true` + - `storage-class`:上传对象的存储类别,例如 `STANDARD`、`STANDARD_IA` + - `sse`:加密上传的服务端加密算法,可以设置为空、`AES256` 或 `aws:kms` + - `sse-kms-key-id`:如果 `sse` 设置为 `aws:kms`,则使用该参数指定 KMS ID + - `acl`:上传对象的标准 ACL (Canned ACL),例如 `private`、`authenticated-read` + - `role-arn`:当需要使用特定的 [IAM 角色](https://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/id_roles.html)来访问第三方 Amazon S3 的数据时,使用这个参数来指定 IAM 角色的对应 [Amazon Resource Name (ARN)](https://docs.aws.amazon.com/zh_cn/general/latest/gr/aws-arns-and-namespaces.html)(例如 `arn:aws:iam::888888888888:role/my-role`)。关于使用 IAM 角色访问第三方 Amazon S3 数据的场景,请参考 [AWS 相关文档介绍](https://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html)。 + - `external-id`:当需要使用特定的 [IAM 角色](https://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/id_roles.html)来访问第三方 Amazon S3 的数据时,可能需要同时提供正确的[外部 ID](https://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html) 来确保用户有权限代入该 IAM 角色。这个参数用来指定对应的外部 ID,确保成功代入 IAM 角色。外部 ID 可以是任意字符串,并且不是必须的,一般由控制 Amazon S3 数据访问的第三方来指定。如果第三方对于 IAM 角色没有要求指定外部 ID,则可以不需要提供该参数也能顺利代入对应的 IAM 角色,从而访问对应的 Amazon S3 数据。 + +示例: + +```shell +s3://external/backup-20220915?access-key=${access-key}&secret-access-key=${secret-access-key}" +``` + +## GCS URI 格式 + +- `scheme`:`gcs` 或 `gs` +- `host`:`bucket name` +- `parameters`: + + - `credentials-file`:迁移工具节点上凭证 JSON 文件的路径 + - `storage-class`:上传对象的存储类别,例如 `STANDARD` 或 `COLDLINE` + - `predefined-acl`:上传对象的预定义 ACL,例如 `private` 或 `project-private` + +示例: + +```shell +gcs://external/backup-20220915?credentials-file=${credentials-file-path} +``` + +## Azure Blob Storage URI 格式 + +- `scheme`:`azure` 或 `azblob` +- `host`:`container name` +- `parameters`: + + - `account-name`:存储账户名 + - `account-key`:访问密钥 + - `sas-token`:共享访问签名令牌 + - `access-tier`:上传对象的存储类别,例如 `Hot`、`Cool`、`Archive`,默认值为该存储账户的默认访问层。 + - `encryption-scope`:服务端的[加密范围 (Encryption Scope)](https://learn.microsoft.com/zh-cn/azure/storage/blobs/encryption-scope-manage?tabs=powershell#upload-a-blob-with-an-encryption-scope) + - `encryption-key`:服务端使用的[加密密钥 (Encryption Key)](https://learn.microsoft.com/zh-cn/azure/storage/blobs/encryption-customer-provided-keys),采用的加密算法为 AES256 + +示例: + +```shell +azure://external/backup-20220915account-name=${account-name}&account-key=${account-key} +``` diff --git a/migrate-large-mysql-shards-to-tidb.md b/migrate-large-mysql-shards-to-tidb.md index 6d401ebb5d5f..8369cc3abdae 100644 --- a/migrate-large-mysql-shards-to-tidb.md +++ b/migrate-large-mysql-shards-to-tidb.md @@ -77,7 +77,7 @@ tiup dumpling -h ${ip} -P 3306 -u root -t 16 -r 200000 -F 256MB -B my_db1 -f 'my | `-P` 或 `--port` | MySQL 数据库的端口 | | `-h` 或 `--host` | MySQL 数据库的 IP 地址 | | `-t` 或 `--thread` | 导出的线程数。增加线程数会增加 Dumpling 并发度提高导出速度,但也会加大数据库内存消耗,因此不宜设置过大,一般不超过 64| -| `-o` 或 `--output` | 存储导出文件的目录,支持本地文件路径或[外部存储 URI 格式](/br/backup-and-restore-storages.md#uri-格式) | +| `-o` 或 `--output` | 存储导出文件的目录,支持本地文件路径或[外部存储服务的 URI 格式](/external-storage-uri.md) | | `-r` 或 `--row` | 用于指定单个文件的最大行数,指定该参数后 Dumpling 会开启表内并发加速导出,同时减少内存使用 | | `-F` | 指定单个文件的最大大小,单位为 MiB。强烈建议使用`-F`参数以避免单表过大导致备份过程中断 | | `-B` 或 `--database` | 导出指定数据库 | diff --git a/migrate-large-mysql-to-tidb.md b/migrate-large-mysql-to-tidb.md index 9ed487a1505f..d4ba5a1a83f0 100644 --- a/migrate-large-mysql-to-tidb.md +++ b/migrate-large-mysql-to-tidb.md @@ -65,7 +65,7 @@ SELECT table_name,table_schema,SUM(data_length)/1024/1024 AS data_length,SUM(ind | `-P` 或 `--port` | MySQL 数据库的端口 | | `-h` 或 `--host` | MySQL 数据库的 IP 地址 | | `-t` 或 `--thread` | 导出的线程数。增加线程数会增加 Dumpling 并发度提高导出速度,但也会加大数据库内存消耗,因此不宜设置过大,一般不超过 64 | - | `-o` 或 `--output` | 存储导出文件的目录,支持本地文件路径或[外部存储 URI 格式](/br/backup-and-restore-storages.md#uri-格式) | + | `-o` 或 `--output` | 存储导出文件的目录,支持本地文件路径或[外部存储服务的 URI 格式](/external-storage-uri.md) | | `-r` 或 `--row` | 用于指定单个文件的最大行数,指定该参数后 Dumpling 会开启表内并发加速导出,同时减少内存使用 | | `-F` | 指定单个文件的最大大小,单位为 MiB。强烈建议使用 `-F` 参数以避免单表过大导致备份过程中断 | | `-B` 或 `--database` | 导出指定数据库 | diff --git a/sql-statements/sql-statement-backup.md b/sql-statements/sql-statement-backup.md index 788cceccf44e..a2801f5c09d4 100644 --- a/sql-statements/sql-statement-backup.md +++ b/sql-statements/sql-statement-backup.md @@ -106,7 +106,7 @@ BR 支持备份数据到 Amazon S3 或 Google Cloud Storage (GCS): BACKUP DATABASE `test` TO 's3://example-bucket-2020/backup-05/?access-key={YOUR_ACCESS_KEY}&secret-access-key={YOUR_SECRET_KEY}'; ``` -有关详细的 URL 语法,见[外部存储 URI 格式](/br/backup-and-restore-storages.md#uri-格式)。 +有关详细的 URL 语法,见[外部存储服务的 URI 格式](/external-storage-uri.md)。 当运行在云环境中时,不能分发凭证,可设置 `SEND_CREDENTIALS_TO_TIKV` 选项为 `FALSE`: diff --git a/sql-statements/sql-statement-import-into.md b/sql-statements/sql-statement-import-into.md index 2d55c3da3b4e..e38a8dcceab1 100644 --- a/sql-statements/sql-statement-import-into.md +++ b/sql-statements/sql-statement-import-into.md @@ -11,9 +11,9 @@ summary: TiDB 数据库中 IMPORT INTO 的使用概况。 > > 目前该语句为实验特性,不建议在生产环境中使用。 -`IMPORT INTO` 支持导入存储在 Amazon S3、GCS 和 TiDB 本地的数据文件。 +`IMPORT INTO` 支持导入存储在 Amazon S3、GCS、Azure Blob Storage 和 TiDB 本地的数据文件。 -- 对于存储在 S3 或 GCS 的数据文件,`IMPORT INTO` 支持通过[后端任务分布式框架](/tidb-distributed-execution-framework.md)运行。 +- 对于存储在 S3、GCS 或 Azure Blob Storage 的数据文件,`IMPORT INTO` 支持通过[后端任务分布式框架](/tidb-distributed-execution-framework.md)运行。 - 当此框架功能开启时(即 [tidb_enable_dist_task](/system-variables.md#tidb_enable_dist_task-从-v710-版本开始引入) 为 `ON`),`IMPORT INTO` 会将一个数据导入任务拆分成多个子任务并分配到各个 TiDB 节点上运行,以提高导入效率。 - 当此框架功能关闭时,`IMPORT INTO` 仅支持在当前用户连接的 TiDB 节点上运行。 @@ -88,9 +88,9 @@ SET 表达式左侧只能引用 `ColumnNameOrUserVarList` 中没有的列名。 ### fileLocation -用于指定数据文件的存储位置,该位置可以是 S3 或 GCS URI 路径,也可以是 TiDB 本地文件路径。 +用于指定数据文件的存储位置,该位置可以是 S3、GCS 或 Azure Blob Storage URI 路径,也可以是 TiDB 本地文件路径。 -- S3 或 GCS URI 路径:配置详见[外部存储](/br/backup-and-restore-storages.md#uri-格式)。 +- S3、GCS 或 Azure Blob Storage URI 路径:配置详见[外部存储服务的 URI 格式](/external-storage-uri.md)。 - TiDB 本地文件路径:必须为绝对路径,数据文件后缀必须为 `.csv`、`.sql` 或 `.parquet`。确保该路径对应的文件存储在当前用户连接的 TiDB 节点上,且当前连接的用户有 `FILE` 权限。 > **注意:** @@ -131,7 +131,7 @@ SET 表达式左侧只能引用 `ColumnNameOrUserVarList` 中没有的列名。 | `MAX_WRITE_SPEED=''` | 所有格式 | 控制写入到单个 TiKV 的速度,默认无速度限制。例如设置为 `1MiB`,则限制写入速度为 1 MiB/s。| | `CHECKSUM_TABLE=''` | 所有格式 | 配置是否在导入完成后对目标表是否执行 CHECKSUM 检查来验证导入的完整性。可选的配置项为 `"required"`(默认)、`"optional"` 和 `"off"`。`"required"` 表示在导入完成后执行 CHECKSUM 检查,如果 CHECKSUM 检查失败,则会报错退出。`"optional"` 表示在导入完成后执行 CHECKSUM 检查,如果报错,会输出一条警告日志并忽略报错。`"off"` 表示导入结束后不执行 CHECKSUM 检查。 | | `DETACHED` | 所有格式 | 该参数用于控制 `IMPORT INTO` 是否异步执行。开启该参数后,执行 `IMPORT INTO` 会立即返回该导入任务的 `Job_ID` 等信息,且该任务会在后台异步执行。 | -| `CLOUD_STORAGE_URI` | 所有格式 | 指定编码后的 KV 数据[全局排序](#全局排序)的目标存储地址。未指定该参数时,`IMPORT INTO` 会根据系统变量 [`tidb_cloud_storage_uri`](/system-variables.md#tidb_cloud_storage_uri-从-v740-版本开始引入) 的值来确定是否使用全局排序,如果该系统变量指定了目标存储地址,就使用指定的地址进行全局排序。当指定该参数时,如果参数值不为空,`IMPORT INTO` 会使用该参数值作为目标存储地址;如果参数值为空,则表示强制使用本地排序。目前目标存储地址仅支持 S3,具体 URI 格式配置详见[外部存储](/br/backup-and-restore-storages.md#uri-格式)。注意当使用该功能时,所有 TiDB 节点都需要有目标 S3 bucket 的读写权限。 | +| `CLOUD_STORAGE_URI` | 所有格式 | 指定编码后的 KV 数据[全局排序](#全局排序)的目标存储地址。未指定该参数时,`IMPORT INTO` 会根据系统变量 [`tidb_cloud_storage_uri`](/system-variables.md#tidb_cloud_storage_uri-从-v740-版本开始引入) 的值来确定是否使用全局排序,如果该系统变量指定了目标存储地址,就使用指定的地址进行全局排序。当指定该参数时,如果参数值不为空,`IMPORT INTO` 会使用该参数值作为目标存储地址;如果参数值为空,则表示强制使用本地排序。目前目标存储地址仅支持 Amazon S3,具体 Amazon S3 URI 格式配置,请参见 [Amazon S3 URI 格式](/external-storage-uri.md#amazon-s3-uri-格式)。注意当使用该功能时,所有 TiDB 节点都需要有目标 Amazon S3 bucket 的读写权限。 | ## 压缩文件 @@ -230,7 +230,7 @@ IMPORT INTO t(id, name, @1) FROM '/path/to/file.csv' WITH skip_rows=1; IMPORT INTO t FROM '/path/to/file-*.csv' ``` -### 从 S3、GCS 导入数据 +### 从 S3、GCS 或 Azure Blob Storage 导入数据 - 从 S3 导入数据 @@ -241,10 +241,16 @@ IMPORT INTO t FROM '/path/to/file-*.csv' - 从 GCS 导入数据 ```sql - IMPORT INTO t FROM 'gs://bucket-name/test.csv'; + IMPORT INTO t FROM 'gs://import/test.csv?credentials-file=${credentials-file-path}'; ``` -S3 或 GCS 的 URI 路径配置详见[外部存储](/br/backup-and-restore-storages.md#uri-格式)。 +- 从 Azure Blob Storage 导入数据 + + ```sql + IMPORT INTO t FROM 'azure://import/test.csv?credentials-file=${credentials-file-path}'; + ``` + +关于 Amazon S3、GCS 和 Azure Blob Storage 的 URI 路径配置,详见[外部存储服务的 URI 格式](/external-storage-uri.md)。 ### 通过 SetClause 语句计算列值 diff --git a/sql-statements/sql-statement-restore.md b/sql-statements/sql-statement-restore.md index 2ec1323032cf..e78d2f755268 100644 --- a/sql-statements/sql-statement-restore.md +++ b/sql-statements/sql-statement-restore.md @@ -101,7 +101,7 @@ BR 支持从 Amazon S3 或 Google Cloud Storage (GCS) 恢复数据: RESTORE DATABASE * FROM 's3://example-bucket-2020/backup-05/'; ``` -有关详细的 URL 语法,见[外部存储 URI 格式](/br/backup-and-restore-storages.md#uri-格式)。 +有关详细的 URI 语法,见[外部存储服务的 URI 格式](/external-storage-uri.md)。 当运行在云环境中时,不能分发凭证,可设置 `SEND_CREDENTIALS_TO_TIKV` 选项为 `FALSE`: diff --git a/system-variables.md b/system-variables.md index f32491996a4b..5150fe9d3e36 100644 --- a/system-variables.md +++ b/system-variables.md @@ -1407,7 +1407,7 @@ mysql> SELECT job_info FROM mysql.analyze_jobs ORDER BY end_time DESC LIMIT 1; - 是否持久化到集群:是 - 是否受 Hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value) 控制:否 - 默认值:`""` -- 该变量用来指定[全局排序](/tidb-global-sort.md)中使用的云存储的 URI。在开启 [TiDB 后端任务分布式框架](/tidb-distributed-execution-framework.md)后,你可以配置 URI 指向具有访问存储所需权限的云存储路径,以此来实现全局排序的功能。更多详情,参考 [URI 格式](/br/backup-and-restore-storages.md#uri-格式)。 +- 该变量用来指定[全局排序](/tidb-global-sort.md)中使用的 Amazon S3 云存储的 URI。在开启 [TiDB 后端任务分布式框架](/tidb-distributed-execution-framework.md)后,你可以配置 URI 指向具有访问存储所需权限的云存储路径,以此来实现全局排序的功能。更多详情,参考 [Amazon S3 的 URI 格式](/external-storage-uri.md#amazon-s3-uri-格式)。 - 以下语句支持全局排序功能: - [`ADD INDEX`](/sql-statements/sql-statement-add-index.md) 语句。 - 用于将数据导入本地部署的 TiDB 的 [`IMPORT INTO`](/sql-statements/sql-statement-import-into.md) 语句。对于 TiDB Cloud,`IMPORT INTO` 语句不适用全局排序。 diff --git a/ticdc/ticdc-sink-to-cloud-storage.md b/ticdc/ticdc-sink-to-cloud-storage.md index 9ffaf5eae28d..908ac3adfe8e 100644 --- a/ticdc/ticdc-sink-to-cloud-storage.md +++ b/ticdc/ticdc-sink-to-cloud-storage.md @@ -79,8 +79,8 @@ Azure Blob Storage 配置样例如下: ``` > **建议:** -> -> Amazon S3、GCS 以及 Azure Blob Storage 的 URI 参数与 BR 中这三种外部存储的 URI 参数相同。详细参数说明请参考 [BR 备份存储服务的 URI 格式](/br/backup-and-restore-storages.md#格式说明)。 +> +> 关于 Amazon S3、GCS 以及 Azure Blob Storage 的 URI 参数的详细参数说明,请参考[外部存储服务的 URI 格式](/external-storage-uri.md)。 ### 配置 NFS diff --git a/ticdc/ticdc-sink-to-kafka.md b/ticdc/ticdc-sink-to-kafka.md index 7e35a7a77565..62498e046d16 100644 --- a/ticdc/ticdc-sink-to-kafka.md +++ b/ticdc/ticdc-sink-to-kafka.md @@ -391,8 +391,8 @@ claim-check-storage-uri = "s3://claim-check-bucket" 当指定 `large-message-handle-option` 为 `claim-check` 时,`claim-check-storage-uri` 必须设置为一个有效的外部存储服务地址,否则创建 changefeed 将会报错。 > **建议:** -> -> 目前支持的外部存储服务与 BR 相同。详细参数说明请参考 [BR 备份存储服务的 URI 格式](/br/backup-and-restore-storages.md#格式说明)。 +> +> 关于 Amazon S3、GCS 以及 Azure Blob Storage 的 URI 参数的详细参数说明,请参考[外部存储服务的 URI 格式](/external-storage-uri.md)。 TiCDC 不会清理外部存储服务上的消息,数据消费者需要自行管理外部存储服务。 diff --git a/tidb-lightning/tidb-lightning-command-line-full.md b/tidb-lightning/tidb-lightning-command-line-full.md index 14dc80fce6a8..c03afe03d5ca 100644 --- a/tidb-lightning/tidb-lightning-command-line-full.md +++ b/tidb-lightning/tidb-lightning-command-line-full.md @@ -17,7 +17,7 @@ summary: 使用命令行配置 TiDB Lightning。 |:----|:----|:----| | --config *file* | 从 *file* 读取全局设置。如果没有指定则使用默认设置。 | | | -V | 输出程序的版本 | | -| -d *directory* | 读取数据的本地目录或[外部存储 URI](/br/backup-and-restore-storages.md#uri-格式) | `mydumper.data-source-dir` | +| -d *directory* | 读取数据的本地目录或[外部存储服务的 URI 格式](/external-storage-uri.md) | `mydumper.data-source-dir` | | -L *level* | 日志的等级: debug、info、warn、error 或 fatal (默认为 info) | `lightning.log-level` | | -f *rule* | [表库过滤的规则](/table-filter.md) (可多次指定) | `mydumper.filter` | | --backend [*backend*](/tidb-lightning/tidb-lightning-overview.md) | 选择导入的模式:`local` 为[物理导入模式](/tidb-lightning/tidb-lightning-physical-import-mode.md),`tidb` 为[逻辑导入模式](/tidb-lightning/tidb-lightning-logical-import-mode.md) | `tikv-importer.backend` | diff --git a/tidb-lightning/tidb-lightning-configuration.md b/tidb-lightning/tidb-lightning-configuration.md index 834655d0d530..818b6beaae86 100644 --- a/tidb-lightning/tidb-lightning-configuration.md +++ b/tidb-lightning/tidb-lightning-configuration.md @@ -395,7 +395,7 @@ log-progress = "5m" |:----|:----|:----| | --config *file* | 从 *file* 读取全局设置。如果没有指定则使用默认设置。 | | | -V | 输出程序的版本 | | -| -d *directory* | 读取数据的本地目录或[外部存储 URI](/br/backup-and-restore-storages.md#uri-格式) | `mydumper.data-source-dir` | +| -d *directory* | 读取数据的本地目录或[外部存储服务的 URI](/external-storage-uri.md) | `mydumper.data-source-dir` | | -L *level* | 日志的等级: debug、info、warn、error 或 fatal (默认为 info) | `lightning.log-level` | | -f *rule* | [表库过滤的规则](/table-filter.md) (可多次指定) | `mydumper.filter` | | --backend [*backend*](/tidb-lightning/tidb-lightning-overview.md) | 选择导入的模式:`local` 为物理导入模式,`tidb` 为逻辑导入模式 | `local` | diff --git a/tidb-lightning/tidb-lightning-data-source.md b/tidb-lightning/tidb-lightning-data-source.md index 5bbcdadd1dac..f895c01e09d6 100644 --- a/tidb-lightning/tidb-lightning-data-source.md +++ b/tidb-lightning/tidb-lightning-data-source.md @@ -329,7 +329,7 @@ type = '$3' ## 从 Amazon S3 导入数据 -如下为从 Amazon S3 导入数据的示例,更多配置参数描述,可参考[外部存储 URI 格式](/br/backup-and-restore-storages.md#uri-格式)。 +如下为从 Amazon S3 导入数据的示例,更多配置参数描述,可参考[外部存储服务的 URI 格式](/external-storage-uri.md)。 * 使用本地已设置的权限访问 S3: diff --git a/tidb-lightning/tidb-lightning-distributed-import.md b/tidb-lightning/tidb-lightning-distributed-import.md index f3874ec43c5c..0576d022a636 100644 --- a/tidb-lightning/tidb-lightning-distributed-import.md +++ b/tidb-lightning/tidb-lightning-distributed-import.md @@ -111,7 +111,7 @@ sorted-kv-dir = "/path/to/sorted-dir" -d 's3://my-bucket/sql-backup' ``` -更多参数设置,请参考[外部存储 URI 格式](/br/backup-and-restore-storages.md#uri-格式)。 +更多参数设置,请参考[外部存储服务的 URI 格式](/external-storage-uri.md)。 ### 第 3 步:开启 TiDB Lightning 进行数据导入 @@ -143,7 +143,7 @@ nohup tiup tidb-lightning -config tidb-lightning.toml > nohup.out & ## 示例 2:使用 TiDB Lightning 并行导入单表数据 -TiDB Lightning 也支持并行导入单表的数据。例如,将存放在 Amazon S3 中的多个单表文件,分别由不同的 TiDB Lightning 实例并行导入到下游 TiDB 数据库中。该方法可以加快整体导入速度。TiDB Lightning 使用云端存储时的配置参数与 BR 大致相同,关于详细的参数配置,可以参考[外部存储 URI 格式](/br/backup-and-restore-storages.md#uri-格式)。 +TiDB Lightning 也支持并行导入单表的数据。例如,将存放在 Amazon S3 中的多个单表文件,分别由不同的 TiDB Lightning 实例并行导入到下游 TiDB 数据库中。该方法可以加快整体导入速度。关于详细的参数配置,可以参考[外部存储服务的 URI 格式](/external-storage-uri.md)。 > **注意:** > diff --git a/tidb-lightning/tidb-lightning-overview.md b/tidb-lightning/tidb-lightning-overview.md index a05868224f5d..72a7b41ddf40 100644 --- a/tidb-lightning/tidb-lightning-overview.md +++ b/tidb-lightning/tidb-lightning-overview.md @@ -21,8 +21,9 @@ TiDB Lightning 支持以下文件类型: TiDB Lightning 支持从以下位置读取: - 本地 -- [Amazon S3](/br/backup-and-restore-storages.md#uri-格式) -- [Google GCS](/br/backup-and-restore-storages.md#uri-格式) +- [Amazon S3](/external-storage-uri.md#amazon-s3-uri-格式) +- [Google GCS](/external-storage-uri.md#gcs-uri-格式) +- [Azure Blob Storage](/external-storage-uri.md#azure-blob-storage-uri-格式) ## TiDB Lightning 整体架构