本篇内容介绍了“ClickHouse的优缺点和核心特性是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
Vertica的2.63倍(Vertica是一款收费的列式存储数据库)
InfiniDB的17倍(可伸缩的分析数据库引擎,基于Mysql搭建)
MonetDB的27倍(开源的列式数据库)
Hive的126倍
MySQL的429倍
Greenplum的10倍
Spark的1倍
ROLAP(关系型的联机分析处理,和它一起比较的还有OLTP联机事务处理,我们常见的ERP,CRM系统就属于OLTP)
在线实时查询
完整的DBMS(关系数据库)
列式存储(区别与HBase,ClickHouse的是完全列式存储,HBase具体说是列族式存储)
不需要任何数据预处理
支持批量更新
拥有完善的SQl支持和函数
支持高可用(多主结构,在后面的结构设计中会讲到)
不依赖Hadoop复杂生态(像ES一样,开箱即用)
不支持事务(这其实也是大部分OLAP数据库的缺点)
不擅长根据主键按行粒度查询(但是支持这种操作)
不擅长按行删除数据(但是支持这种操作)
第一类用于处理数据定义的DDL操作
第二类用于处理关系运算的相关操作
第三类则是与表引擎呼应,每一种表引擎都拥有与之对应的BlockInputStream实现
MergeTree :允许您依据主键和日期创建索引,并进行实时的数据更新操作。MergeTree 是 ClickHouse 里最为先进的表引擎。
ReplacingMergeTree :该引擎和MergeTree的不同之处在于它会删除具有相同主键的重复项。数据的去重只会在合并的过程中出现。有一些数据可能仍未被处理。因此,ReplacingMergeTree适用于在后台清除重复的数据以节省空间,但是它不保证没有重复的数据出现。在一定程度上可以弥补clickhouse不能对数据做更新的操作,可以用做在数据过多重复场景对数据进行去重。
SummingMergeTree:表的数据片段时,ClickHouse 会把所有具有相同主键的行合并为一行,该行包含了被合并的行中具有数值数据类型的列的汇总值。如果主键的组合方式使得单个键值对应于大量的行,则可以显著的减少存储空间并加快数据查询的速度,对于不可加的列,会取一个最先出现的值。对某个字段长期的汇总查询场景。
AggregatingMergeTree :该引擎继承自 MergeTree,并改变了数据片段的合并逻辑。ClickHouse 会将相同主键的所有行(在一个数据片段内)替换为单个存储一系列聚合函数状态的行。可以使用 AggregatingMergeTree 表来做增量数据统计聚合,包括物化视图的数据聚合。引擎需使用 AggregateFunction 类型来处理所有列。如果要 按一组规则来合并减少行数,则使用 AggregatingMergeTree 是合适的。对于AggregatingMergeTree不能直接使用insert来查询写入数据。一般是用insert select。但更常用的是创建物化视图 ,做增量数据统计聚合,包括物化视图的数据聚合。
Distributed 分布式引擎本身不存储数据, 但可以在多个服务器上进行分布式查询。读是自动并行的。读取时,远程服务器表的索引(如果有的话)会被使用。分布式引擎参数:服务器配置文件中的集群名,远程数据库名,远程表名,数据分片键。
“ClickHouse的优缺点和核心特性是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。