如何稳定高效地进行 TiDB 数据导入导出?

对于在数据库行业中摸爬滚打多年的老鸟 DBA 来说,TiDB 可是一点也不陌生,作为 PingCAP 公司自主研发的真开源分布式数据库,其先进的设计理念以及丰富的生态工具,可算得上是业界自主创新和性能领先的代名词。

TiDB 是谁?​

显然这个章节在这里有点多余,但我们也想为不了解 TiDB 的小伙伴们做一个科普,TiDB 是一款开源的分布式关系型数据库管理系统,由PingCAP开发,旨在解决传统关系型数据库在扩展性和灵活性上的局限。它有很多的优点:

  • TiDB 是开源产品:TiDB 具有一个相当成熟的社区,并且具有相当数量并持续增长的代码贡献者,这使 TiDB 的成熟度越来越高。
  • 强大的可扩展性:TiDB 是一个分布式数据库,有着非常好的读、写扩展性,尤其是写扩展性,可以存储海量的数据,数百 TB 数据轻松存储。
  • 存算分离架构:使用户可以单独为计算资源或存储资源进行扩容,避免其中一方资源的浪费。
  • HTAP 能力:OLTP 和 OLAP 能力相融合,提供 HTAP 的混合负载能力,赋予 TiDB 强大的业务处理能力和数据查询能力。
  • 在线扩缩容与升级:在 TiDB 的存算分离架构下,数据库的扩缩容和升级再也不用停机了,对于长期在线的业务系统来说尤为重要。

TiDB 配套工具的弊病?​

TiDB 很强,在配套工具方面,TiDB 也提供了各式各样的功能,例如 Dumpling、Lightning、Data Migration(DM)、Backup & Restore、TiCDC 等等,这些工具各自都有不同的使用场景和限制,想要熟练运用这些工具,那就需要花大量的时间去学习。

然而,即使你可以很熟练地去运用这些工具,也可能会碰到一些问题,就拿 TiDB 的数据导入和数据导出方面举例,Dumpling 工具用于 TiDB 数据库导出数据,而 Lightning 用于 TiDB 的数据导入,这两个工具就存在如下一些限制:

  • 通过 Dumpling 工具导出较大的单表(超过 1 TB)时,可能会因为数据过大导致 TiDB 内存溢出(OOM)。

  • Lightning 工具需要 tikv-importer 等工具配合使用,操作复杂难以上手,并且该工具运行后,TiDB 集群无法正常对外提供服务。

  • 最重要的一个点,使用数据导入导出工具(包含上述两个工具)会对数据库本身的业务读写造成负面影响,降低数据库的性能。

整体来讲,使用这些工具多多少少需要数据库来配合,这样会对业务的可用性带来很大的影响,这就有点和企业所注重的点背道而驰,对于企业来说,我最关注的是数据库的稳定性,你不能对我的业务造成任何影响,然后我还要高效,还要操作简单,有办法吗?

NineData 的 TiDB 导入导出解决方案​

在 NineData 最新发布的版本中,提供了对 TiDB 数据导入导出的支持,得益于 NineData 天然的独立性,在对 TiDB 进行数据导入导出时,再也无需 TiDB 数据库进行各种各样的妥协了,让 TiDB 该干什么干什么去,剩下的交给 NineData 就行。

在功能方面,导入功能支持 SQL、CSV、EXCEL 等文件格式,同时支持多种自定义配置,例如可以自定义指定导入到哪个表的哪个列、遇到重名冲突时的执行策略等;导出功能支持通过 SQL 语句或直接选择目标库表进行导出,还支持数据、结构、结构+数据三种形式,支持导出到 SQL、CSV、EXCEL 三种文件类型,除此之外,还有多种高级设置(大字段导出、SQL 脚本扩展、触发器|函数|视图|存储过程|事件导出等)可供选择。

在操作方面,页面全程傻瓜式流程引导,只要没有语言障碍,就能轻松玩转。

