TiDB实战篇-TiDB Lightning 导入数据

news2024/12/25 9:06:21

简介

使用TiDB Lightning 导入数据。

原理

TiKV进入导入模式

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

初始化表元数据信息

将导入的文件分成区块

切分的区块转存到本地

 

导入数据到TiKV集群

 

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

对于导入的数据进行校验

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

 

导入模式的比较

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

适用场景

导入限制

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

硬件需求

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

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

前置检查

版本v4.0之后才支持上面的这种导入方式。 

目标库需要的权限

并行导入(v5.3以后) 

MySQL分库分表收敛场景

 

 本身数据很大

注意事项

TiDB Lightning的使用  

安装

下载

TiDB 社区版 | PingCAP

安装

#解压下载好的安装包
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)

数据过滤导入

断点续传

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/418122.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

论文笔记 U-Net: Convolutional Networks for Biomedical Image Segmentation

摘要:人们普遍认为,深度网络的成功训练需要数千个带注释的训练样本。在本文中,我们提出了一种网络和训练策略,该策略依赖于大量使用数据增强来更有效地使用可用的注释样本。该体系结构包括用于捕获上下文的收缩路径和用于实现精确…

计算机组件介绍

1. CPU 1.1 主频 1.2 CPU缓存 注:越高越好 2. Memory 注:只有内存是主存(因为CPU只能和内存打交道),硬盘这种就是外存(因为硬盘太慢了,跟不上cpu的运行速度) 3. I/O 注:输…

Segment Anything论文翻译,SAM模型,SAM论文,SAM论文翻译;一个用于图像分割的新任务、模型和数据集;SA-1B数据集

【论文翻译】- Segment Anything / Model / SAM论文 论文链接: https://arxiv.org/pdf/2304.02643.pdfhttps://ai.facebook.com/research/publications/segment-anything/ 代码连接:https://github.com/facebookresearch/segment-anything 论文翻译&…

微软 AI 作图上线完全免费,“奖励自己”可提升速度

ChatGPT 的横空出世应该已经让大家意识到了 AI 的恐怖。 称不上啥都能干,但给东西它真学,学得还比你快。 最近一段时间 AI 在作图领域又一次人气暴涨。 什么小姐姐写真、突破时间线的历史古图、甚至是抽象的表情包都可能源于 AI 之手。 看着手痒想玩玩…

滴滴滴,请看MYSQL事务的四大特征(ACID)的实现原理:晓其原理而通其实现。

一.什么是事务的四特征 原子性(Atomicity,或称不可分割性)一致性(Consistency)隔离性(Isolation)持久性(Durability) 接下来,我们将对四大特性的具体概念以及…

本地快速搭建Kubernetes单机版实验环境(含问题解决方案)

Kubernetes是一个容器编排系统,用于自动化应用程序部署、扩展和管理。本指南将介绍Kubernetes的基础知识,包括基本概念、安装部署和基础用法。 一、什么是Kubernetes? Kubernetes是Google开发的开源项目,是一个容器编排系统&…

长沙基层公务员待遇调查结果

之前发放了1000份调查问卷,统计过长沙各个行业(其中一半是信息产业从业人员)的待遇情况,发现很多人对长沙公务员(包含有编制/合同工)的待遇很感兴趣。我随手翻了翻几个基层政府单位的财政决算公开说明&…

MySQL笔记2

MySQL笔记2一、CRUD操作1.修改数据:update2.删除数据:delete二、数据库中表的约束1.非空约束 not null2.唯一性约束 unique3.主键约束 primary key4.外键约束三、索引1**什么是索引**?2**MySQL中最经典的两种存储引擎**3**为何需要索引**&…

Linux项目日志管理log4cpp的安装与使用【结合sample】

文章目录前言log4cpp安装log4cpp的使用设置类别输出的(category)和日志优先级(priority)定义一个宏用于输出日志配置文件使用log4cpp的栗子结语前言 我们都清楚对于一个项目来说它的日志信息是非常重要的,那么我们应该…

