如何稳定高效地进行 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 的数据导入导出功能都提供了良好的支持,并且完美绕开了官方配套工具对业务库带来的性能影响,真正意义上做到了企业所关注的稳定高效简单安全

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

powershell:使用IProgressDialog接口创建windows标准进度对话框。

禁止任何形式的抄录,转载请附上本文章地址 Add-Type using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Runtime.InteropServices; // 定义ProgressDialog类,实现IProgressDialog接口 …

【SpringCloud学习笔记】Docker(中篇)

Docker 1. 自定义镜像 前面我们都是使用docker pull拉取仓库中现成的镜像,但是如果我们想要将一个Java应用程序构建成镜像然后部署应该怎么做呢?这个时候我们就需要自定义镜像了 **镜像:**本质上就是一堆文件的集合,包含了应用程…

深入探讨5种单例模式

文章目录 一、对比总览详细解释 二、代码1. 饿汉式2. 饱汉式3. 饱汉式-双检锁4. 静态内部类5. 枚举单例 三、性能对比 一、对比总览 以下是不同单例模式实现方式的特性对比表格。表格从线程安全性、延迟加载、实现复杂度、反序列化安全性、防反射攻击性等多个方面进行考量。 …

淘宝扭蛋机小程序,扭蛋市场创新模式

扭蛋机作为潮玩市场的娱乐消费方式,成为了当下消费者的新宠。扭蛋机凭借自身性价比高、商品多样、惊喜性等特点,吸引了各个年龄层的消费者,不仅年轻人喜欢,不少小学生和老年人也非常喜欢,扭蛋机市场迎来了快速发展期。…

MySQL: 表的增删改查(基础)

文章目录 1. 注释2. 新增(Create)3. 查询(Retrieve)3.1 全列查询3.2 指定列查询3.3 查询字段为表达式3.4 别名3.5 去重: distinct3.6 排序: order by3.7条件查询3.8 分页查询 4. 修改 (update)5. 删除(delete)6. 内容重点总结 1. 注释 注释:在SQL中可以使用“–空格…

Spring Boot 集成 zxing 生成条形码与二维码

前面我们知道了怎么通过 使用 zxing 生成二维码以及条形码, 由于我们现在都是 web 端的项目了,那么我们看下怎么使用 Spring Boot 集成然后返回给前端展示: 工程源码 对应的工程源码我放到了这里:github源码路径,点击…

大模型Prompt-Tuning技术进阶

LLM的Prompt-Tuning主流方法 面向超大规模模型的Prompt-Tuning 近两年来,随之Prompt-Tuning技术的发展,有诸多工作发现,对于超过10亿参数量的模型来说,Prompt-Tuning所带来的增益远远高于标准的Fine-tuning,小样本甚至…

基于STM32的各种数学函数优化计算方法(代码开源)

前言:本文为手把手教学 STM32 的数学计算公式优化方法的教程,本教程的 MCU 使用 STM32F103ZET6 。本篇博客将使用非传统数学库计算手段进行各种数学函数的计算,优化的数学计算包括:sin()、cos()、arctan()、arcsin() 与 1/sqrt()。…

Python魔法之旅专栏(导航)

目录 推荐阅读 1、Python筑基之旅 2、Python函数之旅 3、Python算法之旅 4、博客个人主页 首先,感谢老铁们一直以来对我的支持与厚爱,让我能坚持把Python魔法方法专栏更新完毕! 其次,为了方便大家查阅,我将此专栏…

NetSuite精益实施 之 系统切换作业标准化

这个题目为近日所思,一直没有落笔。今天是端午假日,得空卸货。 标准化是精益实施的三个基础之一,在我们的项目实践中没有须臾忘记。在此我们不再赘述标准化为啥这么重要,更多来分享如何标准化。 在项目实施的各阶段中&#xff0…

冯喜运:6.10周一黄金原油行情趋势分析及独家操作建议

【黄金消息面分析】:上周全球金融市场惊现戏剧性大逆转,美国多项经济数据证实劳动力市场降温,9月降息重返视野令全球风险情绪几乎陷入狂热状态,全球股市接连创新高,但上周五意外“爆表”的非农令市场惊现大逆转&#x…

【LeetCode】39.组合总和

组合总和 题目描述: 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一个…

c#未能加载基类System错误 这台计算机上缺少此项目引用的 NuGet 程序包

拷贝代码到另一台计算机运行,打开Form1.cs报错 首先确认package的框架 如果是472,则更换472的框架 打开项目->xx属性,进行修改 如果框架正确,就是未识别到程序包 可以参考: https://www.cnblogs.com/txwtech/p/1…

深入ES6:解锁 JavaScript 类与继承的高级玩法

个人主页:学习前端的小z 个人专栏:JavaScript 精粹 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! ES5、ES6介绍 文章目录 💯Class🍟1 类的由来🍟2 co…

一、Socket创建和连接

C网络编程(asio) 文章目录 C网络编程(asio)1、Asio概述2、网络编程基本流程2、创建socket3、创建监听socket4、绑定accpet监听套接字5、连接指定的端点6、服务器接收连接 点击查看代码 1、Asio概述 ​ Asio起源于Boost库&#xf…

Kafka 架构

1 整体架构 1.1 Zookeeper Zookeeper 是一个分布式协调服务,用于管理 Kafka 的元数据。它负责维护 Kafka 集群的配置信息、Broker 列表和分区的 Leader 信息。 Zookeeper 确保了 Kafka 集群的高可用性和可靠性。 但 Zookeeper 已经成为 Kafka 性能瓶颈,…

【Vue】获取模块内的actions方法

目标: 掌握模块中 action 的调用语法 (同理 - 直接类比 mutation 即可) 注意: 默认模块中的 mutation 和 actions 会被挂载到全局,需要开启命名空间,才会挂载到子模块。 调用语法: 直接通过 store 调用 $store.di…

【Linux多线程】线程的终止、等待和分离

文章目录 线程终止正常退出return 退出pthread_exit函数终止线程 pthread_cancel强制终止线程进程终止 线程等待为什么需要等待线程?pthread_join函数 分离线程pthread_detach函数 线程终止 下面给出终止线程的三种方式: 正常退出: 线程执行…

【深度学习】PuLID: Pure and Lightning ID Customization via Contrastive Alignment

论文:https://arxiv.org/abs/2404.16022 代码:https://github.com/ToTheBeginning/PuLID 文章目录 AbstractIntroductionRelated WorkMethods Abstract 我们提出了一种新颖的、无需调整的文本生成图像ID定制方法——Pure and Lightning ID customizatio…

机器学习笔记 - LoRA:大型语言模型的低秩适应

一、简述 1、模型微调 随着大型语言模型 (LLM) 的规模增加到数千亿,对这些模型进行微调成为一项挑战。传统上,要微调模型,我们需要更新所有模型参数。这也称为完全微调 (FFT) 。下图详细概述了此方法的工作原理。 完全微调FFT 的计算成本和资源需求很大,因为更新每…