在安全方面,非管理员用户执行导入导出时,系统自动生成审批流程,只有在管理员审批通过后,才能实际执行到 TiDB 数据源。

功能实操演示​

数据导出

  1. 登录 NineData 控制台,单击数据库 DevOps>数据导出,然后在页面中单击创建数据导出,在如下页面中根据提示配置导出任务,然后单击创建数据导出

  2. 任务跑完后,可以在任务详情页面单击下载,将导出的文件下载到本地,该文件可用于下方的数据导入任务。

数据导入

  1. 登录 NineData 控制台,单击数据库 DevOps>数据导入,然后在页面中单击创建数据导入,在如下页面中根据提示配置导入任务,然后单击创建数据导入

  2. 等待任务跑完即可。

总结​

在本次的功能验证过程中可以发现,NineData 对 TiDB 的数据导入导出功能都提供了良好的支持,并且完美绕开了官方配套工具对业务库带来的性能影响,真正意义上做到了企业所关注的稳定高效简单安全

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

低温测控芯片迎来突破性进展!

为支持大规模超导量子计算机的开发,日本最大的公共研究机构之一国家先进工业科学与技术研究所 (AIST) 的研究人员与横滨国立大学、东北大学(日本国立大学之一)和NEC公司合作,提出并成功演示了一种可在低温下控制许多量子比特的超导…

下载安装Grafana 监控mysql和Linux主机

下载地址:https://grafana.com/grafana/download [rootlocalhost ~]# wget https://dl.grafana.com/oss/release/grafana-7.2.0- 1.x86_64.rpm 安装 [rootlocalhost ~]# yum install grafana-7.2.0-1.x86_64.rpm -y启动服务 [rootlocalhost ~]# systemctl enable --now grafa…

【MySQL】表的基本操作

🌎表的基本操作 文章目录: 表的基本操作 创建查看表       创建表       查看表结构 表的修改       表的重命名       表的添加与修改       删除表结构 总结 前言: 在数据库中,数据表是存储和组…

数据库管理-第198期 升级Oracle ACE Pro,新赛季继续努力(20240605)

数据库管理198期 2024-06-05 数据库管理-第198期 升级ACE Pro,新赛季继续努力(20240605)1 惊喜2 变化3 Oracle ACE总结 数据库管理-第198期 升级ACE Pro,新赛季继续努力(20240605) 作者:胖头鱼的…

动态规划——浅谈dp如何入门,以及入门题目(值得收藏,持续更新)

前言 动态规划如何入门?如果你问我怎么精通,那我只能告诉你我也不知道,但你要问我怎么入门,那我就可以和你说道说道了. 我并没有能力也不想说你看完就会了,我只是想给大家开个头,你只要知道怎么写了怎么去思考了,你就可以通过刷题来强化思维了,能走多远就看各位的造化了! 动…

Day12 待办事项接口增删改查(CURD)

​​​ 本章节实现了待办事项接口增删改查,效果如下 一.添加待办事项控制器(ToDoController) 控制器类需要继承 ControllerBase 基类需要添加 [ApiController] 特性以及 [Route] 特性Route(路由) 特性参数规则,一般写法是 [Route(“api/[controller]/[action]”)] 。也就…

算法 | hbut期末复习笔记

贪心选择策略:所求问题的整体最优解可以通过一系列局部最优的选择(贪心选择)得到 最优子结构:问题的最优解包括了其子问题的最优解 回溯法:具有限界函数的深度优先搜索法 回溯法的解空间:子集树&排列…

自动控制:自治系统与非自治系统的稳定性分析

自动控制:自治系统与非自治系统的稳定性分析 在自动控制领域,理解自治系统和非自治系统的区别对于分析系统稳定性至关重要。自治系统的运动方程只与系统的状态有关,而非自治系统的运动方程则与系统的状态和时间都有关系。本文将探讨非自治系…