springcloud微服务架构搭建过程

项目地址:源代码 仅作为学习用例使用,是我开发过程中的总结、实际的一部分使用方式 开发环境: jdk11 springboot2.7.6 springcloud2021.0.5 alibabacloud 2021.0.4.0 redis6.0 mysql8.0 一、项目搭建 wdz-api:存放远程服务调用相关…

VS for Qt 向MySql 数据库中插入中文

问题: 今天我想向数据库中插入中文,但是,插入的时候会报错: 首先先看报错: QSqlError("1054", "QMYSQL: Unable to execute query", "Unknown column 韩红 in field list")如果错误码…

将Linux服务器上的项目上传至Github

使用git上传项目到github常规的步骤继续上传注意事项参考文章常规的步骤 初始化git空间 git init向缓冲区添加想要上传的文件 git add -f /data/xuhongbo/xuhongbo.code/unbiased_sgg_xuhongbo_BCL/maskrcnn_benchmark/*添加备注信息告诉机器,你真的要添加上述文…

elasticsearch-7.17.9

1、ElasticSearch 1.1、概念 1.1.1、分片(shard) 1、分片 在ES中所有数据的文件块,也是数据的最小单元块,整个ES集群的核心就是对所有分片的分布、索引、负载、路由等达到惊人的速度。 实列场景: 假设 IndexA 有2个分片,向 I…

数据结构 - 计数排序 | C

什么是计数排序 如上图,统计数组中值的个数: 2个[1]:1,1 1个[2]:2 3个[3]:3,3,3 2个[4]:4,4 传给原数组:(即完成排序↓) …

Fast R-CNN

目录 1. 关于 R-CNN 的缺点 2. Fast R-CNN 3. Fast R-CNN 算法的流程 3.1 CNN 特征提取 3.2 ROI pooling 3.3 Fast R-CNN 的输出 3.4 损失函数 4. Fast R-CNN的不足 1. 关于 R-CNN 的缺点 RCNN算法流程如下 RCNN算法分为四个步骤: SS 算法生成2000个候选框…

解除游戏多开限制,关闭互斥体句柄

游戏限制多开有很多种方法 比如说遍历窗口,遍历进程,配置文件,注册表,互斥体,mac地址,ip,公共文件,内存映射等等.方法很多.但是绝大部分游戏限制多开都是采用的互斥体.这节课我们来讲解一下关闭互斥体句柄来实现多开.例子为CQYH(这里的防护建议是,增加多种多开限制的方法 以及 …

系统安全与应用【上】

文章目录1.账号安全控制1.1 系统账号清理1.2 密码安全控制1.3 命令历史限制1.4 终端自动注销2.系统引导和登录控制2.1 使用su命令切换用户2.2 限制使用su命令的用户3.可插拔式认证模块PAM3.1 linux中的PAM安全认证3.2 PAM认证原理3.3 PAM认证的构成3.4 PAM安全认证流程3.5 使用…

(八)【软件设计师】计算机系统—浮点数

浮点数 浮点数。当机器字长为n时,定点数的补码和移码可表示2的n方个数,而其原码和反码只能表示2"-1个数(0的表示占用了两个编码),因此,定点数所能表示的数值范围比较小,在运算中很容易因结果超出范围而…

实力爆表,日日新成为AI领航者

目录正式发布自建算力SenseChat编程能力图像生成后言上周五,阿里发布大模型通义千问,正式开始邀请内测。本周一,人工智能巨头商汤科技正式发布“日日新”大模型体系,全面丰富的产品体系,多个功能表现超预期&#xff0c…

MobTech MobPush|不同手机厂商推送问题

配置了华为厂商推送,为什么有的华为设备无法接收离线消息 首先,排查配置的华为厂商参数是否正确; 其次,检查华为设备EMUI版本,低于5.0可能不支持,如果低于5.0,可以尝试升级设备里的‘华为移动服…