Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

lightning: reformat TiDB Lightning config #19167

Open
wants to merge 16 commits into
base: master
Choose a base branch
from

Conversation

Oreoxmt
Copy link
Collaborator

@Oreoxmt Oreoxmt commented Nov 28, 2024

What is changed, added or deleted? (Required)

lightning: reformat TiDB Lightning config
ref: pingcap/docs#19523

Which TiDB version(s) do your changes apply to? (Required)

Tips for choosing the affected version(s):

By default, CHOOSE MASTER ONLY so your changes will be applied to the next TiDB major or minor releases. If your PR involves a product feature behavior change or a compatibility change, CHOOSE THE AFFECTED RELEASE BRANCH(ES) AND MASTER.

For details, see tips for choosing the affected versions (in Chinese).

  • master (the latest development version)
  • v8.5 (TiDB 8.5 versions)
  • v8.4 (TiDB 8.4 versions)
  • v8.3 (TiDB 8.3 versions)
  • v8.2 (TiDB 8.2 versions)
  • v8.1 (TiDB 8.1 versions)
  • v7.5 (TiDB 7.5 versions)
  • v7.1 (TiDB 7.1 versions)
  • v6.5 (TiDB 6.5 versions)
  • v6.1 (TiDB 6.1 versions)
  • v5.4 (TiDB 5.4 versions)
  • v5.3 (TiDB 5.3 versions)

What is the related PR or file link(s)?

  • This PR is translated from:
  • Other reference link(s):

Do your changes match any of the following descriptions?

  • Delete files
  • Change aliases
  • Need modification after applied to another branch
  • Might cause conflicts after applied to another branch

Copy link

ti-chi-bot bot commented Nov 28, 2024

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@ti-chi-bot ti-chi-bot bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Nov 28, 2024
Copy link

ti-chi-bot bot commented Nov 28, 2024

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please ask for approval from oreoxmt, ensuring that each of them provides their approval before proceeding. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@ti-chi-bot ti-chi-bot bot added missing-translation-status This PR does not have translation status info. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. labels Nov 28, 2024
@Oreoxmt Oreoxmt added type/enhancement The issue or PR belongs to an enhancement. translation/doing This PR’s assignee is translating this PR. labels Nov 28, 2024
@ti-chi-bot ti-chi-bot bot removed the missing-translation-status This PR does not have translation status info. label Nov 28, 2024
@Oreoxmt
Copy link
Collaborator Author

Oreoxmt commented Nov 28, 2024

/hold

@ti-chi-bot ti-chi-bot bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Nov 28, 2024
@Oreoxmt Oreoxmt force-pushed the reformat-config-tidblightning branch from 08f842c to 5241a65 Compare December 25, 2024 10:17
@Oreoxmt Oreoxmt added the needs-cherry-pick-release-8.5 Should cherry pick this PR to release-8.5 branch. label Dec 25, 2024
github-actions bot pushed a commit to Oreoxmt/pingcap-docsite-preview that referenced this pull request Dec 25, 2024
@Oreoxmt Oreoxmt marked this pull request as ready for review December 25, 2024 10:32
Comment on lines +255 to +257
- 目前只支持 Gzip 压缩算法,可填写 `"gzip"` 或者 `"gz"`。默认不启用压缩。
- 默认值:`""`
- 可选值:`"gzip"``"gz"`
Copy link
Collaborator

@hfxsd hfxsd Dec 25, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- 目前只支持 Gzip 压缩算法,可填写 `"gzip"` 或者 `"gz"`。默认不启用压缩
- 默认值:`""`
- 可选值:`"gzip"``"gz"`
- 目前仅支持 Gzip 压缩算法,可填写 `"gzip"` `"gz"`
- 默认值:`""`,即不启用压缩。
- 可选值:`""``"gzip"``"gz"`


- 物理导入模式TiKV 写入 KV 数据的并发度。
- 当 TiDB Lightning 和 TiKV 直接网络传输速度超过万兆的时候,可以适当增加这个值。

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

默认值是多少?

Comment on lines +293 to +294
- 默认取值为空字符串 `""`,表示 TiDB Lightning 会自动获取导入对应租户的 key space 名称。如果指定了值,则使用指定的 key space 名称来导入。
- 默认值:`""`
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- 默认取值为空字符串 `""`,表示 TiDB Lightning 会自动获取导入对应租户的 key space 名称。如果指定了值,则使用指定的 key space 名称来导入
- 默认值:`""`
- 默认值:`""`,表示 TiDB Lightning 会自动获取导入数据对应租户的 key space 名称。
- 如果指定了值,则使用指定的 key space 名称导入数据。