低代码/无代码可以降低程序员哪些门槛

低代码/无代码开发平台是一种新兴的软件开发模式,它通过图形化界面、拖拽式操作等方式,快速构建应用程序,从而降低了开发者的准入门槛。这种模式对程序员来说,不仅可以提高开发效率,还可以在某些情况下促进业务人员成为…

mysql引入表名称的注意事项

1、遇到问题 mapper中的文件是这样的 解析出来的sql是这样的 sql显示为:select * from ‘tableName’ 2、解决方法 mapper文件种使用${tableName}而不是#{tableName}

mysql高级刷题-01-求项目子任务分组计算

这条 SQL 查询用于从 Tasks 表中计算项目的相关信息,并根据项目的总时长进行排序。具体来看,这段查询的目的是将连续的任务分组为一个项目,并计算每个项目的总天数、子任务 ID 列表、项目的开始日期和结束日期。下面是对这条 SQL 查询的详细分…

java版MES系统全套源码,支持 SaaS 多租户,管理后台的 Vue3 版本采用 :vue-element-plus-admin

MES生产制造执行系统源码,有演示,自主研发,多个项目应用案例,成熟稳定。支持二次开发,商业授权后可商用。 MES系统是面向制造企业车间执行层的生产信息化管理系统,能实时监控生产过程、管理制造数据、优化生…

K8S——安全机制

目录 机制说明: 一、认证(Authentication) 1、三种认证方式 ①HTTP Token 认证:通过一个 Token 来识别合法用户 ②HTTP Base 认证:通过用户名密码的方式认证 ③HTTPS 证书认证(最严格)&am…

【并发】Synchronized的底层原理

基本概念 Synchronized【对象锁】采用互斥的方式让同一时刻最多只有一个线程能够持有【对象锁】,如果其他线程想要获取这个【对象锁】就会被阻塞住 底层实现原理 我们可能听过,synchronized底层是通过Monitor来实现的,但如何直观的观察呢&…

一起来露营吧!2024COSP上海国际户外展带您逃离城市,尽享夏日美好~

夏日,清空,微风 宜在湖畔撒欢,宜在山野放松 宜露营、听音乐、感受自然 初夏时节,微风不燥,最适合露营啦! 一块绿地,一顶帐篷,一片安静的湖 在如茵绿地上,躺进初夏里 …

同一浏览器不同用户登录覆盖问题

同一浏览器使用的 Cookie 是相同的,第二个用户登录时,将会覆盖第一个用户的登录信息。不能存放在 Cookie 内,这样不能唯一区分用户,所以将Cookies改成localStorage import Cookies from js-cookieconst TokenKey Admin-Tokenexp…

DNS域名

DNS域名 DNS是域名系统的简称 域名和ip地址之间的映射关系 互联网中,ip地址是通信的唯一标识 访问网站,域名,ip地址不好记,域名朗朗上口,好记。 域名解析的目的就是为了实现,访问域名就等于访问ip地址…

代码随想录算法训练营Day15|102.二叉树的层序遍历 226.翻转二叉树 101.对称二叉树

102.二叉树的层序遍历 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right)…

企业建设数字工厂管理系统该如何选择供应商

随着信息技术的飞速发展,数字化转型已成为企业提升竞争力的关键。在制造业领域,建设数字工厂管理系统更是实现智能化生产、优化资源配置、提高生产效率的重要途径。然而,面对市场上琳琅满目的数字工厂管理系统供应商,企业改如何选…

TCP协议的核心机制

TCP协议的核心机制 一:确认应答机制1.2:超时重传接收缓冲区 超时重传时间重置连接 一:确认应答机制 对于TCP协议来说,要解决的一个很重要的问题,就是可靠传输 可靠传输,不是指发送方能够100%的把数据发送给接收方,而是尽可能. 尤其是让发送方知道,接收方是否收到. 举个例子: …