首页 > 其他分享 >TIDB使用介绍

TIDB使用介绍

时间:2024-03-06 23:56:51浏览次数:26  
标签:存储 TiDB 数据库 使用 OLAP 介绍 TIDB SQL 分布式

TiDB概述

TiDB数据库官方网址:https://pingcap.com/zh/

​ TiDB 是 PingCAP 公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP) 的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时 HTAP、云原生的分布式数据库、兼容 MySQL 5.7 协议和 MySQL 生态等重要特性。目标是为用户提供一站式 OLTP (Online Transactional Processing)、OLAP (Online Analytical Processing)、HTAP 解决方案。TiDB 适合高可用、强一致要求较高、数据规模较大等各种应用场景。

数据库分类梳理(SQL、NoSQL、NewSQL)

SQL
关系型数据库(RDBMS,即SQL数据库)
商业软件: Oracle,DB2
开源软件:MySQL,PostgreSQL
关系型数据库面临的单机版本已经很难满足海量数据的需求

NoSQL
NoSQL = Not Only SQL,意即“不仅仅是SQL,提倡运用非关系型的数据存储
普遍选择牺牲掉复杂 SQL 的支持及 ACID 事务换取弹性扩展能力
通常不保证强一致性的(支持最终一致)
主要分类

键值(Key-Value)数据库:如 MemcacheDB,Redis
文档存储:如 MongoDB
列存储:方便存储结构化和半结构化数据,并做数据压缩,对某几列的查询有非常大的IO优势: 如 HBase,Cassandra
图数据库:存储图关系(注意:不是图片)。如 Neo4J
NewSQL
针对OLTP的读写,提供与NOSQL相同的可扩展性和性能,同时能支持满足ACID特性的事务,即保持NoSQL的高可扩展和高性能,并且保持关系模型
为什么需要NewSQL

NoSQL 不能完全取代 RDBMS

单机RDBMS 无法满足性能需求

使用“单机RDBMS + 中间件”方式,在中间件层很难解决分布式事务、高可用问题

NewSQL设计架构

可以基于全新的数据库平台,也可以基于现有的SQL引擎优化。
无共享存储(MPP架构)是比较常见的架构
基于多副本实现高可用和容灾
分布式查询
数据Sharding机制
通过2PC,Paxos/Raft等协议实现数据一致
代表产品

Google Spanner
OceanBase
TiDB
OLTP、OLAP
OLTP
强调支持短时间内大量并发的事务操作(增删改查)能力,每个操作涉及的数据量都很小(比如几十到几百字节)

强调事务的强一致性(如银行转账交易,差错零容忍)

举例:“双十一”期间,可能有几十万用户在同一秒内下订单。后台数据库要能够并发的、以近乎实时的速度处理这些订单请求

OLAP
偏向于复杂的只读查询,读取海量数据进行分析计算,查询时间往往很长
举例:“双十一”结束,淘宝的运营人员对订单进行分析挖掘,找出一些市场规律等等。这种分析可能需要读取所有的历史订单进行计算,耗时几十秒甚至几十分钟。

OLAP代表产品:
Greenplum
TeraData
阿里AnalyticDB
TiDB诞生
​ 著名的开源分布式缓存服务 Codis 的作者,PingCAP联合创始人& CTO ,资深 infrastructure工程师的黄东旭,擅长分布式存储系统的设计与实现,开源狂热分子的技术大神级别人物。即使在互联网如此繁荣的今天,在数据库这片边界模糊且不确定地带,他还在努力寻找确定性的实践方向。
​ 2012 年底,他看到 Google 发布的两篇论文,如同棱镜般折射出他自己内心微烁的光彩。这两篇论文描述了 Google 内部使用的一个海量关系型数据F1/Spanner,解决了关系型数据库、弹性扩展以及全球分布的问题,并在生产中大规模使用。“如果这个能实现,对数据存储领域来说将是颠覆性的”,黄东旭为完美方案的出现而兴奋, PingCAP 的 TiDB 在此基础上诞生了。

TiDB架构特性

