暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

TiDB Lightning

原创 加菲猫 2022-01-04
1098

TiDB Lightning 支持以下后端:

  • Local-backend
  • Importer-backend
  • TiDB-backend


以上几种后端导入数据的区别如下:

  • Local-backend:tidb-lightning 先将数据编码成键值对并排序存储在本地临时目录,然后将这些键值对以 SST 文件的形式上传到各个 TiKV 节点,然后由 TiKV 将这些 SST 文件 Ingest 到集群中。和 Importer-backend 原理相同,不过不依赖额外的 tikv-importer 组件。
  • Importer-backend:tidb-lightning 先将 SQL 或 CSV 数据编码成键值对,由 tikv-importer 对写入的键值对进行排序,然后把这些键值对 Ingest 到 TiKV 节点中。
  • TiDB-backend:tidb-lightning 先将数据编码 成 INSERT 语句,然后直接在 TiDB 节点上运行这些 SQL 语句进行数据导入

  • 如何选择后端模式


如何选择后端模式

  • 如果导入的目标集群为 v4.0 或以上版本,请优先考虑使用 Local-backend 模式。Local-backend 部署更简单并且性能也较其他两个模式更高
  • 如果目标集群为 v3.x 或以下,建议使用 Importer-backend 模式
  • 如果需要导入的集群为生产环境线上集群,或需要导入的表中已包含有数据,则最好使用 TiDB-backend 模式


此外,目标 TiKV 集群必须有足够空间接收新导入的数据。除了标准硬件配置以外,目标 TiKV 集群的总存储空间必须大于 数据源大小 × 副本数量 × 2。例如集群默认使用 3 副本,那么总存储空间需为数据源大小的 6 倍以上。

1、dumpling 导出数据

./bin/dumpling -uDM -p'$password' -h$host -P3306 --filetype sql --threads 16 -B database -s 1000000 --tidb-mem-quota-query 10485760 -o /data/my_datasource/ > dumpling1.log 2>&1 &

2、部署TiDB Lightning

1)部署tidb

2)下载 TiDB Lightning 安装包

3)数据源写入和tidb-lightning同样机器

4)配置 tidb-lightning.toml,sorted-kv-dir需要设置为一个空的目录


3、运行 tidb-lightning。如果直接在命令行中用 nohup 启动程序,可能会因为 SIGHUP 信号而退出,建议把 nohup 放到脚本里面:

#!/bin/bash

nohup ./bin/tidb-lightning -config ./conf/tidb-lightning.toml > nohup.out &

问题:

1、TiDB Lightning会计算所需空间,如果不够则失败

2、清理之前任务断点等信息

tidb-lightning-ctl --checkpoint-remove=all --config=../conf/tidb-lightning.toml




「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论