ClickHouse的特性

Willing卡卡 2022-03-02 09:00:21

真正的列式数据库管理系统 

在一个真正的列式数据库管理系统中,除了数据本身外不应该存在其他额外的数据。这意味着为了避免在值旁边存储它们的长度«number»,你必须支持固定长度数值类型。例如,10亿个UInt8类型的数据在未压缩的情况下大约消耗1GB左右的空间,如果不是这样的话,这将对CPU的使用产生强烈影响。即使是在未压缩的情况下,紧凑的存储数据也是非常重要的,因为解压缩的速度主要取决于未压缩数据的大小。

这是非常值得注意的,因为在一些其他系统中也可以将不同的列分别进行存储,但由于对其他场景进行的优化,使其无法有效的处理分析查询。例如: HBase,BigTable,Cassandra,HyperTable。在这些系统中,你可以得到每秒数十万的吞吐能力,但是无法得到每秒几亿行的吞吐能力。

需要说明的是,ClickHouse不单单是一个数据库, 它是一个数据库管理系统。因为它允许在运行时创建表和数据库、加载数据和运行查询,而无需重新配置或重启服务。

数据压缩 

在一些列式数据库管理系统中(例如:InfiniDB CE 和 MonetDB) 并没有使用数据压缩。但是, 若想达到比较优异的性能,数据压缩确实起到了至关重要的作用。

除了在磁盘空间和CPU消耗之间进行不同权衡的高效通用压缩编解码器之外,ClickHouse还提供针对特定类型数据的专用编解码器,这使得ClickHouse能够与更小的数据库(如时间序列数据库)竞争并超越它们。

数据的磁盘存储 

许多的列式数据库(如 SAP HANA, Google PowerDrill)只能在内存中工作,这种方式会造成比实际更多的设备预算。

ClickHouse被设计用于工作在传统磁盘上的系统,它提供每GB更低的存储成本,但如果可以使用SSD和内存,它也会合理的利用这些资源。

多核心并行处理 

ClickHouse会使用服务器上一切可用的资源,从而以最自然的方式并行处理大型查询。

多服务器分布式处理 

上面提到的列式数据库管理系统中,几乎没有一个支持分布式的查询处理。
在ClickHouse中,数据可以保存在不同的shard上,每一个shard都由一组用于容错的replica组成,查询可以并行地在所有shard上进行处理。这些对用户来说是透明的

支持SQL 

ClickHouse支持一种基于SQL的声明式查询语言,它在许多情况下与ANSI SQL标准相同。

支持的查询GROUP BY, ORDER BY, FROM, JOIN, IN以及非相关子查询。

相关(依赖性)子查询和窗口函数暂不受支持,但将来会被实现。

向量引擎 

为了高效的使用CPU,数据不仅仅按列存储,同时还按向量(列的一部分)进行处理,这样可以更加高效地使用CPU。

实时的数据更新 

ClickHouse支持在表中定义主键。为了使查询能够快速在主键中进行范围查找,数据总是以增量的方式有序的存储在MergeTree中。因此,数据可以持续不断地高效的写入到表中,并且写入的过程中不会存在任何加锁的行为。

索引 

按照主键对数据进行排序,这将帮助ClickHouse在几十毫秒以内完成对数据特定值或范围的查找。

适合在线查询 

在线查询意味着在没有对数据做任何预处理的情况下以极低的延迟处理查询并将结果加载到用户的页面中。

支持近似计算 

ClickHouse提供各种各样在允许牺牲数据精度的情况下对查询进行加速的方法:

  1. 用于近似计算的各类聚合函数,如:distinct values, medians, quantiles
  2. 基于数据的部分样本进行近似查询。这时,仅会从磁盘检索少部分比例的数据。
  3. 不使用全部的聚合条件,通过随机选择有限个数据聚合条件进行聚合。这在数据聚合条件满足某些分布条件下,在提供相当准确的聚合结果的同时降低了计算资源的使用。

Adaptive Join Algorithm 

ClickHouse支持自定义JOIN多个表,它更倾向于散列连接算法,如果有多个大表,则使用合并-连接算法

支持数据复制和数据完整性 

ClickHouse使用异步的多主复制技术。当数据被写入任何一个可用副本后,系统会在后台将数据分发给其他副本,以保证系统在不同副本上保持相同的数据。在大多数情况下ClickHouse能在故障后自动恢复,在一些少数的复杂情况下需要手动恢复。

更多信息,参见 数据复制

角色的访问控制 

ClickHouse使用SQL查询实现用户帐户管理,并允许角色的访问控制,类似于ANSI SQL标准和流行的关系数据库管理系统。

限制 

  1. 没有完整的事务支持。
  2. 缺少高频率,低延迟的修改或删除已存在数据的能力。仅能用于批量删除或修改数据,但这符合 GDPR
  3. 稀疏索引使得ClickHouse不适合通过其键检索单行的点查询。
...全文
160 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

111

社区成员

发帖
与我相关
我的任务
社区描述
ClickHouse开发者
其他 企业社区
社区管理员
  • csdnsqst0018
  • IT学习日记
  • karina17
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

社区宗旨:意在给学习Clickhouse数据库的朋友提供一个氛围轻松、友好的交流平台,欢迎社区小伙伴们积极讨论。

 

欢迎大家加入到Clickhouse社区大家庭,为了对大家积极的参与感谢,现在准备以下一些奖品【20个CSDN定制帆布包和2个咖啡杯】,满足以下2个条件即有机会领取:

  • 1、加入Clickhouse社区,成为社区成员
  • 2、在社区中发布2个及以上的帖子
  • 帖子条件如下(示例地址:):
    • 推荐文章:需要是至少5篇的推荐内容,内容地址可以放超链接

    • 推荐书籍:需要大致介绍书籍重点内容,或者放书籍目录

    • 推荐视频:需要大致介绍视频重点内容

奖励评选规则:

  • 参与时间:2022年3月1号 ~ 2022年3月8号
  • CSDN定制帆布包【前20位】先到、先满足上面的条件可得(每人一个,机不可失)
  • 咖啡杯则需要根据大家的帖子内容质量,在【加精】帖子中抽奖得出(概率很大哦)

额外奖励:

  • 如果有小伙伴能够介绍给周围的小伙伴,并成功邀请他们加入社区,每拉取2个人奖励现金5元(赚个早餐钱简单)
  • 免费赠送Clickhouse学习电子书籍(即:Clickhouse教程-中文版、ClickHouse万亿数据双中心的设计与实践 )

 

奖励领取方式:

  • 添加博主微信:yyuuyy1235(备注:clickhouse社区)

试试用AI创作助手写篇文章吧