ClickHouse|青训营笔记

56 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 19 天

主要内容:数据库基本概念、列式存储、ClickHouse存储设计、ClickHouse典型应用场景。

数据库是结构化信息或数据有序集合,一般以电子形式存储在计算机系统中。通常由数据库管理系统DBMS来控制,在现实中,数据、DBMS以及关联应用一起被称为数据库系统,通常简称为数据库。

关系数据库:关系数据库是把数据以表的形式进行存储,然后再各个表之间建立关系,通过这些表之间的关系来操作不同表之间的数据。

非关系数据库:NoSQL或非关系数据库,支持存储和操作非结构化以及半结构化数据,相比于关系型数据库,NoSQL没有固定的表结构,且数据之间不存在表与表之间的关系,数据之间可以是独立的。

OLTP数据库:是一种高速分析数据库,专为多个用户执行大量事务所设计。

OLAP数据库,是为了同时分析多个数据维度,帮助团队更好地理解其数据中的复杂关系。

列式存储器优点:压缩重复的数据,可以再压缩数据上直接计算,将数据存储为连续数据之间的差值,而不是直接存储数据本身,特定算子也能直接再压缩数据上计算。数据选择,可以选择特定的列做计算,而不是读所有的列,对聚合计算友好。延迟物化,将数据转换为可以被计算或者输出的行数据或者内存数据结果的优化,物化后的数据通常可以用来做数据过滤。

查询优化:主键包含的数据顺序写入,主键构造一个主键索引,每个列构建一个稀疏索引,通过mark的选择让主键索引可以定位到每一列的索引。可以通过多种手段优化非主键列的索引。

数据的可见性:数据合并过程中,未被合成的数据对查询可见,数据合并完成后,新part可见,被合并的part被标记删除。