写点什么

Lightning for CSV:快速指南

  • 2022 年 7 月 11 日
  • 本文字数:1509 字

    阅读完需:约 5 分钟

作者: 张鱼小丸子 -PingCAP 原文来源:https://tidb.net/blog/f0a95bc3

注意事项

在使用 tidb-lightning 前,需注意以下事项:


tidb-lightning 运行后,TiDB 集群将无法正常对外提供服务。 集群会变为“导入模式”,并产生大量未压缩的文件,继而消耗 CPU 并导致迟延 (stall)。 若 tidb-lightning 崩溃,集群仍会留在“导入模式” 。需要使用 tidb-lightning-ctl 手动将集群转回“普通模式”:


bin/tidb-lightning-ctl -switch-mode=normal
复制代码

硬件需求

tidb-lightningtikv-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

wget https://download.pingcap.org/tidb-lightning-test-xx-latest-linux-amd64.tar.gz
复制代码

解压

tar -zxvf tidb-lightning-test-xx-latest-linux-amd64.tar.gz
复制代码

拷贝覆盖 ansible 中的 lightning 相关组件

cp -R .../tidb-lightning-test-xx-latest-linux-amd64/bin .../tidb-ansible/resources/
复制代码

使用 ansible 部署 tidb-lightning

编辑 …/tidb-ansible/inventory.ini ,分别配置一个 IP 来部署 tidb-lightningtikv-importer

...[importer_server]192.168.20.9
[lightning_server]192.168.20.10...
复制代码

编辑 group_vars/lightning_server.yml ,配置 CSV 文件路径

---dummy:
# 获取 mydumper SQL dump 的路径。data_source_dir: "{{ deploy_dir }}/mydumper"
复制代码

编辑 group_vars/importer_server.yml,配置 SST 文件路径

---dummy:
# 储存引擎文件的路径。需存放在空间足够大的分区。import_dir: "{{ deploy_dir }}/data.import"
复制代码

优化系统配置

ansible-playbook bootstrap.yml -l lightning_server_ip,importer_server_ip --extra-vars "dev_mode=True"    
复制代码

开始部署

ansible-playbook deploy.yml -l lightning_server_ip,importer_server_ip
复制代码

登录 tidb-lightning 服务器,调整配置文件

编辑 tidb-lightning 配置文件

vi {{ deploy_dir }}/conf/tidb-lightning.toml
复制代码

修改 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。

{{deploy_dir}}/scripts/start_importer.sh
复制代码


同路径下的 stop_importer.sh 为停止脚本

登录 tidb-lightning 的服务器,并执行以下命令来启动 Lightning,开始导入过程。

{{deploy_dir}}scripts/start_lightning.sh
复制代码


同路径下的 stop_lightning.sh 为停止脚本


发布于: 刚刚阅读数: 4
用户头像

TiDB 社区官网:https://tidb.net/ 2021.12.15 加入

TiDB 社区干货传送门是由 TiDB 社区中布道师组委会自发组织的 TiDB 社区优质内容对外宣布的栏目,旨在加深 TiDBer 之间的交流和学习。一起构建有爱、互助、共创共建的 TiDB 社区 https://tidb.net/

评论

发布
暂无评论
Lightning for CSV:快速指南_TiDB 社区干货传送门_InfoQ写作社区