Comment on lines +371 to +377
- 可选值:
- `"utf8mb4"`:表结构文件必须使用 UTF-8 编码,否则会报错
- `"gb18030"`:表结构文件必须使用 GB-18030 编码,否则会报错
- `"auto"`:自动判断文件编码是 UTF-8 还是 GB-18030,两者皆非则会报错
- `"latin1"`:源数据文件使用 MySQL latin1 字符集编码(也被称为 Code Page 1252)
- `"binary"`:不尝试转换编码
- 默认值:`"auto"`
Copy link
Collaborator

@hfxsd hfxsd Dec 25, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- 可选值:
- `"utf8mb4"`:表结构文件必须使用 UTF-8 编码,否则会报错
- `"gb18030"`表结构文件必须使用 GB-18030 编码,否则会报错
- `"auto"`自动判断文件编码是 UTF-8 还是 GB-18030,两者皆非则会报错
- `"latin1"`源数据文件使用 MySQL latin1 字符集编码(也被称为 Code Page 1252)
- `"binary"`不尝试转换编码
- 默认值:`"auto"`
- 默认值:`"auto"`
- 可选值:
- `"auto"`:自动判断文件编码是 UTF-8 还是 GB-18030,两者皆非则会报错
- `"utf8mb4"`:表结构文件必须使用 UTF-8 编码,否则会报错
- `"gb18030"`:表结构文件必须使用 GB-18030 编码,否则会报错
- `"latin1"`:源数据文件使用 MySQL latin1 字符集编码(也被称为 Code Page 1252)
- `"binary"`:不尝试转换编码

Comment on lines +385 to +391
- 可选值:
- `"utf8mb4"`:源数据文件使用 UTF-8 编码
- `"GB18030"`:源数据文件使用 GB-18030 编码
- `"GBK"`:源数据文件使用 GBK 编码(GBK 编码是对 GB-2312 字符集的拓展,也被称为 Code Page 936)
- `"latin1"`:源数据文件使用 MySQL latin1 字符集编码(也被称为 Code Page 1252)
- `"binary"`:不尝试转换编码
- 默认值:`"binary"`
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- 可选值:
- `"utf8mb4"`:源数据文件使用 UTF-8 编码
- `"GB18030"`:源数据文件使用 GB-18030 编码
- `"GBK"`:源数据文件使用 GBK 编码(GBK 编码是对 GB-2312 字符集的拓展,也被称为 Code Page 936)
- `"latin1"`:源数据文件使用 MySQL latin1 字符集编码(也被称为 Code Page 1252)
- `"binary"`:不尝试转换编码
- 默认值:`"binary"`
- 默认值:`"binary"`
- 可选值:
- `"binary"`:不尝试转换编码
- `"utf8mb4"`:源数据文件使用 UTF-8 编码
- `"GB18030"`:源数据文件使用 GB-18030 编码
- `"GBK"`:源数据文件使用 GBK 编码(GBK 编码是对 GB-2312 字符集的拓展,也被称为 Code Page 936)
- `"latin1"`:源数据文件使用 MySQL latin1 字符集编码(也被称为 Code Page 1252)

