只要15分钟,TiDB国产化数据库快速入门,简单高效

news2024/9/21 22:35:31

TiDB国产化数据库快速入门

  • 1.TiDB服务部署
  • 2.TiDB服务核心组件说明
    • 2.1 PD(Placement Driver)- 交通指挥中心
    • 2.2 TiDB(SQL Layer)- 餐厅前台
    • 2.3 TiKV(分布式存储层)- 仓库存储系统
    • 2.4 TiFlash(列式存储引擎)- 快速分析机器
  • 3.TiDB功能使用
    • 3.1 数据共享
    • 3.2 数据类型对比mysql的差异
    • 3.3 TiDB环境部署要求

引言:
为什么要使用国产化数据库?
原因:
政府原因:2025年中国数据库要实现国产化,很多国营企业要国产化数据库

性能原因:TiDB数据库,相比于传统mysql,更加强大,能存储更多的数据,突破之前mysql的性能,mysql单表5000w数据之后就要考虑中间件进行分库分表

兼容原因:TiDB数据库,可以兼容mysql数据库进行迁移,同时他还能保证数据库的ACID,也有悲观锁和乐观锁,默认悲观锁。可以百分百保证数据的强一致性

1.TiDB服务部署

官方网站:https://docs.pingcap.com/zh/tidb/stable/dev-guide-build-cluster-in-cloud

Linux服务器部署测试(单机版安装部署):

curl --proto ‘=https’ --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
在这里插入图片描述

替换模板:
source ${your_shell_profile}

例如:
source /home/lanxi/.bashrc

启动方式有三种:

  1. tiup playground (不指定核心组件参数)

  2. tiup playground v8.1.0 --db 2 --pd 3 --kv 3 (指定核心组件参数,这几个核心组件下文会介绍其功能)

  3. tiup playground v8.1.0 --db 2 --pd 3 --kv 3 --host 192.168.1.102 (指定核心组件参数,且外部可访问,推荐,192.168.1.102替换为自己服务器IP即可)

在这里插入图片描述

2.TiDB服务核心组件说明

可以进入控制面板,TiDB Dashboard 的这个地址,就可以看到各个核心组件的健康状态
以我自己例如:http://192.168.1.106:2382/dashboard

在这里插入图片描述

TiDB有这三个非常重要的核心组件,PD,TiDB,TiKV,TiFlash

2.1 PD(Placement Driver)- 交通指挥中心

想象一下 PD 就像是一个城市的交通指挥中心。它负责整个数据库集群的元数据管理,比如数据存储的分布、数据的复制和均衡等。就像交通指挥中心监控和调度车辆流一样,PD 监控和调度数据流,确保数据在整个集群中均匀分布,并且副本保持最新的状态。
总结:负责调度和监控

2.2 TiDB(SQL Layer)- 餐厅前台

TiDB 组件是与用户直接交互的 SQL 层,就像餐厅的前台接待一样。当用户提交 SQL 请求时,TiDB 负责解析这些请求,制定执行计划,并把这些请求转换成可以在底层存储系统中执行的操作。就像前台接待把顾客引导到空位上一样,TiDB 把数据请求引导到正确的数据存储位置。
总结:负责接受SQL请求和返回SQL结果

2.3 TiKV(分布式存储层)- 仓库存储系统

TiKV 是 TiDB 的存储层,它以键值对的形式存储数据。想象一下 TiKV 就像一个巨大的自动化仓库,每个货物(数据)都有一个独特的货架位置(键)。当你需要存取货物时,你只需要提供正确的货架位置,仓库的自动化系统就会快速地帮你找到货物。TiKV 通过分布式的方式存储数据,确保数据的高可用性和容错性。
总结:负责存储数据并保证数据的高可用性

2.4 TiFlash(列式存储引擎)- 快速分析机器

TiFlash 是 TiDB 的列式存储引擎,主要用于 OLAP(在线分析处理)场景。可以把它想象成一个高效的数据分析机器,它能够快速处理和分析大规模数据集。就像一个拥有高速处理器和优化算法的分析机器,TiFlash 可以快速生成报告和数据分析结果,特别适合处理复杂的查询和报表需求。
总结:负责快速处理分析型查询

