0
点赞
收藏
分享

微信扫一扫

Linux的简介和环境搭建

迎月兮 2023-10-31 阅读 35

简介

ClickHouse是一个开源列式数据库管理系统(DBMS),用于在线分析处理(OLAP):

简而言之,CK本质上就是DBMS,起源于mysql。重要特点就是:数据按列存储,适合于OLAP在线分析处理,查询列的速度非常之快,节省大量的IO资源。(其实和hudi有点像,hudi就是行写入、列查询)

同一列保存在同一个数据文件当中,便于数据的压缩存储

本质上,CK的数据类型和C++相似,因为CK就使用C++写的。


ClickHouse 与表函数

表函数 (Table Function)

表函数是一种数据库函数,它返回一个可以像操作常规数据库表那样操作的行集。其主要目的是能够将函数的输出作为一个表来使用。这意味着我们可以使用SQL查询来读取和处理这些函数的输出。

ClickHouse 与表函数

ClickHouse的特点之一是其广泛的表函数支持。这些表函数允许管理员用户从各种数据源(例如文件、URL、外部数据库、大数据框架等)读取数据,并将这些数据作为表来处理。例如,管理员用户可以使用表函数从一个文件或HTTP URL中读取数据,然后直接在ClickHouse中对该数据进行查询,而无需先导入数据。

DBMS 和大数据框架的整合

ClickHouse为了提高灵活性和扩展性,提供了与其他DBMS和大数据框架的整合功能。例如,ClickHouse可以与Kafka、HDFS、MySQL等进行交互。表函数在这方面发挥了关键作用,它们使得从这些系统中读取数据变得异常简单。通过表函数,ClickHouse可以轻松地与其他系统进行交互,从而实现数据的即时查询和分析,而无需事先进行数据迁移或转换。


CK存储引擎及Primary Key

CK使用了一种名为MergeTree的数据结构和存储引擎:

MergeTree存储引擎

Parts 和 Granules

合并Parts


PRIMARY KEY in ClickHouse

为什么与MySQL中的PRIMARY KEY不同

CK的 PRIMARY KEY 和 稀疏索引


让我们通过CK中的块,进一步了解CK的主键:

块之间的顺序:

块合并:

MySQL的聚集索引与ClickHouse的PRIMARY KEY:


再理解二者PK的区别:

MySQL的PRIMARY KEY(聚集索引)和ClickHouse的PRIMARY KEY都能实现数据跳过和减少存储需求的效果,但它们是为了不同的工作负载而优化的。

可以这么理解:MySQL的PRIMARY KEY是全能型设计,旨在优化随机访问和事务性查询。而ClickHouse的PRIMARY KEY是专攻型设计,特别优化了大数据分析的工作负载。


ClickHouse中数据写入和存储的过程


总结

ClickHouse是一个高性能的分析数据库,适合实时或近实时的大数据查询。如果我们的目标是进行高速分析和查询,而不仅仅是数据存储和同步,那么使用ClickHouse可能会有帮助。我们可以将数据从数据库同步到ClickHouse,并使用ClickHouse的强大查询能力进行分析。

然而,如果只需要数据存储和简单的查询功能,直接使用Mysql / Hudi可能更加简洁和高效。只有需要高速、复杂的实时查询时,考虑使用ClickHouse。

举报

相关推荐

0 条评论