• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

数据库tidb、clickhouse、hive概念笔记

武飞扬头像
YuBooy
帮助1

目录

1、有哪些分布式数据库

2、OLAP、OLTP、HTAP

3、TIDB、clickhouse、hive

一、TIDB

1. TiDb 核心特性:

2. TiDb 整体架构:

3.TiDB 存储:

二、clickhouse

三、hive

1.什么是 Hive?

2.Hive 架构和如何运作?


1、有哪些分布式数据库

一、PG-XC 风格:

由传统分库分表演进而来,再加上额外的调度节点实现分片路由、全局时钟实现分布式事务,基本构成了一个分布式数据库。

• 中兴的 GoldenDB

• 华为的 GaussDB

• 腾讯的 TDSQL

二、NewSQL 风格:

数据库中的每个组件都采用分布式设计,底层存储多采用键值(KV)系统,同时引入多数派选举算法实现多副本同步,存储、计算、调度完全分离。

• 国外的 CockroachDB、YugabyteDB

• PingCAP 的 TiDB

• 蚂蚁的 OceanBase

三、云原生数据库:

• AWS 的 Aurora

• 微软的 Cosmos DB

• 阿里的 PolarDB

参考:什么是分布式数据库?我不信,看完这篇你还不懂!! - 知乎

2、OLAP、OLTP、HTAP

数据处理大致可以分成两大类:

联机事务处理 OLTP(On-Line Transaction Processing)

OLTP 的场景如电商场景中加购物车、下单、支付等需要在原地进行大量insert、update、delete操作

联机分析处理 OLAP(On-Line Analytical Processing)

OLAP 场景通常是将数据批量导入后,进行任意维度的灵活探索、BI工具洞察、报表制作等

混合事务和分析处理 HTAP(Hybrid Transaction and Analytical Process)

同时支持在线事务处理与在线分析处理的融合型数据库。

3、TIDB、clickhouse、hive

一、TIDB

官网:https://docs.pingcap.com/zh/ (以下内容摘自官网介绍)

TiDB 是 PingCAP 公司研发的分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 的融合型分布式数据库产品,目标是为用户提供一站式 OLTP、OLAP、HTAP 解决方案。TiDB 适合高可用、强一致要求较高、数据规模较大等各种应用场景。

1. TiDb 核心特性:

  • 支持水平扩容或者缩容

TiDB 存储计算分离的架构设计,可按需对计算、存储分别进行扩容或者缩容。

  • 金融级高可用

数据采用多副本存储,数据副本通过 Multi-Raft 协议同步事务日志,多数派写入成功事务才能提交,确保数据强一致性且少数副本发生故障时不影响数据的可用性。

  • 实时 HTAP

提供行存储引擎 TiKV、列存储引擎 TiFlash 两款存储引擎,TiFlash 通过 Multi-Raft Learner 协议实时从 TiKV 复制数据,确保行存储引擎 TiKV 和列存储引擎 TiFlash 之间的数据强一致。

  • 云原生的分布式数据库

专为云而设计的分布式数据库,通过 TiDB Operator 可在公有云、私有云、混合云中实现部署工具化、自动化。

  • 兼容 MySQL 5.7 协议和 MySQL 生态

2. TiDb 整体架构:

学新通

TiDB Server:SQL 层,负责接受客户端的连接,执行 SQL 解析和优化,最终生成分布式执行计划。可以启动多个 TiDB 实例,通过负载均衡组件(如 LVS、HAProxy 或 F5)对外提供统一的接入地址,客户端的连接可以均匀地分摊在多个 TiDB 实例上以达到负载均衡的效果。TiDB Server 本身并不存储数据,只是解析 SQL,将实际的数据读取请求转发给底层的存储节点 TiKV(或 TiFlash)

PD Server:整个 TiDB 集群的元信息管理模块,负责存储每个 TiKV 节点实时的数据分布情况和集群的整体拓扑结构,提供 TiDB Dashboard 管控界面,并为分布式事务分配事务 ID。PD 不仅存储元信息,同时还会根据 TiKV 节点实时上报的数据分布状态,下发数据调度命令给具体的 TiKV 节点,可以说是整个集群的“大脑”。

Storage Server:数据存储。

  • TiKV Server:负责存储数据,从外部看 TiKV 是一个 Key-Value 存储引擎。存储数据的基本单位是 Region。TiKV 的 API 在 KV 键值对层面提供对分布式事务的原生支持,默认提供了 SI (Snapshot Isolation) 的隔离级别,这也是 TiDB 在 SQL 层面支持分布式事务的核心。TiDB 的 SQL 层做完 SQL 解析后,会将 SQL 的执行计划转换为对 TiKV API 的实际调用。所以,数据都存储在 TiKV 中。
  • TiFlash:TiFlash 是一类特殊的存储节点。和普通 TiKV 节点不一样的是,在 TiFlash 内部,数据是以列式的形式进行存储,主要的功能是为分析型的场景加速。

简化为 PD -> TiDB -> TiKV 的架构:

学新通


3.TiDB 存储

① 存储数据结构: Key-Value Pairs(键值对):TiKV 选择的是 Key-Value 模型,并且提供有序遍历方法。

