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

Revise conflict data resolution enhancement during data import (#16896) #16913

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion tidb-lightning/tidb-lightning-configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ strategy = ""
# 当后端是 “importer” 时,tikv-importer 的监听地址(需改为实际地址)。
addr = "172.16.31.10:8287"

# v8.0.0 开始,`duplicate-resolution` 参数已废弃。详情参考 <https://docs.pingcap.com/zh/tidb/dev/tidb-lightning-physical-import-mode-usage#旧版冲突检测从-v800-开始已被废弃>。
# `duplicate-resolution` 参数从 v8.0.0 开始已被废弃,并将在未来版本中被移除。详情参考 <https://docs.pingcap.com/zh/tidb/dev/tidb-lightning-physical-import-mode-usage#旧版冲突检测从-v800-开始已被废弃>。
# 物理导入模式设置是否检测和解决重复的记录(唯一键冲突)。
# 目前支持两种解决方法:
# - none: 不检测重复记录。该模式是两种模式中性能最佳的,但是如果数据源存在重复记录,会导致 TiDB 中出现数据不一致的情况。
Expand Down
7 changes: 4 additions & 3 deletions tidb-lightning/tidb-lightning-error-resolution.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ summary: 介绍了如何解决导入数据过程中的类型转换和冲突错

- `lightning.max-error`:类型错误的容忍阈值
- `conflict.strategy`、`conflict.threshold`、`conflict.max-record-rows`:数据冲突错误的相关配置
- `tikv-importer.duplicate-resolution`(从 v8.0.0 开始已被废弃):物理导入模式下的冲突处理配置
- `tikv-importer.duplicate-resolution`(从 v8.0.0 开始已被废弃,并将在未来版本中被移除):物理导入模式下的冲突处理配置
- `lightning.task-info-schema-name`:冲突数据存储的库名

相关配置项详情请参考 [TiDB Lightning 任务配置](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置)。
Expand Down Expand Up @@ -194,7 +194,7 @@ CREATE TABLE conflict_records (
EOF
```

3. 配置 TiDB Lightning,启用严格 SQL 模式,使用 Local 后端模式进行导入,通过删除解决重复项,并最多跳过 10 个错误:
3. 配置 TiDB Lightning,启用严格 SQL 模式,使用 Local 后端模式进行导入,通过替换解决重复项,并最多跳过 10 个错误:

{{< copyable "shell-regular" >}}

Expand All @@ -205,7 +205,8 @@ CREATE TABLE conflict_records (
[tikv-importer]
backend = 'local'
sorted-kv-dir = '/tmp/lightning-tmp/'
duplicate-resolution = 'remove'
[conflict]
strategy = 'replace'
[mydumper]
data-source-dir = '.'
[tidb]
Expand Down
6 changes: 3 additions & 3 deletions tidb-lightning/tidb-lightning-physical-import-mode-usage.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ strategy = ""
backend = "local"

# 冲突数据处理方式
# v8.0.0 开始,`duplicate-resolution` 参数已废弃。详情参考 <https://docs.pingcap.com/zh/tidb/dev/tidb-lightning-physical-import-mode-usage#旧版冲突检测从-v800-开始已被废弃>。
# `duplicate-resolution` 参数从 v8.0.0 开始已被废弃,并将在未来版本中被移除。详情参考 <https://docs.pingcap.com/zh/tidb/dev/tidb-lightning-physical-import-mode-usage#旧版冲突检测从-v800-开始已被废弃>。
duplicate-resolution = 'remove'

# 本地进行 KV 排序的路径。
Expand Down Expand Up @@ -99,7 +99,7 @@ Lightning 的完整配置文件可参考[完整配置及命令行参数](/tidb-l

冲突数据是指两条或两条以上记录中存在主键或唯一键列数据重复。当数据源中的记录存在冲突数据,如果没有启用冲突数据检测功能,将导致该表的实际总行数与使用唯一索引查询的总行数不一致。

冲突数据检测采用新版冲突检测 (`conflict`) 模式。旧版冲突检测 (`tikv-importer.duplicate-resolution`) 模式从 v8.0.0 开始已被废弃。
冲突数据检测采用新版冲突检测 (`conflict`) 模式。旧版冲突检测 (`tikv-importer.duplicate-resolution`) 模式从 v8.0.0 开始已被废弃。`tikv-importer.duplicate-resolution` 参数将在未来版本中被移除。

### 新版冲突检测

Expand All @@ -126,7 +126,7 @@ Lightning 的完整配置文件可参考[完整配置及命令行参数](/tidb-l

### 旧版冲突检测(从 v8.0.0 开始已被废弃)

从 v8.0.0 起,旧版冲突检测 (`tikv-importer.duplicate-resolution`) 已被废弃。如果 `tikv-importer.duplicate-resolution` 为 `remove` 且 `conflict.strategy` 未设置,TiDB Lightning 会自动将 `conflict.strategy` 赋值为 `"replace"` 开启新版冲突检测。需要注意 `tikv-importer.duplicate-resolution` 不能与 `conflict.strategy` 同时配置,否则将报错。
从 v8.0.0 起,旧版冲突检测 (`tikv-importer.duplicate-resolution`) 已被废弃。`tikv-importer.duplicate-resolution` 参数将在未来版本中被移除。如果 `tikv-importer.duplicate-resolution` 为 `remove` 且 `conflict.strategy` 未设置,TiDB Lightning 会自动将 `conflict.strategy` 赋值为 `"replace"` 开启新版冲突检测。需要注意 `tikv-importer.duplicate-resolution` 不能与 `conflict.strategy` 同时配置,否则将报错。

- 在 v7.3.0 到 v7.6.0 之间的版本中,当配置 `tikv-importer.duplicate-resolution` 不为空时,TiDB Lightning 会开启旧版冲突检测。
- 在 v7.2.0 及之前的版本中,TiDB Lightning 仅支持旧版冲突检测。
Expand Down
Loading