3.TiDB功能使用

3.1 数据共享

在这里插入图片描述
在这里插入图片描述

这样的好处就是,KV可以专注于存储数据,DB会进行数据同步,将来服务只需要在Nginx服务上分配多个DB负载去请求即可,减少数据库请求压力

例如:
在这里插入图片描述

3.2 数据类型对比mysql的差异

数值类型:TiDB支持整数类型(如TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT)和浮点数类型(如FLOAT, DOUBLE),以及定点数类型(如DECIMAL/NUMERIC)。这些类型在TiDB和MySQL中基本相同,但TiDB在某些情况下可能会有更严格的精度要求。

字符串类型:TiDB支持CHAR(定长字符串)、VARCHAR(变长字符串)、TEXT(大文本数据)、BINARY/VARBINARY(二进制字符串)、以及BLOB(二进制大文件)。这些类型在TiDB中的定义和使用与MySQL类似。

日期和时间类型:TiDB支持的日期和时间类型也与MySQL相似,包括DATE、TIME、DATETIME、TIMESTAMP和YEAR。这些类型在TiDB中的行为与MySQL中的行为一致。

枚举(ENUM)和集合(SET)类型:TiDB支持ENUM和SET类型,这些类型允许你在一组预定义的值中选择。在TiDB中,这些类型内部使用数值来存储,但对外表现上是字符串。

JSON类型:TiDB支持JSON类型,允许存储JSON格式的数据。这与MySQL中的JSON类型相似,但TiDB的JSON类型是实验性的,不建议在生产环境中使用。

空间类型(SPATIAL):TiDB不支持MySQL的空间类型,如GEOMETRY,这与MySQL的一个主要区别。

数据类型定义:在TiDB中,数据类型定义一般为 T(M[, D]),其中M表示最大显示长度(整数类型)、精度(浮点数或定点数)、或最大长度(字符类型),D表示小数位长度。这与MySQL的定义方式相似,但TiDB对某些类型可能有特定的限制或优化。

总的来说,TiDB的数据类型系统与MySQL高度兼容,但在某些高级特性和内部实现上可能存在差异。开发者在使用TiDB时,应该参考TiDB的官方文档来了解具体的数据类型行为和限制。

3.3 TiDB环境部署要求

硬件配置要求:
开发及测试环境:
TiDB: 至少8核CPU,16GB+内存,无特殊存储要求,至少千兆网卡,至少1实例(可与PD同机器)。
PD: 至少4核CPU,8GB+内存,至少200GB SAS存储,至少千兆网卡,至少1实例(可与TiDB同机器)。
TiKV: 至少8核CPU,32GB+内存,至少200GB SSD存储,至少千兆网卡,至少3实例。
TiFlash: 至少32核CPU,64GB+内存,至少200GB SSD存储,至少千兆网卡,至少1实例。
TiCDC: 至少8核CPU,16GB+内存,至少200GB SAS存储,至少千兆网卡,至少1实例。

生产环境:
TiDB: 至少16核CPU,48GB+内存,SSD存储,至少万兆网卡(推荐2块),至少2实例。
PD: 至少8核CPU,16GB+内存,SSD存储,至少万兆网卡(推荐2块),至少3实例。
TiKV: 至少16核CPU,64GB+内存,SSD存储,至少万兆网卡(推荐2块),至少3实例。
TiFlash: 至少48核CPU,128GB+内存,1个或多个SSD存储,至少万兆网卡(推荐2块),至少2实例。
TiCDC: 至少16核CPU,64GB+内存,SSD存储,至少万兆网卡(推荐2块),至少2实例。
监控: 至少8核CPU,16GB+内存,SAS存储,至少千兆网卡,至少1实例。

网络要求:
需要为TiDB组件开放相应的默认端口,例如TiDB的4000端口、PD的2379端口、TiKV的20160端口等 。