Comment on lines +401 to +406
- “严格”格式的导入数据可加快处理速度。为保证数据安全而非追求处理速度,默认值为 `false`
- 默认值:`false`
- 当设置为 `true` 时的要求:
- 在 CSV 文件的所有记录中,每条数据记录的值不可包含字符换行符(`U+000A``U+000D`,即 `\r``\n`)甚至被引号包裹的字符换行符都不可包含,即换行符只可用来分隔行。
- 导入数据源为严格格式时,TiDB Lightning 会快速定位大文件的分割位置进行并行处理。
- 但是如果输入数据为非严格格式,可能会将一条完整的数据分割成两部分,导致结果出错。
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- “严格”格式的导入数据可加快处理速度。为保证数据安全而非追求处理速度,默认值为 `false`
- 默认值:`false`
- 当设置为 `true` 时的要求:
- 在 CSV 文件的所有记录中,每条数据记录的值不可包含字符换行符(`U+000A` 和 `U+000D`,即 `\r` 和 `\n`)甚至被引号包裹的字符换行符都不可包含,即换行符只可用来分隔行。
- 导入数据源为严格格式时,TiDB Lightning 会快速定位大文件的分割位置进行并行处理
- 但是如果输入数据为非严格格式,可能会将一条完整的数据分割成两部分,导致结果出错。
- 启用[严格格式](/tidb-lightning/tidb-lightning-data-source.md#启用严格格式)可加快导入数据的速度。为保证数据安全而非追求处理速度,默认值为 `false`,即关闭严格格式
- 默认值:`false`
- 可选值:`false``true`
- 当设置为 `true` 开启严格格式时,有如下限制:
- 在 CSV 文件的所有记录中,每条数据记录的值不可包含字符换行符(`U+000A` 和 `U+000D`,即 `\r` 和 `\n`)甚至被引号包裹的字符换行符都不可包含,即换行符只可用来分隔行
- 导入数据源为严格格式时,TiDB Lightning 会快速定位大文件的分割位置进行并行处理。但是如果输入数据为非严格格式,可能会将一条完整的数据分割成两部分,导致结果出错。


- CSV 文件是否包含 NULL。
- 如果设置为 `true`,CSV 所有列都不能解析为 NULL。如果设置为 `false`,CSV 可以包含 NULL。

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

默认值?

* `"cluster"`:强制使用 TLS 并使用 [`[tidb.security]`](#tidbsecurity 部分中指定的 CA 验证服务器的证书
* `"skip-verify"`:强制使用 TLS,但不验证服务器的证书(不安全)
* `"preferred"`:与 `"skip-verify"` 相同,但是如果服务器不支持 TLS,则会退回到未加密的连接

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

默认值是多少

- 对于物理导入模式,数据导入完成后,TiDB Lightning 可以自动执行 Checksum 和 Analyze 操作。
- 在生产环境中,建议总是开启 Checksum 和 Analyze。
- 执行的顺序为:Checksum -> Analyze。
- 注意:对于逻辑导入模式,无须执行这两个阶段,因此在实际运行时总是会直接跳过。
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- 注意:对于逻辑导入模式,无须执行这两个阶段,因此在实际运行时总是会直接跳过
- 注意:对于逻辑导入模式,无须执行这两个阶段,因为在实际运行时总是直接跳过该操作

Comment on lines +631 to +633
- 默认值为 `"false"`,表示通过 TiDB Lightning 下发 `ADMIN CHECKSUM TABLE <table>` 命令给 TiKV 执行。
- 建议将该值设为 `"true"`,以便在 checksum 失败时更容易定位问题。当该值为 `"true"` 时,如果需要调整并发,请在 TiDB 中设置 [`tidb_checksum_table_concurrency`](/system-variables.md#tidb_checksum_table_concurrency) 变量。
- 默认值:`"false"`
Copy link
Collaborator

@hfxsd hfxsd Dec 25, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- 默认值为 `"false"`,表示通过 TiDB Lightning 下发 `ADMIN CHECKSUM TABLE <table>` 命令给 TiKV 执行。
- 建议将该值设为 `"true"`,以便在 checksum 失败时更容易定位问题。当该值为 `"true"` 时,如果需要调整并发,请在 TiDB 中设置 [`tidb_checksum_table_concurrency`](/system-variables.md#tidb_checksum_table_concurrency) 变量。
- 默认值:`"false"`
- 默认值为 `"false"`
- 可选值: `"false"`
- `"false"`:表示通过 TiDB Lightning 下发 `ADMIN CHECKSUM TABLE <table>` 命令给 TiKV 执行。
- `"true"`:当该值为 `"true"` 时,如果想要调整并发,需要在 TiDB 中设置 [`tidb_checksum_table_concurrency`](/system-variables.md#tidb_checksum_table_concurrency) 系统变量。
- 建议将该值设为 `"true"`,以便在执行 CHECKSUM 失败时更容易定位问题。

#### `check-disk-quota`

- 使用物理导入模式时,检查本地磁盘配额的时间间隔。
- 默认值:`"60s"`
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

取值范围?


- 在并行导入模式下,在目标集群保存各个 TiDB Lightning 实例元信息的 schema 名字。如果未开启并行导入模式,无须设置此配置项。
- 对于参与同一批并行导入的每个 TiDB Lightning 实例,该参数设置的值必须相同,否则将无法确保导入数据的正确性。
- 如果开启并行导入模式,需要确保导入使用的用户(对于 `tidb.user` 配置项)有权限创建和访问此配置对应的库。
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- 如果开启并行导入模式,需要确保导入使用的用户(对于 `tidb.user` 配置项)有权限创建和访问此配置对应的库。
- 如果开启并行导入模式,需要确保执行导入操作的用户(对于 `tidb.user` 配置项)有权限创建和访问此配置对应的库。

Comment on lines +179 to +187
- 可选值:

- `""`:在物理导入模式下,不进行冲突数据检测和处理。如果源文件存在主键或唯一键冲突的记录,后续步骤会报错。在逻辑导入模式下,`""` 策略将被转换为 `"error"` 策略处理。
- `"error"`:检测到导入的数据存在主键或唯一键冲突的数据时,终止导入并报错。
- `"replace"`:遇到主键或唯一键冲突的数据时,保留最新的数据,覆盖旧的数据。
- 使用物理导入模式时,冲突数据将被记录到目标 TiDB 集群中的 `lightning_task_info.conflict_view` 视图中。
-`lightning_task_info.conflict_view` 视图中,如果某行的 `is_precheck_conflict` 字段为 `0`,表示该行记录的冲突数据是通过后置冲突检测发现的;如果某行的 `is_precheck_conflict` 字段为 `1`,表示该行记录的冲突数据是通过前置冲突检测发现的。你可以根据业务需求选择正确的记录重新手动写入到目标表中。
- 注意,该方法要求目标 TiKV 的版本为 v5.2.0 或更新版本。
- `"ignore"`:遇到主键或唯一键冲突的数据时,保留旧的数据,忽略新的数据。仅当导入模式为逻辑导入模式时可以使用该选项。
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- 可选值:
- `""`:在物理导入模式下,不进行冲突数据检测和处理。如果源文件存在主键或唯一键冲突的记录,后续步骤会报错。在逻辑导入模式下,`""` 策略将被转换为 `"error"` 策略处理。
- `"error"`:检测到导入的数据存在主键或唯一键冲突的数据时,终止导入并报错。
- `"replace"`:遇到主键或唯一键冲突的数据时,保留最新的数据,覆盖旧的数据。
- 使用物理导入模式时,冲突数据将被记录到目标 TiDB 集群中的 `lightning_task_info.conflict_view` 视图中。
- 在 `lightning_task_info.conflict_view` 视图中,如果某行的 `is_precheck_conflict` 字段为 `0`,表示该行记录的冲突数据是通过后置冲突检测发现的;如果某行的 `is_precheck_conflict` 字段为 `1`,表示该行记录的冲突数据是通过前置冲突检测发现的。你可以根据业务需求选择正确的记录重新手动写入到目标表中。
- 注意,该方法要求目标 TiKV 的版本为 v5.2.0 或更新版本。
- `"ignore"`:遇到主键或唯一键冲突的数据时,保留旧的数据,忽略新的数据。仅当导入模式为逻辑导入模式时可以使用该选项。
- 可选值:
- `""`:不同的导入模式下,设置该选项的结果不同:
- 在物理导入模式下,不进行冲突数据检测和处理。如果源文件存在主键或唯一键冲突的记录,后续步骤会报错。
- 在逻辑导入模式下,`""` 策略将被转换为 `"error"` 策略处理。
- `"error"`:检测到导入的数据存在主键或唯一键冲突的数据时,终止导入并报错。
- `"replace"`:遇到主键或唯一键冲突的数据时,保留最新的数据,覆盖旧的数据。
- 使用物理导入模式时,冲突数据将被记录到目标 TiDB 集群中的 `lightning_task_info.conflict_view` 视图中。
- 在 `lightning_task_info.conflict_view` 视图中,如果某行的 `is_precheck_conflict` 字段为 `0`,表示该行记录的冲突数据是通过后置冲突检测发现的;如果某行的 `is_precheck_conflict` 字段为 `1`,表示该行记录的冲突数据是通过前置冲突检测发现的。你可以根据业务需求选择正确的记录重新手动写入到目标表中。
- 注意,该方法要求目标 TiKV 的版本为 v5.2.0 或更新版本。
- `"ignore"`:遇到主键或唯一键冲突的数据时,保留旧的数据,忽略新的数据。该选项仅适用于逻辑导入模式。

#### `threshold`

- 控制 [`strategy`](#strategy)`"replace"``"ignore"` 时,能处理的冲突错误数的上限。仅在 strategy 为 `"replace"``"ignore"` 时可配置。
- 如果设置的值大于 `10000`,导入过程可能会出现性能下降的情况。
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- 如果设置的值大于 `10000`,导入过程可能会出现性能下降的情况。
- 注意如果设置的值大于 `10000`,导入过程可能会出现性能下降的情况。

#### `max-record-rows`

- 控制冲突数据记录表 (`conflict_records`) 中记录的冲突数据的条数上限。
- 从 v8.1.0 开始,TiDB Lightning 会自动将 `max-record-rows` 的值设置为 [`threshold`](#threshold) 的值,并忽略用户输入,因此无需再单独配置 `max-record-rows``max-record-rows` 将在未来版本中废弃。
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- 从 v8.1.0 开始,TiDB Lightning 会自动将 `max-record-rows` 的值设置为 [`threshold`](#threshold) 的值,并忽略用户输入,因此无需再单独配置 `max-record-rows``max-record-rows` 将在未来版本中废弃
- 从 v8.1.0 开始,TiDB Lightning 会自动将该配置项的值设置为 [`threshold`](#threshold) 的值,并忽略用户输入,因此无需再单独配置该配置项
- `max-record-rows` 将在未来版本中废弃。

- 物理导入模式下,向 TiKV 发送数据时一次请求中最大 KV 数量。

<!-- 示例值:32768 -->
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

默认值?


#### `compress-kv-pairs`

- 物理导入模式向 TiKV 发送 KV 时是否启用压缩。
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- 物理导入模式向 TiKV 发送 KV 时是否启用压缩。
- 物理导入模式下,向 TiKV 发送 KV 时是否启用压缩。

- 该参数指定了单个事务中执行的每个 `INSERT``REPLACE` 语句的 `VALUES` 部分的期望最大大小。
- 该参数不是一个严格限制。实际执行的 SQL 语句长度可能会根据导入数据的具体内容而有所不同。
- 默认值:`"96KiB"`,在 TiDB Lightning 是集群中唯一的客户端时,这是导入速度的最佳值
- 由于 TiDB Lightning 的实现细节,该参数最大值为 96 KiB。设置更大的值将不会生效。你可以减小该值以减轻大事务对集群的压力。
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- 由于 TiDB Lightning 的实现细节,该参数最大值为 96 KiB。设置更大的值将不会生效。你可以减小该值以减轻大事务对集群的压力。
- 由于 TiDB Lightning 的实现限制,该参数最大值为 `"96KiB"`。设置更大的值不会生效。你可以减小该值以减轻大事务对集群的压力。


#### `logical-import-prep-stmt`

- 在逻辑导入模式下,该参数控制是否使用预处理语句和语句缓存来提高性能。
Copy link
Collaborator

@hfxsd hfxsd Dec 26, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- 在逻辑导入模式下,该参数控制是否使用预处理语句和语句缓存来提高性能
- 在逻辑导入模式下,控制是否使用[预处理语句](/develop/dev-guide-prepared-statement.md)和语句缓存来提高性能

- 如果“导入”更快,区块大小的差异就会更小;比值为 0 时则说明区块大小一致。
- 取值范围:`[0, 1)`

<!-- 示例值:`0.75` -->
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

默认值?

Comment on lines +356 to +357
- 引擎文件需按顺序导入。由于并行处理,多个数据引擎几乎在同时被导入,这样形成的处理队列会造成资源浪费。因此,为了合理分配资源,TiDB Lightning 稍微增大了前几个区块的大小。该参数也决定了比例系数,即在完全并发下“导入”和“写入”过程的持续时间比。这个值可以通过计算 1 GiB 大小的 单张表的(导入时长/写入时长)得到。在日志文件中可以看到精确的时间。
- 如果“导入”更快,区块大小的差异就会更小;比值为 0 时则说明区块大小一致。
Copy link
Collaborator

@hfxsd hfxsd Dec 26, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- 引擎文件需按顺序导入。由于并行处理,多个数据引擎几乎在同时被导入,这样形成的处理队列会造成资源浪费。因此,为了合理分配资源,TiDB Lightning 稍微增大了前几个区块的大小。该参数也决定了比例系数,即在完全并发下“导入”和“写入”过程的持续时间比。这个值可以通过计算 1 GiB 大小的 单张表的(导入时长/写入时长)得到。在日志文件中可以看到精确的时间。
- 如果“导入”更快,区块大小的差异就会更小;比值为 0 时则说明区块大小一致。
- 引擎文件需按顺序导入。由于并行处理,多个数据引擎几乎同时被导入,这样形成的处理队列会造成资源浪费。因此,为了合理分配资源,TiDB Lightning 稍微增大了前几个区块的大小。
- 该参数用于设置在完全并发下,“导入”和“写入”过程的持续时间比。该值可以通过计算 1 GiB 大小的单张表的(导入时长/写入时长)得到。你可以在日志文件中查看精确的时间。
- 如果“导入“更快,区块大小的差异就会更小。比值为 `0` 表示区块大小相同。

- 设置 TiDB 会话变量,提升 Checksum 和 Analyze 的速度。详情参考[控制 `ANALYZE` 并发度](/statistics.md#控制-analyze-并发度)
- 如果将 [`checksum-via-sql`](#checksum-via-sql) 设置为 `"true"`,则会通过 TiDB 执行 `ADMIN CHECKSUM TABLE <table>` SQL 语句来进行 Checksum 操作。在这种情况下,`distsql-scan-concurrency` 参数设置不会生效

<!-- 示例值:`15` -->
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

默认值?


- 设置 TiDB 会话变量,提升 Checksum 和 Analyze 的速度。详情参考[控制 `ANALYZE` 并发度](/statistics.md#控制-analyze-并发度)

<!-- 示例值:`20` -->
Copy link
Collaborator

@hfxsd hfxsd Dec 26, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

系统变量 tidb_build_stats_concurrency 的默认值是 2,是否需要和这个配置项的默认值相同?


设置其他 TiDB 会话变量。

#### `tidb_enable_clustered_index`
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这是个系统变量,好像应该删掉?可能在以前的文档里只是举例。


- 解析和执行 SQL 语句的默认 SQL 模式。

<!-- 示例值:`"ONLY_FULL_GROUP_BY,NO_AUTO_CREATE_USER"` -->
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

默认值和可选值?

- 设置数据库连接允许的最大数据包大小,对应于系统参数中的 `max_allowed_packet`
- 如果设置为 `0`,会使用下游数据库 global 级别的 `max_allowed_packet`

<!-- 示例值:`67_108_864` -->
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

取值范围和默认值?

Comment on lines +621 to +624
- 可选值:
- `"required"`:在导入完成后执行 CHECKSUM 检查,如果 CHECKSUM 检查失败,则会报错退出
- `"optional"`:在导入完成后执行 CHECKSUM 检查,如果报错,会输出一条 WARN 日志并忽略错误
- `"off"`:导入结束后不执行 CHECKSUM 检查
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- 可选值:
- `"required"`:在导入完成后执行 CHECKSUM 检查,如果 CHECKSUM 检查失败,则会报错退出
- `"optional"`:在导入完成后执行 CHECKSUM 检查,如果报错,会输出一条 WARN 日志并忽略错误
- `"off"`:导入结束后不执行 CHECKSUM 检查
- 可选值:
- `"required"`:在导入完成后执行 CHECKSUM 检查,如果 CHECKSUM 检查失败,则会报错退出
- `"optional"`:在导入完成后执行 CHECKSUM 检查,如果报错,会输出一条 WARN 日志并忽略错误
- `"off"`:导入结束后不执行 CHECKSUM 检查


- TiDB Lightning 自动刷新导入模式状态的持续时间,该值应小于 TiKV 对应的设定值。

<!-- 示例值:`"5m"` -->
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

默认值和取值范围?


- 在日志中打印导入进度的持续时间。

<!-- 示例值:`"5m"` -->
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

默认值和取值范围?

#### `check-disk-quota`

- 使用物理导入模式时,检查本地磁盘配额的时间间隔。
- 默认值:`"60s"`
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- 默认值:`"60s"`
- 默认值:`"60s"`,即 60 秒

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. needs-cherry-pick-release-8.5 Should cherry pick this PR to release-8.5 branch. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. translation/doing This PR’s assignee is translating this PR. type/enhancement The issue or PR belongs to an enhancement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants