TiDB实战篇-TiDB Lightning 导入数据

这篇具有很好参考价值的文章主要介绍了TiDB实战篇-TiDB Lightning 导入数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简介

使用TiDB Lightning 导入数据。

原理

TiKV进入导入模式

TiDB实战篇-TiDB Lightning 导入数据

它是使用物理导入的模式,将SQL文件直接导入到TiKV中,它是一种初始化的导入,也就是说目标的数据库和表都是不能够存在的(注意事项,在这种方式导入的时候TiKV要切换到导入模式才行) 。

初始化表元数据信息

TiDB实战篇-TiDB Lightning 导入数据

将导入的文件分成区块

切分的区块转存到本地

TiDB实战篇-TiDB Lightning 导入数据 

导入数据到TiKV集群

TiDB实战篇-TiDB Lightning 导入数据 

 先导入数据,然后在导入索性。

对于导入的数据进行校验

TiDB实战篇-TiDB Lightning 导入数据

切回到普通模式正常提供服务

TiDB实战篇-TiDB Lightning 导入数据 

导入模式的比较

TiDB实战篇-TiDB Lightning 导入数据

Logical Import Mode 就是执行SQL的方式。 

适用场景

导入限制

TiDB实战篇-TiDB Lightning 导入数据

  • 如果有TiFlash的时候,会影响导入的速度。
  • 如果表里面的字符集是GBK的话,那么TiDB v5.4之前是不支持的。
  • 如果源文件是Apache Parquet文件,不支持导入。 

硬件需求

因为它会跑满机器的性能。

region-concurency 这个配置能够限制TiDB Lighning导入数据时候使用的CPU核数

前置检查

TiDB实战篇-TiDB Lightning 导入数据版本v4.0之后才支持上面的这种导入方式。 

目标库需要的权限

TiDB实战篇-TiDB Lightning 导入数据

并行导入(v5.3以后) 

MySQL分库分表收敛场景

TiDB实战篇-TiDB Lightning 导入数据 

 本身数据很大

TiDB实战篇-TiDB Lightning 导入数据

注意事项

TiDB实战篇-TiDB Lightning 导入数据

TiDB Lightning的使用  

安装

TiDB实战篇-TiDB Lightning 导入数据

下载

TiDB 社区版 | PingCAP

TiDB实战篇-TiDB Lightning 导入数据

安装

#解压下载好的安装包
tar -zxvf tidb-community-toolkit-v6.5.0-linux-amd64.tar.gz
#进入到文件夹以后解压出dumpling
cd tidb-community-toolkit-v6.5.0-linux-amd64
tar -zxvf tidb-lightning-v6.5.0-linux-amd64.tar.gz

vi /etc/profile.d/my.sh
#TOOLKIT_HOME
export TOOLKIT_HOME=/root/tidb-community-toolkit-v6.5.0-linux-amd64
export PATH=$PATH:$TOOLKIT_HOME
source /etc/profile.d/my.sh

打印

[root@master tidb-community-toolkit-v6.5.0-linux-amd64]# tidb-lightning
Verbose debug logs will be written to /tmp/lightning.log.2023-04-16T15.24.04+0800

tidb lightning encountered error: [Lightning:Config:ErrInvalidConfig]tikv-importer.backend must not be empty!

使用 

前期准备

TiDB实战篇-数据导出工具Dumping_顶尖高手养成计划的博客-CSDN博客

#先有对应的SQL文件,这里是TiDB Dumpling导出来的数据(这里我备份了是test库的数据)
cd /tmp/test/sql

[root@master sql]# ll
total 16
-rw-r--r-- 1 root root 146 Apr 16 12:06 metadata
-rw-r--r-- 1 root root  59 Apr 16 12:06 test.emp.0000000010000.sql
-rw-r--r-- 1 root root 139 Apr 16 12:06 test.emp-schema.sql
-rw-r--r-- 1 root root  95 Apr 16 12:06 test-schema-create.sql

#连接到数据库把test库给删除了
mysql -h127.0.0.1 -P4000 -uroot -ptidb

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| INFORMATION_SCHEMA |
| METRICS_SCHEMA     |
| PERFORMANCE_SCHEMA |
| mysql              |
| test               |
+--------------------+
5 rows in set (0.00 sec)

mysql> drop database test;
Query OK, 0 rows affected (0.34 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| INFORMATION_SCHEMA |
| METRICS_SCHEMA     |
| PERFORMANCE_SCHEMA |
| mysql              |
+--------------------+
4 rows in set (0.00 sec)

准备执行的配置文件

vi tidb-lightning.toml

[lightning]
# 数据的并发数。默认与逻辑 CPU 的数量相同。
# 混合部署的情况下可以将其大小配置为逻辑 CPU 数的 75%,以限制 CPU 的使用。
# region-concurrency = 1

# 日志
level = "info"
file = "tidb-lightning.log"


[tikv-importer]
# 是否允许启动多个 TiDB Lightning 实例(**physical import mode**)并行导入数据到一个或多个目标表。默认取值为 false。注意,这个参数**不是用于增量导入数据**,仅限目标表为空的场景使用。
# 多个 TiDB Lightning 实例(physical import mode)同时导入一张表时,此开关必须设置为 true。但前提是目标表不能存在数据,即所有的数据都只能是由 TiDB Lightning 导入。
incremental-import = true

#backend 设置成 pysical import 模式
backend = "local"

# 设置本地临时存储路径。
sorted-kv-dir = "/tmp/sorted-kv-dir"

[mydumper]
# 本地源数据目录或外部存储 URL,这里也就是Dumpling导出数据的目录文件
data-source-dir = "/tmp/test/sql"

# 只导入与该通配符规则相匹配的表。详情见相应章节。
filter = ['*.*', '!mysql.*', '!sys.*', '!INFORMATION_SCHEMA.*', '!PERFORMANCE_SCHEMA.*', '!METRICS_SCHEMA.*', '!INSPECTION_SCHEMA.*']

[tidb]
# 目标集群的信息。tidb-server 的地址,填一个即可。
host = "192.168.66.10"
port = 4000
user = "root"
# 设置连接 TiDB 的密码,可为明文或 Base64 编码。
password = "tidb"

# 表结构信息从 TiDB 的“status-port”获取。
status-port = 10080

# pd-server 的地址,填一个即可。
pd-addr = "192.168.66.10:2379"

 执行

nohup tidb-lightning -config tidb-lightning.toml > nohup.out &

mysql -h127.0.0.1 -P4000 -uroot -ptidb

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| INFORMATION_SCHEMA |
| METRICS_SCHEMA     |
| PERFORMANCE_SCHEMA |
| mysql              |
| test               |
+--------------------+
5 rows in set (0.00 sec)

mysql> use test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select * from emp;
+------+
| id   |
+------+
|    1 |
+------+
1 row in set (0.00 sec)

数据过滤导入

TiDB实战篇-TiDB Lightning 导入数据

断点续传

TiDB实战篇-TiDB Lightning 导入数据 

 文章来源地址https://www.toymoban.com/news/detail-440376.html

到了这里,关于TiDB实战篇-TiDB Lightning 导入数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Pytorch-lightning简介

    pytorch-lighting(简称pl),它其实就是一个轻量级的PyTorch库,用于高性能人工智能研究的轻量级PyTorch包装器。缩放你的模型,而不是样板。 研究代码(位于LightningModule中)。 工程代码(由Trainer处理)。 非必要的研究代码(日志记录等…这在Callbacks中进行) 暂时先上传这些内容

    2024年02月10日
    浏览(25)
  • 使用Ruoyi的方法(数据库的创建、YML文件的修改、前端的导入和启动、云服务器简介、NGINX配置部署前端)

    本文章转载于公众号:王清江唷,仅用于学习和讨论,如有侵权请联系 QQ交流群:298405437 本人QQ:4206359 当我们下载好了Ruoyi-Vue之后,我们得到一个文件夹,如下: 内部又有若干文件,如下: 这里面不仅包括了后端程序(基于SpringBoot的Java程序),也包括前端程序(基于Vue的程

    2024年02月03日
    浏览(49)
  • TIDB简介及基础架构

    TiDB 是一个分布式 NewSQL 数据库。它支持水平弹性扩展、ACID 事务、标准 SQL、MySQL 语法和 MySQL 协议,具有数据强一致的高可用特性,是一个不仅适合 OLTP 场景还适合 OLAP 场景的混合数据库。 SQL,传统关系型数据库,例如 MySQL noSQL,例如 MongoDB,Redis newSQL 1.1.1 传统SQL的问题 互联

    2024年02月12日
    浏览(25)
  • TiDB简介与应用场景

    在当今互联网时代,数据的规模和复杂性不断增长,传统关系型数据库面临着无法满足高并发和大规模数据存储需求的挑战。为了解决这一问题,开源社区涌现出了一系列分布式数据库解决方案,其中TiDB作为一种新兴的分布式数据库引起了广泛的关注。本文将介绍TiDB的基本

    2024年02月10日
    浏览(31)
  • Flink CDC系列之:TiDB CDC 导入 Elasticsearch

    替换目录 tidb-docker-compose 里面的 docker-compose.yml 文件,内容如下所示: 该 Docker Compose 中包含的容器有: TiDB 集群: tikv、pd、tidb。 Elasticsearch:orders 表将和 products 表进行 join,join 的结果写入 Elasticsearch 中。 Kibana:可视化 Elasticsearch 中的数据。 本机添加 host 映射 pd 和 tikv 映射

    2024年02月12日
    浏览(20)
  • TiDB数据库从入门到精通系列之六:使用 TiCDC 将 TiDB 的数据同步到 Apache Kafka

    快速搭建 TiCDC 集群、Kafka 集群和 Flink 集群 创建 changefeed,将 TiDB 增量数据输出至 Kafka 使用 go-tpc 写入数据到上游 TiDB 使用 Kafka console consumer 观察数据被写入到指定的 Topic (可选)配置 Flink 集群消费 Kafka 内数据 部署包含 TiCDC 的 TiDB 集群 在实验或测试环境中,可以使用 TiU

    2024年02月12日
    浏览(39)
  • 使用Sqoop将Hive数据导出到TiDB

    关系型数据库与大数据平台之间的数据传输之前写过一些 使用Sqoop将数据在HDFS与MySQL互导 使用Sqoop将SQL Server视图中数据导入Hive 使用DataX将Hive与MySQL中的表互导 使用Sqoop将Hive数据导出到TiDB虽然没写过,但网上一堆写的,那为什么我要专门写一下呢? 我发现一些大家可能会忽

    2024年01月23日
    浏览(36)
  • 使用DTS实现TiDB到GaiaDB数据迁移

    1 概览 本文主要介绍通过 DTS 数据迁移功能,结合消息服务 for Kafka 与 TiDB 数据库的 Pump、Drainer 组件,完成从TiDB迁移至百度智能云云原生数据库 GaiaDB。 消息服务 for Kafka:详细介绍参见:消息服务 for Kafka 产品介绍 百度智能云云原生数据库GaiaDB:详细介绍参见:云原生数据库

    2024年01月23日
    浏览(30)
  • EasyExcelFactory 导入导出功能的实战使用

    EasyExcelFactory 导入导出功能的实战使用分享: 1、jar包引入 2、excel文档准备 注意:首行名称要和后面实体类里注解的名称保持一样,否则失效。 3、实体类 4、控制层接口样例 5、监听类继承   6、postman 接口调用 调用后成功解析获取到数据。 参考文章:基本使用 基本配置 使

    2024年01月23日
    浏览(26)
  • aws上采用tidb和原生使用aws rds价格的比较。兼数据分析性能的测试

    作者: tidb狂热爱好者 原文来源: https://tidb.net/blog/ef242615 有一个20t-30t的历史库需要做数据分析,节能减排,减容增效。今年大环境不好,aws的费用又是出奇的贵。 历史库的作用是公司近1年的订单合集,平时不需要查询,偶尔会有月统计的需求。之前用aws的mysql无法完成需求

    2024年02月13日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包