磁盘空间要求:
对于生产环境,TiDB建议日志盘至少预留30GB,PD的数据盘和日志盘各至少20GB,TiKV的数据盘和日志盘各至少100GB,TiFlash的数据盘至少100GB,日志盘至少30GB 。
客户端Web浏览器要求:
需要支持现代Web技术的浏览器,以便访问TiDB的监控和管理系统。
请注意,这些是最低要求,实际部署时可能需要根据具体业务需求进行调整。建议参考TiDB的官方文档获取最新的硬件和软件配置要求

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

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

相关文章

java数据库连接池介绍与使用

一. 使用数据库连接池有什么优势 在程序开发的过程中如果不使用数据库连接池 , 可能会导致我们每执行一次sql语句 , 就会向数据库发送请求链接与断开 , 这会消耗我们的内存资源 1. 资源重用更佳 减少开销:数据库连接池通过复用现有的数据库连接,显著减…

冒泡,选择,插入,希尔,快速,归并

冒泡&#xff0c;选择&#xff0c;插入&#xff0c;希尔&#xff0c;快速&#xff0c;归并 选择类的排序&#xff1a;选择排序&#xff0c;堆排序 交换类的排序&#xff1a;冒泡&#xff0c;快排 #include <stdio.h> #include<stdbool.h> #include<stdlib.h&…

Hidden Marlov Model(HMM)

一、Model 1、将声学特征设为X&#xff0c;经过语音识别得到的tokens设为Y&#xff0c;目标是找到通过X得到Y的最大概率&#xff0c;可以通过概率公式改变为 分为两个概率 2、将tokens序列Y转化为states序列S&#xff0c;声学特征分得更细 3、从states到声学特征的过程 二、HM…

力扣面试经典算法150题:罗马数字转整数

罗马数字转整数 今天的题目是力扣面试经典150题中的数组的简单题: 罗马数字转整数 题目链接&#xff1a;https://leetcode.cn/problems/roman-to-integer/description/?envTypestudy-plan-v2&envIdtop-interview-150 题目描述 将一个罗马数字转换成相应的整数。输入是一…

面向未来的低代码开发:人工智能与机器学习的结合

引言 在当今飞速发展的数字化世界中&#xff0c;技术的进步正以前所未有的速度改变着各个行业的运营方式。其中&#xff0c;低代码开发和人工智能&#xff08;AI&#xff09;、机器学习&#xff08;ML&#xff09;这两大技术的结合&#xff0c;正在推动着软件开发领域的又一次变…

身份证OCR识别接口如何用Java调用

一、什么是身份证OCR识别接口&#xff1f; 身份证OCR识别接口又叫身份证识别&#xff0c;身份证图像识别&#xff0c;身份证文字识别&#xff0c;即自动识别和提取身份证上的文字和数字信息。它可以通过图像处理和模式识别算法&#xff0c;将身份证中的姓名、性别、民族、出生…

我们从过去一年的大模型构建过程中学到的经验

当下正是使用大型语言模型&#xff08;LLM&#xff09;构建应用的好时机。过去一年&#xff0c;LLM 已经发展到了足够用于实际应用的水平。LLM 的进化速度与社交媒体层出不穷的演示应用&#xff0c;将在 2025 年吸引对 AI 领域的约 2000 亿美元投资。LLM 的门槛也很低&#xff…

Dbeaver 直连数据库下载数据到本地

参考文章&#xff1a;win11中DBeaver超详细下载与数据库MySQL 要使用 DBeaver 直接连接数据库并将数据下载到本地&#xff0c;您可以按照以下步骤操作&#xff1a; 1. 连接到数据库 打开 DBeaver。点击左上角的“Database”菜单&#xff0c;选择“New Database Connection”…

【数学建模】【2024国赛前必看内容】python基础速成教学及常用python代码包

一、内容介绍 Python在各个编程语言中比较适合新手学习&#xff0c;Python解释器易于扩展&#xff0c;可以使用C、C或其他可以通过C调用的语言扩展新的功能和数据类型。 Python也可用于可定制化软件中的扩展程序语言。Python丰富的标准库&#xff0c;提供了适用于各个主要系统…

