Skip to main content
 Web开发网 » 操作系统 » linux系统

ClickHouse简介

2021年10月17日7320百度已收录

简介ClickHouse is a fast open-source column-oriented database management system that allows generating analytical data reports in real-time using SQL queries. 这是ClickHouse官网对自己的定义,可以看到ClickHouse是一款开源的列式存储数据库,支持SQL语法查询,非常适用于OLAP的场景,使用和学习成本较低。与行存将每一行的数据连续存储不同,列存将每一列的数据连续存储,相比于行式存储,列式存储在分析场景下有着许多优良的特性。

1.1特性真正的面向列的DBMS数据高效压缩存储分布式存储数据分片、复制数据partition支持数据过期清理索引SQL语法支持高吞吐写入分布式计算支持复杂运算数据有序存储支持嵌套的数据结构适合在线查询丰富的数据库引擎1.2使用场景绝大多数是读请求数据以相当大的批次(> 1000行)插入,而不是单行已添加到数据库的数据不需要修改对于读取,从数据库中提取相当多的行,但只读取列的一小部分宽表,即每个表包含着大量的列查询次数相对较少(通常每台服务器每秒查询数百次或更少)对于简单查询,允许延迟大约50毫秒列中的数据相对较小:数字和短字符串处理单个查询时需要高吞吐量无需事务对数据一致性要求低每个查询有一个大表查询结果明显小于源数据1.3不足不支持事务有限支持删除和更新索引为稀疏索引,不适合检索单行的点查询1.4架构图ClickHouse简介  ClickHouse 第1张

1.5支持的表引擎MergeTreeMergeTree支持主键索引、二级索引、数据分区、分段合并、列独立存储、数据压缩、数据TTL等

ReplacingMergeTree合并时删除重复数据(基于主键),以分区为合并单位

SummingMergeTree合并分区时按照预先定义的条件聚合汇总数据,将同一分组下的多行数据汇总合并为一行

AggregatingMergeTree是SummingMergeTree的升级版本,同样支持聚合汇总数据,通过二进制的格式存入表内,需要使用AggregateFunction,写入时需要调用*State类型的函数,查询时需要调用*Merge函数,*表示定义时使用的聚合函数

CollapsingMergeTree以增代删,支持行级数据修改和删除,会定义一个sign标记位字段,记录数据行的状态,如果为1,则表示数据有效,如果为-1,则表示这行数据需要删除,分区合并时生效,严格要求写入顺序

VersionedCollapsingMergeTree功能与CollapsingMergeTree表完全相同,但是对数据的写入顺序没有要求,任意写入顺序的数据都能完成折叠,通过版本号实现

GraphiteMergeTree对Graphite数据做汇总和压缩,它能减少存储空间,同时能提高Graphite数据的查询效率

LogTinyLogStripeLogLogIntegration EnginesKafkaMySQLODBCJDBCHDFSS3Special EnginesDistributedMaterializedViewDictionaryMergeFileNullSetJoinURLViewMemoryBuffer

评论列表暂无评论
发表评论
微信