② 数据落盘方式: 本地存储 (RocksDB):TiKV 没有选择直接向磁盘上写数据,而是把数据保存在 RocksDB 中,具体的数据落地由 RocksDB 负责(RocksDB 是由 Facebook 开源的一个非常优秀的单机 KV 存储引擎)。

③ 数据同步协议:Raft 协议:TiKV 利用 Raft 来做数据复制,每个数据变更都会落地为一条 Raft 日志,通过 Raft 的日志复制功能,将数据安全可靠地同步到复制组的每一个节点中。

④ 分布式存储解决方案:Region:以 Region 为单位,将数据分散在集群中所有的节点上,并且尽量保证每个节点上 Region 的数量差不多;以 Region 为单位做 Raft 的复制和成员管理。

学新通



二、clickhouse

参考:ClickHouse深度揭秘 - 知乎

ClickHouse 是一整套完善的解决方案,它自包含了 存储计算能力,完全自主实现了高可用,而且支持完整的 SQL 语法。相比于 hadoop 体系,以数据库的方式来做大数据处理更加简单易用,学习成本低且灵活度高。

ClickHouse 的技术优势:

  • 极致的查询性能;
  • 低成本的海量存储: 列存、压缩,大幅提升单机数据存储和计算能力,大幅降低使用成本;
  • 简单灵活且强大:完善 SQL 支持;提供 json、map、array 等数据类型;支持近似计算、概率数据结构等。

clickhouse 优势体现在 OLAP 场景

OLAP 场景的特点:

1、读多于写:数据分析通常是数据一次性写入后,分析师尝试从各个角度对数据做挖掘、分析,直到发现其中的商业价值、业务变化趋势等信息。

2、大宽表,读大量行但仅需少量列:数据分析时,选择其中的少数几列作为维度列、其他少数几列作为指标列,然后对全表或某一较大范围内的数据做聚合计算。这个过程会扫描大量的行数据,但是只用到了其中的少数列。

3、数据批量写入,且数据不更新或少更新:OLAP类业务数据量非常大,通常更加关注写入吞吐(Throughput),要求海量数据能够尽快导入完成。

4、无需事务,数据一致性要求低:OLAP类业务对于事务需求较少,通常是导入历史日志数据。

针对 OLAP 场景,clickhouse 的优势特点:

1、数据有序存储:ClickHouse 支持在建表时,指定将数据按照某些列进行 sort by。排序后相同 sort key 的数据在磁盘上连续存储,有序摆放。查询时命中的数据都紧密存储在一个或若干个连续的Block 中,大幅减少 IO,提高查询性能。

2、主键索引:ClickHouse 支持主键索引,它将数据按照 index granularity(默认8192行)进行划分,每个 index granularity 的开头第一行被称为 mark 行。主键索引存储该 mark 行对应的值。对于where 条件中含有主键索引的查询,通过对主键索引进行二分查找,减少查询时间。

3、有限支持delete、update:ClickHouse 没有直接支持delete、update操作。

4、列式存储:一条数据以列的形式存储,同一行为多条数据的同一个字段数据。同一字段的数据顺序存储到在一个或邻近的 block 中,对于大宽表的情况能减少 IO。

5、高吞吐写入能力:ClickHouse 在数据导入时全部是顺序写。

6、数据 Sharding:ClickHouse 支持单机模式,也支持分布式集群模式。

7、数据 Partitioning:ClickHouse 可以指定按照任意合法表达式进行数据分区操作。



三、hive

官网:Apache Hive

参考1:https://blog.csdn.net/l1212xiao/article/details/80432759

参考2:Hive是什么?_Apache Hive数据仓库介绍-AWS云服务

参考3:Hive架构及原理 - 知乎

1.什么是 Hive?

Apache Hive 是建立在 Apache Hadoop 基础之上,可实现大规模分析的分布式容错数据仓库系统。Hive 可以将结构化的数据文件映射为一张数据库表,让用户可以利用 SQL 读取、写入和管理 PB 级数据。

2.Hive 架构和如何运作?

学新通

Jobtracker 是 hadoop1.x 中的组件,它的功能相当于: Resourcemanager AppMaster

TaskTracker 相当于:  Nodemanager    yarnchild

· Hive 旨在让非程序员熟悉 SQL,并使用名为 HiveQL 的类似于 SQL 的界面对 PB 级数据进行操作。

· 传统关系数据库被用于对中小型数据集进行交互式查询,它在处理大型数据集时的表现并不理想。但 Hive 使用批处理,因此它可以快速操作非常大型的分布式数据库。

· Hive 会将 HiveQL 查询转换成在 Apache Hadoop 的分布式作业计划框架,即 Yet Another Resource Negotiator (YARN) 上运行的 MapReduce 或 Tez 作业。它会查询存储在分布式存储解决方案,如 Hadoop 分布式文件系统 (HDFS) 或 Amazon S3 当中的数据。

· Hive 将表元数据存储在数据库中,元数据包括(表名、表所属的数据库名、 表的拥有者、列/分区字段、表的类型(是否是外部表)、表的数据所在目录等)。

学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfkakaf
系列文章
更多 icon
同类精品
更多 icon
继续加载