<Qt> 系统 - 文件

目录 一、Qt文件概述 二、输入输出设备类 三、文件读写类 四、文件和目录信息类 一、Qt文件概述 文件操作是应用程序必不可少的部分。Qt 作为一个通用开发库&#xff0c;提供了跨平台的文件操作能力。Qt 提供了很多关于文件的类&#xff0c;通过这些类能够对文件系统进行操…

Linux centos stream 9命令及源码

学过linux操作系统的人,对文件、命令比较熟悉。最多的操作是用命令处理文件。 随着学习的深入,会提出疑问:命令长什么样? 出于好奇,会找到命令存放的地方,用cat命令看一下,结果可想而知。 我们知道,命令分内部命令和外部命令,存放在不同的位置。外部命令就是一个可执…

Emacs1.0版本之重要特性及用法实例(一百五十)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 新书发布&#xff1a;《Android系统多媒体进阶实战》&#x1f680; 优质专栏&#xff1a; Audio工程师进阶系列…

【Java 数据结构】LinkedList介绍

LinkedList介绍 回顾ArrayList类链表链表是什么链表的分类单向无头链表模拟实现初始化与基本方法查询修改增加删除 双向无头链表模拟实现初始化与基本方法查询修改增加删除 LinkedList类LinkedList类是什么回顾List接口LinkedList使用构造方法常用方法 LinkedList的遍历ArrayLi…

Windows下编译安装PETSc

本文记录在Windows下使用MinGW-w64编译安装PETSc的流程。 0、环境 操作系统Windows 11MSYS2msys2-x86_64-20240507 1、开发环境 首先&#xff0c;下载并安装MSYS2&#xff0c;然后编辑PATH环境变量&#xff0c;添加mingw64相关路径&#xff1a;C:\msys64\mingw64\bin。 然后…

鼠标为什么要放在鼠标垫上才好用?/ 鼠标的工作原理

原创 OREO 力学科普 在数字化时代&#xff0c;鼠标已经成为我们与计算机交互不可或缺的工具。它不仅提高了工作效率&#xff0c;也丰富了我们的数字生活。鼠标总是能精准地感应到人手的移动方向和距离&#xff0c;从而到达人指定的位置&#xff0c;给我们的计算机操作过程带来…

【区块链+乡村振兴】链上云仓智慧动产监管平台 | FISCO BCOS应用案例

2021 年初 ,《中共中央国务院关于全面推进乡村振兴加快农业农村现代化的意见》将“乡村振兴”的重要性提升 到前所未有的战略高度。而随着科技与金融的深度融合&#xff0c;金融行业亦开始步入大数据、云计算、人工智能、区块 链的新技术发展。启动金融科技赋能乡村振兴示范工程…

企业级营销中心应用架构设计

营销中心依托大数据和数据分析应用,搭建灵活可扩展的系统架构,在客户分群、客户画像、客户标签库及模型工厂的基础上,建立营销全流程管理,包括营销活动的发起、执行、反馈和评价,助力银行实现以数据驱动的精准营销模式。此外,还可提供丰富的场景营销解决方案,协助银行打…

java3d-1_4_0_01-windows-i586.exe

下载 Java 3D API 安装 C:\Program Files\Java\Java3D\1.4.0_01\bin C:\Java\jre6 C:\Java\jdk1.6.0_45 C:\Windows 记录下这 4 个目录&#xff0c;去检查下 4 哥目录下文件多了什么 检查目录① C:\Program Files\Java\Java3D\1.4.0_01\bin 检查目录② C:\Java\jre6 C:…

LVS服务的搭建之NAT模式、DR模式的搭建实战

# LVS的概述 1/什么是LVS linux virtural server的简称&#xff0c;也就是linxu虚拟机服务器&#xff0c;使用lvs可以达到的技术目标是&#xff1a;通过linux达到负载均衡技术和linux操作系统实现一个高性能高可用的linux服务器集群&#xff0c;他具有良好的可靠性&#xff0…