Lightning for CSV:快速指南
作者: 张鱼小丸子 -PingCAP 原文来源:https://tidb.net/blog/f0a95bc3
注意事项
在使用 tidb-lightning 前,需注意以下事项:
tidb-lightning 运行后,TiDB 集群将无法正常对外提供服务。 集群会变为“导入模式”,并产生大量未压缩的文件,继而消耗 CPU 并导致迟延 (stall)。 若 tidb-lightning 崩溃,集群仍会留在“导入模式” 。需要使用 tidb-lightning-ctl 手动将集群转回“普通模式”:
硬件需求
tidb-lightning 和 tikv-importer 这两个组件皆为资源密集程序,建议各自单独部署。 为了优化效能,建议硬件配置如下:
tidb-lightning 32+ 逻辑核 CPU 足够储存整个 SQL dump 数据源的 SSD 硬盘,读取速度越快越好 使用万兆网卡,带宽需 300 MB/s 以上 运行过程默认会打满 CPU,建议单独部署。条件不允许的情况下可以和其他组件 (比如 TiDB-server) 部署在同一台机器上,然后通过配置 region-concurrency 限制 tidb-lightning 的 CPU 使用。
tikv-importer 32+ 逻辑核 CPU 32 GB+ 内存 1 TB+ SSD 硬盘,IOPS 越高越好(要求 ≥8000) 使用万兆网卡,带宽需 300 MB/s 以上 运行过程中 CPU、I/O 和网络带宽都可能打满,建议单独部署。
CSV 文件命名
CSV 文件的文件名必须类似于 db_name.table_name.csv
如果有切分成多个 CSV 文件的话,文件名必须类似于
db_name.table_name.003.csv
表结构
在 TiDB 中预先 create database db_name
在 TiDB 中预先 create table table_name
登录中控机,准备 tidb-lightning 和 tikv-importer
下载 Lightning for CSV
解压
拷贝覆盖 ansible 中的 lightning 相关组件
使用 ansible 部署 tidb-lightning
编辑 …/tidb-ansible/inventory.ini ,分别配置一个 IP 来部署 tidb-lightning 和 tikv-importer
编辑 group_vars/lightning_server.yml ,配置 CSV 文件路径
编辑 group_vars/importer_server.yml,配置 SST 文件路径
优化系统配置
开始部署
登录 tidb-lightning 服务器,调整配置文件
编辑 tidb-lightning 配置文件
修改 no-schema = true
[mydumper]
no-schema = true
在 tidb-lightning.toml 尾部增加代码块
[mydumper.csv] separator = ‘,’ delimiter = ‘”’ header = true not-null = false null = ‘N’ backslash-escape = true trim-last-separator = false
在 {{ deploy_dir }}/mydumper 下存放 Example CSV
ID,Region,Count 1,“East”,32 2,“South”,N 3,“West”,10 4,“North”,39
启动服务
登录 tikv-importer 的服务器,并执行以下命令来启动 Importer。
同路径下的 stop_importer.sh 为停止脚本
登录 tidb-lightning 的服务器,并执行以下命令来启动 Lightning,开始导入过程。
同路径下的 stop_lightning.sh 为停止脚本
版权声明: 本文为 InfoQ 作者【TiDB 社区干货传送门】的原创文章。
原文链接:【http://xie.infoq.cn/article/67d1dd45fc8f6c9ec049d22d0】。文章转载请联系作者。
评论