ClickHouse数据库
2023-02-01 10:15:01 0 举报
ClickHouse
作者其他创作
大纲/内容
创建
是数据短语的布隆表过滤器,只支持String和FixedString数据类型。index b mname type minmax granularity 8192
CollapsingMergeTree
数据写入过程
时间类型
checksums.txt:校验文件,使用二进制格式存储. columns.txt:列信息文件,使用明文格式存储。count.txt:计数文件,使用明文格式存储。(分区条数的个数)primary.idx: 用于存放稀疏索引[Column].bin: 使用压缩格式存储,默认为LZ4压缩格式default_compression_codec.txtpartition.dat用于保存当前分区下分区表达式最终生成的值;minmax索引 用于记录当前分区下分区字段对应原始数据的最小和最大值。ttl.txt : 一串JSON配置保存了TTL的相关信息(列或表的TTL信息,json格式)
用9位字节表示,具体由1个UInt8(1字节)整型和2个UInt32(4字节)整型头信息由CompressionMethod_CompressedSize_UncompressedSize公式生成的压缩方式+压缩后数据大小+压缩前数据大小
概念
缺点
基本类型
表级
分区目录命名
ngrambf_v1
解释器Interpreter解析SQL语句
201905_1_1_0201905表示分区目录的ID;1_1分别表示最小的数据块编号与最大的数据块编号;而最后的_0则表示目前合并的层级。
AggregatingMergeTree
数据分区
存储
压缩头
数据引擎
位置
start
其他类型
VersionedCollapsingMergeTree
minmax
未指定ver
minmax索引记录了一段数据内的最小和最大极值.(与一级索引的计算方法一致).
可以设置列级或设计表级INTERVAL完整的操作包括SECOND、MINUTE、HOUR、DAY、WEEK、MONTH、QUARTER和YEAR
压缩
寻址过程
系统架构
二级索引
Block属于 cloumn datatype 列名的组合体表操作的对象是Block
MinBlockNum:取同一分区内所有目录中最小的MinBlockNum值。MaxBlockNum:取同一分区内所有目录中最大的MaxBlockNum值。Level:取同一分区内最大Level值并加1。
MergeTree Family
Date(天)、DateTime(秒)、DateTime64(亚秒)
先写入sign=1,再写入sign=-1,则能够正常折叠先写入sign=-1,再写入sign=1,则不能够折叠
int8-->byte fixedString(4)-->自定义长度的String uuid-->未被赋值的类似随机数,随机地址
如果sign=1比sign=-1的数据多一行,则保留最后一行sign=1的数据。如果sign=-1比sign=1的数据多一行,则保留第一行sign=-1的数据。如果sign=1和sign=-1的数据行一样多,并且最后一行是sign=1,则保留第一行sign=-1和最后一行sign=1的数据。如果sign=1和sign=-1的数据行一样多,并且最后一行是sign=-1,则什么也不保留。其余情况,ClickHouse会打印警告日志,但不会报错,在这种情形下,查询结果不可预知。
set
数据类型
优点
MergeTree按照index_granularity的间隔粒度,将一段完整的数据划分多个小的间隔数据段,一个数据段即一个MarkRange。每个MarkRange有start和end两个属性表示其区间范围.
列级
ReplacingMergeTree
MergeTree
field列中某一个值
写流程
多路径存储
column一列数据
numbers函数
主键使用PRIMARY KEY定义后MergeTree会根据index_granularity设置索引(稀疏索引)(默认8192)
合并规则
函数Functions单行函数组函数
DataType描述了列的数据类型
直接记录了声明字段或表达式的取值(唯一值,无重复)
写入顺序
为了数据去重而设计的,它能够在合并分区时删除重复的数据。ENGINE = ReplacingMergeTree(ver)
数据标记.mrk
稀疏索引
定义
Cluster与Replication
特点
BlockStream负责块数据的读取和写出
分区规则
指定ver
数据立方体
分区目录是在font color=\"#ff0000\
寻址
创建与存储
索引
SummingMergeTree
数据读写IO有一个缓冲区负责数据的读写
查询流程
分区目录合并
解析器Parser对Sql语句进行解析
Cluster-->切分Replication-->复制
数据ttl
折叠规则
PARTITION BY [选填]: 分区键,用于指定表数据以何种标准进行分区。font color=\"#ff0000\
每一批数据的写入,都会生成新的分区目录,相同的分区目录会合并在一起,按照索引粒度进行生成primary.idx一级索引每一个列字段的.mrk数据标记和.bin压缩数据文件。
注意
一级索引
没有设置ver版本号,则保留同一组重复数据中的最后一行。
数据标记作为衔接一级索引和数据的桥梁.
复杂类型
运行机制
一个不断减小数据范围的过程。MergeTree首先可以依次借助分区索引、一级索引和二级索引,将数据扫描范围缩至最小。然后再借助数据标记(.Mrk文件),将需要解压与计算的数据范围缩至最小。
目的:方便查询
读写流程
0 条评论
下一页