0


HBase、ClickHouse、StarRocks

HBase

HBase行锁机制,保证对单行数据操作的原子性。

ClickHouse

  • 基本概念 数据的基本映射单元:一列数据用Column表示,一列数据中的单个值用Field表示。 数据类型:DataType,进行序列化和反序列化操作 Block:ClickHouse内部是面向Block操作的,Block是由Column,DataType和列名称组成的。
  • 具体细节: 1)建表时,会指定字段进行sort by,保证数据在磁盘上连续存储。 2)ClickHouse通过对数据排序,然后对数据建立稀疏索引,MergeTree的索引粒度默认为8192。 3)在存储目录当中,每个分区目录中会有一个’primay.idx’的一级索引文件,分区下每一列都对应有一个列名.bin的文件(存储数据)和一个列名.mrk的文件(这个是标记文件,二进制进行存储,会和索引文件进行对齐。) 4)默认索引粒度为8192,相当于每一列中每8192条数据生成一个block。根据主键索引我们会知道数据到block的映射,根据标记文件,它可以知道我的哪个block存在哪里。(一个标记由blockid,在数据文件(.bin文件)的偏移量,压缩后块中偏移量(会出现多个block在一个压缩块中,因为如果是int类型的数据,一个数据一个字节,8192个数据才8KB,这样完全没必要压缩,ck会根据最小64KB,最大1MB的数据量进行压缩,如果一个block块数据量不够,会继续和下一个bolck的数据一起进行压缩))。
  • LSM算法: 1)写入数据时,先记录日志 2)把数据放到内存中进行使用(CK这里是insert一次数据,在内存中排完序,然后就直接写入磁盘。) 3)内存满了,进行数据的溢写 4)定期进行数据的合并(CK在合并前进行查询时,会查出多块内容,但是每块内容内是有序的。)

StarRocks

  • 基本概念 一款极速全场景MPP分析型数据库 1)极速:全面向量化 2)全场景:兼容MySQL协议,访问简单。一栈式解决全部场景(通过星型模型,雪花模型等进行灵活的多表join) 3)MPP:大规模并行处理(任务分散计算,结果统一汇聚) 4)分析型数据库:大规模的数据进行多维度的查询分析
  • 架构 1)FE节点:主备,存储元数据。leader负责写入数据到BE 2)BE节点:存储数据
  • 存储 1)一张表中的列分为维度key列和指标value列; 2)列式存储,每1024个数据为一个逻辑block,每64KB进行数据压缩存储; 3)索引:每一个block块一个索引(逻辑块的起始行号),根据这个索引去找到对应物理块的索引(物理块的起始行号)。
  • 使用 1)建表 ①明细模型:允许排序键重复,允许部分的维度列为排序键(eg:DUPLICATE KEY(event_time, event_type)); ②聚合模型:不允许排序键重复,所有维度列都是排序键,需要对指标列指定聚合函数(eg:pv BIGINT SUM DEFAULT “0” COMMENT "total page views"和AGGREGATE KEY(site_id, city_code)); ③更新模型:不允许排序键重复,所有维度列都是排序键,需要指定主键(eg:UNIQUE KEY(create_time, order_id))。更新模型对于插入的数据有一个版本的概念,每次查询时,取最大版本的数据(版本较多时,查询时实时性降低)。 ④主键模型:对比更新模型,可以支持频繁的更新功能。主键模型会把主键索引加载内存当中,在更新数据时候,底层是先对已有数据进行标记删除,然后再插入新的数据(牺牲了一点写入性能和内存占用,提高了查询效率)。注意:建表时字段的顺序和最后指定排序键的顺序需要一样。 2)数据分布 ①Range:数据按照区间进行分布节点 ②Round-Robin:数据按照轮转进行分布节点 ③Hash:数据根据哈希函数进行分布到不同节点 ④List:根据固定的离散值进行分布到不同节点 ⑤组合方式:按照上述四种进行组合,eg:Range-Hash
标签: hbase olap 数据库

本文转载自: https://blog.csdn.net/qq_42009405/article/details/123074918
版权归原作者 今天好好洗头了嘛 所有, 如有侵权,请联系我们删除。

“HBase、ClickHouse、StarRocks”的评论:

还没有评论