Lightning for CSV:快速指南CSDN博客

2023年 10月 13日 88.7k 0

作者:张鱼小丸子-PingCAP

原文来源: tidb.net/blog/f0a95b…

注意事项

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

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

bin/tidb-lightning-ctl -switch-mode=normal

硬件需求

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
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-lightning 和 tikv-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 为停止脚本

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论