- 关于 TiDB
- 主要概念
- 操作指南
- 快速上手
- 部署
- 配置
- 安全
- 安全传输层协议 (TLS)
- 生成自签名证书
- 监控
- 迁移
- 运维
- 扩容缩容
- 升级
- 故障诊断
- 参考手册
- SQL
- 与 MySQL 兼容性对比
- SQL 语言结构
- 数据类型
- 函数与操作符
- SQL 语句
ADD COLUMN
ADD INDEX
ADMIN
ADMIN CANCEL DDL
ADMIN CHECKSUM TABLE
ADMIN CHECK [TABLE|INDEX]
ADMIN SHOW DDL [JOBS|QUERIES]
ALTER DATABASE
ALTER TABLE
ALTER USER
ANALYZE TABLE
BEGIN
CHANGE COLUMN
COMMIT
CREATE DATABASE
CREATE INDEX
CREATE ROLE
CREATE TABLE LIKE
CREATE TABLE
CREATE USER
CREATE VIEW
DEALLOCATE
DELETE
DESC
DESCRIBE
DO
DROP COLUMN
DROP DATABASE
DROP INDEX
DROP ROLE
DROP TABLE
DROP USER
DROP VIEW
EXECUTE
EXPLAIN ANALYZE
EXPLAIN
FLUSH PRIVILEGES
FLUSH STATUS
FLUSH TABLES
GRANT <privileges>
GRANT <role>
INSERT
KILL [TIDB]
LOAD DATA
LOAD STATS
MODIFY COLUMN
PREPARE
RECOVER TABLE
RENAME INDEX
RENAME TABLE
REPLACE
REVOKE <privileges>
REVOKE <role>
ROLLBACK
SELECT
SET DEFAULT ROLE
SET [NAMES|CHARACTER SET]
SET PASSWORD
SET ROLE
SET TRANSACTION
SET [GLOBAL|SESSION] <variable>
SHOW ANALYZE STATUS
SHOW CHARACTER SET
SHOW COLLATION
SHOW [FULL] COLUMNS FROM
SHOW CREATE TABLE
SHOW CREATE USER
SHOW DATABASES
SHOW ENGINES
SHOW ERRORS
SHOW [FULL] FIELDS FROM
SHOW GRANTS
SHOW INDEXES [FROM|IN]
SHOW INDEX [FROM|IN]
SHOW KEYS [FROM|IN]
SHOW PRIVILEGES
SHOW [FULL] PROCESSSLIST
SHOW SCHEMAS
SHOW STATUS
SHOW [FULL] TABLES
SHOW TABLE REGIONS
SHOW TABLE STATUS
SHOW [GLOBAL|SESSION] VARIABLES
SHOW WARNINGS
SPLIT REGION
START TRANSACTION
TRACE
TRUNCATE
UPDATE
USE
- 约束
- 生成列
- 分区表
- 字符集
- SQL 模式
- 视图
- 配置
- tidb-server
- pd-server
- tikv-server
- 安全
- 事务
- 系统数据库
- 错误码
- 支持的连接器和 API
- 垃圾回收 (GC)
- 性能调优
- 监控指标
- 报警规则
- 最佳实践
- TiSpark 使用指南
- TiKV
- TiDB Binlog
- 工具
- TiDB in Kubernetes
- 常见问题 (FAQ)
- 技术支持
- 贡献
- 版本发布历史
- 发布版本汇总
- v3.0
- v2.1
- v2.0
- v1.0
- 术语表
你正在查看 TiDB 数据库的较旧版本 (TiDB v3.0) 的文档。
TiDB Lightning TiDB-Backend
TiDB Lightning 的后端决定 tidb-lightning
将如何把将数据导入到目标集群中。目前,TiDB Lightning 支持 Importer-backend(默认)和 TiDB-backend 两种后端,两者导入数据的区别如下:
Importer-backend:
tidb-lightning
先将 SQL 或 CSV 数据编码成键值对,由tikv-importer
对写入的键值对进行排序,然后把这些键值对 Ingest 到 TiKV 节点中。TiDB-backend:
tidb-lightning
先将数据编码成INSERT
语句,然后直接在 TiDB 节点上运行这些 SQL 语句进行数据导入。
后端 | Importer-backend | TiDB-backend |
---|---|---|
速度 | 快 (~300 GB/小时) | 慢 (~50 GB/小时) |
资源使用率 | 高 | 低 |
导入时是否满足 ACID | 否 | 是 |
目标表 | 必须为空 | 可以不为空 |
部署 TiDB-backend
使用 TiDB-backend 时,你无需部署 tikv-importer
。与标准部署过程相比,部署 TiDB-backend 时有如下不同:
- 可以跳过所有涉及
tikv-importer
的步骤。 - 必须更改相应配置申明使用的是 TiDB-backend。
硬件需求
使用 TiDB-backend 时, TiDB Lightning 的速度仅受限于 TiDB 执行 SQL 语句的速度。因此,即使是低配的机器也足够发挥出最佳性能。推荐的硬件配置如下:
- 16 逻辑核 CPU
- 足够储存整个数据源的 SSD 硬盘,读取速度越快越好
- 千兆网卡
使用 TiDB Ansible 部署
inventory.ini
文件中,[importer_server]
部分可以留空。... [importer_server] # keep empty [lightning_server] 192.168.20.10 ...
忽略
group_vars/all.yml
文件中tikv_importer_port
部分的设置,group_vars/importer_server.yml
文件也不需要修改。但是你需要在conf/tidb-lightning.yml
文件中将backend
设置更改为tidb
。... tikv_importer: backend: "tidb" # <-- 改成 “tidb” ...
启动、部署集群。
为 TiDB Lightning 挂载数据源。
启动
tidb-lightning
。
手动部署
手动部署时,你无需下载和配置 tikv-importer
,TiDB Lightning 可在此下载。
在运行 tidb-lightning
之前,在配置文件中加上如下几行:
[tikv-importer]
backend = "tidb"
或者在用命令行启动 tidb-lightning
时,传入参数 --backend tidb
。
冲突解决
TiDB-backend 支持导入到已填充的表(非空表)。但是,新数据可能会与旧数据的唯一键冲突。你可以通过使用如下任务配置来控制遇到冲突时的默认行为:
[tikv-importer]
backend = "tidb"
on-duplicate = "replace" # 或者 “error”、“ignore”
设置 | 冲突时默认行为 | 对应 SQL 语句 |
---|---|---|
replace | 新数据替代旧数据 | REPLACE INTO ... |
ignore | 保留旧数据,忽略新数据 | INSERT IGNORE INTO ... |
error | 中止导入 | INSERT INTO ... |
从 Loader 迁移到 TiDB Lightning TiDB-backend
TiDB Lightning TiDB-backend 可以完全取代 Loader。下表说明了如何将 Loader 的配置迁移到 TiDB Lightning 配置中:
Loader | TiDB Lightning |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|