Skip to content

Commit

Permalink
Preview PR pingcap/docs-cn#19021 and this preview is triggered from c…
Browse files Browse the repository at this point in the history
  • Loading branch information
Docsite Preview Bot committed Dec 27, 2024
1 parent 6b3665c commit e32239d
Show file tree
Hide file tree
Showing 4 changed files with 5,877 additions and 55 deletions.
105 changes: 50 additions & 55 deletions markdown-pages/zh/tidb/master/TOC.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
- [文档中心](https://docs.pingcap.com/zh)
- 关于 TiDB
- [TiDB 简介](/overview.md)
- [TiDB 8.5 Release Notes](/releases/release-8.5.0.md)
- [TiDB 8.3 Release Notes](/releases/release-8.3.0.md)
- [功能概览](/basic-features.md)
- [与 MySQL 的兼容性](/mysql-compatibility.md)
- [使用限制](/tidb-limitations.md)
Expand Down Expand Up @@ -135,8 +135,9 @@
- [TiSpark 部署拓扑](/tispark-deployment-topology.md)
- [跨机房部署拓扑结构](/geo-distributed-deployment-topology.md)
- [混合部署拓扑结构](/hybrid-deployment-topology.md)
- [使用 TiUP 部署](/production-deployment-using-tiup.md)
- [在 Kubernetes 上部署](/tidb-in-kubernetes.md)
- 安装与启动
- [使用 TiUP 部署](/production-deployment-using-tiup.md)
- [在 Kubernetes 上部署](/tidb-in-kubernetes.md)
- [验证集群状态](/post-installation-check.md)
- 测试集群性能
- [用 Sysbench 测试 TiDB](/benchmark/benchmark-tidb-using-sysbench.md)
Expand All @@ -152,7 +153,6 @@
- [从大数据量 MySQL 迁移数据到 TiDB](/migrate-large-mysql-to-tidb.md)
- [从小数据量分库分表 MySQL 合并迁移数据到 TiDB](/migrate-small-mysql-shards-to-tidb.md)
- [从大数据量分库分表 MySQL 合并迁移数据到 TiDB](/migrate-large-mysql-shards-to-tidb.md)
- [从 Vitess 迁移数据到 TiDB](/migrate-from-vitess.md)
- [从 MariaDB 迁移数据到 TiDB](/migrate-from-mariadb.md)
- [从 CSV 文件迁移数据到 TiDB](/migrate-from-csv-files-to-tidb.md)
- [从 SQL 文件迁移数据到 TiDB](/migrate-from-sql-files-to-tidb.md)
Expand All @@ -164,52 +164,11 @@
- [下游存在更多列的迁移场景](/migrate-with-more-columns-downstream.md)
- [如何根据类型或 DDL 内容过滤 binlog 事件](/filter-binlog-event.md)
- [如何通过 SQL 表达式过滤 DML binlog 事件](/filter-dml-event.md)
- 数据同步
- [TiCDC 概述](/ticdc/ticdc-overview.md)
- [安装部署与集群运维](/ticdc/deploy-ticdc.md)
- Changefeed
- [Changefeed 概述](/ticdc/ticdc-changefeed-overview.md)
- 创建 Changefeed
- [同步数据到 MySQL 兼容的数据库](/ticdc/ticdc-sink-to-mysql.md)
- [同步数据到 Kafka](/ticdc/ticdc-sink-to-kafka.md)
- [同步数据到 Pulsar](/ticdc/ticdc-sink-to-pulsar.md)
- [同步数据到存储服务](/ticdc/ticdc-sink-to-cloud-storage.md)
- [管理 Changefeed](/ticdc/ticdc-manage-changefeed.md)
- [日志过滤器](/ticdc/ticdc-filter.md)
- [DDL 同步](/ticdc/ticdc-ddl.md)
- [双向复制](/ticdc/ticdc-bidirectional-replication.md)
- 监控告警
- [基本监控指标](/ticdc/ticdc-summary-monitor.md)
- [详细监控指标](/ticdc/monitor-ticdc.md)
- [报警规则](/ticdc/ticdc-alert-rules.md)
- 数据集成
- [数据集成概述](/integration-overview.md)
- 数据集成场景
- [数据集成概述](/integration-overview.md)
- [与 Confluent Cloud 和 Snowflake 进行数据集成](/ticdc/integrate-confluent-using-ticdc.md)
- [与 Apache Kafka 和 Apache Flink 进行数据集成](/replicate-data-to-kafka.md)
- 参考指南
- [TiCDC 架构设计与原理](/ticdc/ticdc-architecture.md)
- [TiCDC Server 配置参数](/ticdc/ticdc-server-config.md)
- [TiCDC Changefeed 配置参数](/ticdc/ticdc-changefeed-config.md)
- [TiCDC 客户端鉴权](/ticdc/ticdc-client-authentication.md)
- [单行数据正确性校验](/ticdc/ticdc-integrity-check.md)
- [主从集群数据校验和快照读](/ticdc/ticdc-upstream-downstream-check.md)
- [拆分 UPDATE 事件行为说明](/ticdc/ticdc-split-update-behavior.md)
- 输出数据协议
- [TiCDC Avro Protocol](/ticdc/ticdc-avro-protocol.md)
- [TiCDC Canal-JSON Protocol](/ticdc/ticdc-canal-json.md)
- [TiCDC CSV Protocol](/ticdc/ticdc-csv.md)
- [TiCDC Debezium Protocol](/ticdc/ticdc-debezium.md)
- [TiCDC Open Protocol](/ticdc/ticdc-open-protocol.md)
- [TiCDC Simple Protocol](/ticdc/ticdc-simple-protocol.md)
- [TiCDC Open API v2](/ticdc/ticdc-open-api-v2.md)
- [TiCDC Open API v1](/ticdc/ticdc-open-api.md)
- TiCDC 数据消费
- [基于 Avro 的 TiCDC 行数据 Checksum 校验](/ticdc/ticdc-avro-checksum-verification.md)
- [Storage sink 消费程序编写指引](/ticdc/ticdc-storage-consumer-dev-guide.md)
- [TiCDC 兼容性](/ticdc/ticdc-compatibility.md)
- [故障处理](/ticdc/troubleshoot-ticdc.md)
- [常见问题解答](/ticdc/ticdc-faq.md)
- [术语表](/ticdc/ticdc-glossary.md)
- 运维操作
- 安全加固
- [TiDB 安全配置最佳实践](/best-practices-for-security-configuration.md)
Expand Down Expand Up @@ -314,7 +273,6 @@
- [TiKV 线程调优](/tune-tikv-thread-performance.md)
- [TiKV 内存调优](/tune-tikv-memory-performance.md)
- [TiKV Follower Read](/follower-read.md)
- [TiKV MVCC 内存引擎](/tikv-in-memory-engine.md)
- [Region 性能调优](/tune-region-performance.md)
- [TiFlash 调优](/tiflash/tune-tiflash-performance.md)
- [下推计算结果缓存](/coprocessor-cache.md)
Expand Down Expand Up @@ -391,6 +349,7 @@
- [Load Base Split 使用文档](/configure-load-base-split.md)
- [Store Limit 使用文档](/configure-store-limit.md)
- [DDL 执行原理及最佳实践](/ddl-introduction.md)
- [数据批量处理](/batch-processing.md)
- PD 微服务使用文档
- [PD 微服务概览](/pd-microservices.md)
- [使用 TiUP 扩容缩容 PD 微服务节点](/scale-microservices-using-tiup.md)
Expand Down Expand Up @@ -632,6 +591,48 @@
- [FAQ](/tidb-lightning/tidb-lightning-faq.md)
- [术语表](/tidb-lightning/tidb-lightning-glossary.md)
- [Dumpling](/dumpling-overview.md)
- TiCDC
- [概述](/ticdc/ticdc-overview.md)
- [安装部署与集群运维](/ticdc/deploy-ticdc.md)
- Changefeed
- [Changefeed 概述](/ticdc/ticdc-changefeed-overview.md)
- 创建 Changefeed
- [同步数据到 MySQL 兼容的数据库](/ticdc/ticdc-sink-to-mysql.md)
- [同步数据到 Kafka](/ticdc/ticdc-sink-to-kafka.md)
- [同步数据到 Pulsar](/ticdc/ticdc-sink-to-pulsar.md)
- [同步数据到存储服务](/ticdc/ticdc-sink-to-cloud-storage.md)
- [管理 Changefeed](/ticdc/ticdc-manage-changefeed.md)
- [TiCDC 客户端鉴权](/ticdc/ticdc-client-authentication.md)
- [日志过滤器](/ticdc/ticdc-filter.md)
- [DDL 同步](/ticdc/ticdc-ddl.md)
- [双向复制](/ticdc/ticdc-bidirectional-replication.md)
- [单行数据正确性校验](/ticdc/ticdc-integrity-check.md)
- [主从集群一致性读和数据校验](/ticdc/ticdc-upstream-downstream-check.md)
- [拆分 UPDATE 事件行为说明](/ticdc/ticdc-split-update-behavior.md)
- 监控告警
- [基本监控指标](/ticdc/ticdc-summary-monitor.md)
- [详细监控指标](/ticdc/monitor-ticdc.md)
- [报警规则](/ticdc/ticdc-alert-rules.md)
- 参考指南
- [架构设计与原理](/ticdc/ticdc-architecture.md)
- [TiCDC Server 配置参数](/ticdc/ticdc-server-config.md)
- [TiCDC Changefeed 配置参数](/ticdc/ticdc-changefeed-config.md)
- 输出数据协议
- [TiCDC Avro Protocol](/ticdc/ticdc-avro-protocol.md)
- [TiCDC Canal-JSON Protocol](/ticdc/ticdc-canal-json.md)
- [TiCDC CSV Protocol](/ticdc/ticdc-csv.md)
- [TiCDC Debezium Protocol](/ticdc/ticdc-debezium.md)
- [TiCDC Open Protocol](/ticdc/ticdc-open-protocol.md)
- [TiCDC Simple Protocol](/ticdc/ticdc-simple-protocol.md)
- [TiCDC Open API v2](/ticdc/ticdc-open-api-v2.md)
- [TiCDC Open API v1](/ticdc/ticdc-open-api.md)
- TiCDC 数据消费
- [基于 Avro 的 TiCDC 行数据 Checksum 校验](/ticdc/ticdc-avro-checksum-verification.md)
- [Storage sink 消费程序编写指引](/ticdc/ticdc-storage-consumer-dev-guide.md)
- [兼容性](/ticdc/ticdc-compatibility.md)
- [故障处理](/ticdc/troubleshoot-ticdc.md)
- [常见问题解答](/ticdc/ticdc-faq.md)
- [术语表](/ticdc/ticdc-glossary.md)
- PingCAP Clinic 诊断服务
- [概述](/clinic/clinic-introduction.md)
- [快速上手](/clinic/quick-start-with-clinic.md)
Expand Down Expand Up @@ -682,7 +683,6 @@
- [TiFlash 延迟物化](/tiflash/tiflash-late-materialization.md)
- [TiFlash 数据落盘](/tiflash/tiflash-spill-disk.md)
- [TiFlash 数据校验](/tiflash/tiflash-data-validation.md)
- [TiFlash MinTSO 调度器](/tiflash/tiflash-mintso-scheduler.md)
- [TiFlash 兼容性说明](/tiflash/tiflash-compatibility.md)
- [TiFlash Pipeline Model 执行模型](/tiflash/tiflash-pipeline-model.md)
- TiDB 分布式执行框架
Expand Down Expand Up @@ -736,7 +736,6 @@
- SQL 语句
- [概览](/sql-statements/sql-statement-overview.md)
- [`ADMIN`](/sql-statements/sql-statement-admin.md)
- [`ADMIN ALTER DDL JOBS`](/sql-statements/sql-statement-admin-alter-ddl.md)
- [`ADMIN CANCEL DDL`](/sql-statements/sql-statement-admin-cancel-ddl.md)
- [`ADMIN CHECKSUM TABLE`](/sql-statements/sql-statement-admin-checksum-table.md)
- [`ADMIN CHECK [TABLE|INDEX]`](/sql-statements/sql-statement-admin-check-table-index.md)
Expand Down Expand Up @@ -941,6 +940,7 @@
- [乐观事务](/optimistic-transaction.md)
- [悲观事务](/pessimistic-transaction.md)
- [非事务 DML 语句](/non-transactional-dml.md)
- [Pipelined DML](/pipelined-dml.md)
- [视图](/views.md)
- [分区表](/partitioned-table.md)
- [临时表](/temporary-tables.md)
Expand Down Expand Up @@ -1078,10 +1078,6 @@
- [版本发布时间线](/releases/release-timeline.md)
- [TiDB 版本规则](/releases/versioning.md)
- [TiDB 离线包](/binary-package.md)
- v8.5
- [8.5.0](/releases/release-8.5.0.md)
- v8.4
- [8.4.0-DMR](/releases/release-8.4.0.md)
- v8.3
- [8.3.0-DMR](/releases/release-8.3.0.md)
- v8.2
Expand All @@ -1106,7 +1102,6 @@
- v7.2
- [7.2.0-DMR](/releases/release-7.2.0.md)
- v7.1
- [7.1.6](/releases/release-7.1.6.md)
- [7.1.5](/releases/release-7.1.5.md)
- [7.1.4](/releases/release-7.1.4.md)
- [7.1.3](/releases/release-7.1.3.md)
Expand Down
97 changes: 97 additions & 0 deletions markdown-pages/zh/tidb/master/batch-processing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
---
title: 数据批量处理
summary: 介绍了 TiDB 为数据批量处理场景提供的功能,包括 Pipelined DML、非事务性 DML、IMPORT INTO 语句以及已被废弃的 batch-dml。
---

# 数据批量处理

批量数据处理是实际业务中常见且重要的操作,它涉及到对大量数据进行高效操作,如数据迁移、批量导入、归档操作或大规模更新等。

为了提升批量处理性能,TiDB 随着版本的演进提供了多种数据批量处理功能:

- 数据导入
- `IMPORT INTO` 语句(从 TiDB v7.2.0 开始引入,在 v7.5.0 成为正式功能)
- 数据增删改
- Pipelined DML(从 TiDB v8.0.0 开始引入,实验特性)
- 非事务性 DML(从 TiDB v6.1.0 开始引入)
- 已废弃的 batch-dml 功能

本文分别介绍这些功能的主要优势、限制和使用场景,帮助你根据实际需求选择合适的方案,从而更高效地完成批量数据处理任务。

## 数据导入

`IMPORT INTO` 语句专为数据导入设计,使你无需单独部署 [TiDB Lightning](/tidb-lightning/tidb-lightning-overview.md),即可将 CSV、SQL 或 PARQUET 等格式的数据快速导入到 TiDB 的一张空表中。

主要优势:

- 导入速度非常快。
- 比 TiDB Lightning 更易用。

主要限制:

- 不满足事务 [ACID](/glossary.md#acid) 性质。
- 使用限制较多。

适用场景:

- 数据导入场景,例如数据迁移、数据恢复等。建议在合适的场景下,使用 IMPORT INTO 代替 TiDB Lightning。

更多信息,请参考 [`IMPORT INTO`](/sql-statements/sql-statement-import-into.md)

## 数据增删改

### Pipelined DML

Pipelined DML 是从 TiDB v8.0.0 开始引入的实验特性。在 v8.5.0 中,TiDB 对该功能进行了完善,其性能得到大幅提升。

主要优势:

- 在事务执行过程中,通过将数据持续写入存储层,而不是全部缓存在内存中,使得事务大小不再受到 TiDB 内存限制,支持处理超大规模数据。
- 速度比标准 DML 更快。
- 通过系统变量启用,无需修改 SQL 语句。

主要限制:

- 只适用于[自动提交](/transaction-overview.md#自动提交)`INSERT``REPLACE``UPDATE``DELETE` 语句。

适用场景:

- 通用的批量数据处理场景,例如大量数据的插入、更新、删除等。

更多信息,请参考 [Pipelined DML](/pipelined-dml.md)

### 非事务 DML 语句

非事务 DML 语句是从 TiDB v6.1.0 开始引入的功能。在 v6.1.0 中,该功能仅支持 `DELETE` 语句。从 v6.5.0 起,该功能新增支持 `INSERT``REPLACE``UPDATE` 语句。

主要优势:

- 通过将一条 SQL 语句拆为多条语句执行,使得每个语句的事务更小,绕开内存限制。
- 处理速度比标准 DML 稍快或相当。

主要限制:

- 只适用于[自动提交](/transaction-overview.md#自动提交)的语句。
- 需要修改 SQL 语句。
- 对 SQL 语句本身限制较多,不符合条件的语句可能需要改写。
- 因为 SQL 语句被拆分执行,不具有完整的事务 ACID 性质,在失败时语句可能部分完成。

适用场景:

- 大量数据的插入、更新、删除等场景。由于限制较多,建议在 Pipelined DML 不适用的场景下考虑使用。

更多信息,请参考[非事务 DML 语句](/non-transactional-dml.md)

### 已被废弃的 batch-dml

TiDB 在 v4.0 之前提供了 batch-dml 功能,用于批量数据处理。该功能已被废弃,不再推荐使用。batch-dml 功能由以下这些系统变量控制:

- `tidb_batch_insert`
- `tidb_batch_delete`
- `tidb_batch_commit`
- `tidb_enable_batch_dml`
- `tidb_dml_batch_size`

因为该功能可能引起数据索引不一致,导致数据损坏或丢失,以上变量已被废弃,并计划将在未来的版本中逐渐移除。

不建议在任何场景下使用已被废弃的 batch-dml 功能。建议选择上面描述的其它方案。
Loading

0 comments on commit e32239d

Please sign in to comment.