TiDB整体架构
​TiDB集群主要包括三个核心组件:TiDB Server,PD Server 和TiKV Server。此外,还有用于解决用户复杂 OLAP 需求的 TiSpark 组件和简化云上部署管理的 TiDB Operator组件。TiDB作为新一代的NewSQL数据库,在数据库领域已经逐渐站稳脚跟,结合了Etcd/MySQL/HDFS/HBase/Spark等技术的突出特点,随着TiDB的大面积推广,会逐渐弱化OLTP/OLAP的界限,并简化目前冗杂的ETL流程,引起新一轮的技术浪潮。一言以蔽之,TiDB,前景可待,未来可期。

标签:存储,TiDB,数据库,使用,OLAP,介绍,TIDB,SQL,分布式
From: https://www.cnblogs.com/beatle-go/p/18057922

相关文章

  • TIDB简介及TIDB部署、原理和使用介绍
    从MySQL架构到TiDB数据库分类​介绍TiDB数据库之前,先引入使用场景。如今的数据库种类繁多,RDBMS(关系型数据库)、NoSQL(NotOnlySQL)、NewSQL,在数据库领域均有一席之地,可谓百家争鸣之势。那么为什么要使用TiDB呢?接下来就从最熟悉的MySQL的使用说起。MySQL痛点​假设现在有一个高速......
  • Docker使用Dockerfile文件(五)
    前言Dockerfile是一个文本文件,其中包含了创建Docker镜像所需的所有指令。这意味着任何人都可以通过运行dockerbuild命令并使用相同的Dockerfile来创建完全相同的镜像。这确保了镜像创建的可重复性,使得在不同的环境中部署应用程序变得更加容易。Dockerfile提供了丰......
  • JAVA API:ArrayList(泛型类)基本使用
    ArrayList代表的是一种集合,一种容器,类似于数组。 容器主要操作:增删改查   packagecom.itheima.ArrayList;importjava.util.ArrayList;importjava.util.List;publicclassdemo{publicstaticvoidmain(String[]args){ArrayListlist=new......
  • Golang使用Goroutine实现筛素数
    //Copyright2009TheGoAuthors.Allrightsreserved.//UseofthissourcecodeisgovernedbyaBSD-style//licensethatcanbefoundintheLICENSEfile.packagemainpackagemainimport"fmt"//Sendthesequence2,3,4,...tochannel&......
  • Z3约束器使用流程
    Z3约束器使用流程创建变量例:x=Int('x')y=Int('y')2.创建solver求解器例:s=Solver()3.添加约束条件例:s.add(x+y==10)4.检查solver中的约束是否满足例:s.check()5.利用model()输出运算结果例:s.model()Z3-examplefromz3import*v2=[18564,37316,32053,33......
  • JAVA API:String String使用注意事项
    包:分门别类程序的工具,类似文件夹  JAVAlang包下不需要导包的。   String:     String常用方法:          String注意事项:              ......
  • 利用SpringAMQP依赖使用RabbitMQ
    消息消费端和提供端需要引入依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency>都需要在application.yml进行如下配置spring:rabbitmq:host:192.168.230.100#r......
  • XXL-JOB 使用笔记(附代码)
    一:分布式调度系统对比开源产品对比:Quartz缺点: 1、不支持任务编排,无可视化编配页面 2、与业务高度耦合,系统侵入性严重 3.调度逻辑和QuartzJobBean耦合在同一个项目中,任务增加会导致系统性能瓶颈 4.quartz底层以“抢占式”获取DB锁并由抢占成功节点负责运行任务,会导......
  • druid连接池的使用
    1packagecom.atsyc.api.druid;23//druid连接池使用类45importcom.alibaba.druid.pool.DruidDataSource;6importcom.alibaba.druid.pool.DruidDataSourceFactory;7importcom.alibaba.druid.pool.DruidPooledConnection;8importorg.junit.Test;910......
  • 使用脚本配置ModelSim仿真
    最后修改日期:2024/03/061.问题使用ModelSim建立Project仿真的方法并不困难,但是经常提示类似于:Error:failtoopen...这样的错误。ModelSim经常找不到compile之后的模块,不知道为什么。此外,Project的方式反而会产生一堆乱七八糟的文件,这不便于管理。2.解决方法2.1.Mod......