ClickHouse与es 、druid 对比,以及优点

对比:

1,研发同学有 debug 的需求,他们不仅需要看聚合指标,某些时间还需要查询明细数据;

2,推荐系统产生的数据,维度和指标多达几百列,而且未来可能还会增加;

3,每一条数据都命中了若干个实验,使用 Array 存储,需要高效地按实验 ID 过滤数据;

ES 不适合大批量数据的查询,Druid 则不满足明细数据查询的需求。ClickHouse 则刚好适合这个场景。

ClickHouse优点

1,ClickHouse是免费的的,ClickHouse可以使用自己的机器部署,不需要云。

2,与Cloudera Impala, Spark SQL, Facebook Presto , Apache Drill区别:ClickHouse支持实时的高并发系统ClickHouse不依赖于Hadoop生态软件和基础ClickHouse支持分布式机房的部署

3,与nfiniDB, MonetDB, LucidDB区别:这些项目的应用的规模较小,并没有应用在大型的互联网服务当中,相比之下,ClickHouse的成熟度和稳定性远远超过这些软件。

4,与Druid , Apache Kylin对比,ClickHouse可以支持从原始数据的直接查询,ClickHouse支持类SQL语言,提供了传统关系型数据的便利。

ClickHouse的特性

1, 真正的面向列的DBMS

ClickHouse拥有完备的管理功能,所以它称得上是一个DBMS ( Database Management System,数据库管理系统 ),而不仅是一个数据库。作为一个DBMS,它具备了一些基本功能,如下所示。

DDL ( 数据定义语言 ):可以动态地创建、修改或删除数据库、表和视图,而无须重启服务。


DML ( 数据操作语言 ):可以动态查询、插入、修改或删除数据。


权限控制:可以按照用户粒度设置数据库或者表的操作权限,保障数据的安全性。


数据备份与恢复:提供了数据备份导出与导入恢复机制,满足生产环境的要求。


分布式管理:提供集群模式,能够自动管理多个数据库节点。


2, 在线查询

ClickHouse经常会被拿来与其他的分析型数据库作对比,比如Vertica、SparkSQL、Hive和Elasticsearch等,它与这些数据库确实存在许多相似之处。例如,它们都可以支撑海量数据的查询场景,都拥有分布式架构,都支持列存、数据分片、计算下推等特性。这其实也侧面说明了ClickHouse在设计上确实吸取了各路奇技淫巧。与其他数据库相比,ClickHouse也拥有明显的优势。例如,Vertica这类商用软件价格高昂;SparkSQL与Hive这类系统无法保障90%的查询在1秒内返回,在大数据量下的复杂查询可能会需要分钟级的响应时间;而Elasticsearch这类搜索引擎在处理亿级数据聚合查询时则显得捉襟见肘。

正如ClickHouse的"广告词"所言,其他的开源系统太慢,商用的系统太贵,只有Clickouse在成本与性能之间做到了良好平衡,即又快又开源。ClickHouse当之无愧地阐释了"在线"二字的含义,即便是在复杂查询的场景下,它也能够做到极快响应,且无须对数据进行任何预处理加工。

3,支持近似计算

1.系统包含用于近似计算各种值,中位数和分位数的集合函数。

2.支持基于部分(样本)数据运行查询并获得近似结果。在这种情况下,从磁盘检索比例较少的数据。

3.支持为有限数量的随机密钥(而不是所有密钥)运行聚合。在数据中密钥分发的特定条件下,这提供了相对准确的结果,同时使用较少的资源。

应用场景:


1.绝大多数请求都是用于读访问的


2.数据需要以大批次(大于1000行)进行更新,而不是单行更新;或者根本没有更新操作


3.数据只是添加到数据库,没有必要修改


4.读取数据时,会从数据库中提取出大量的行,但只用到一小部分列


5.表很“宽”,即表中包含大量的列


6.查询频率相对较低(通常每台服务器每秒查询数百次或更少)


7.对于简单查询,允许大约50毫秒的延迟


8.列的值是比较小的数值和短字符串(例如,每个URL只有60个字节)


9.在处理单个查询时需要高吞吐量(每台服务器每秒高达数十亿行)


10.不需要事务


11.数据一致性要求较低


12.每次查询中只会查询一个大表。除了一个大表,其余都是小表


13.查询结果显著小于数据源。即数据有过滤或聚合。返回结果不超过单个服务器内存大小

缺点:

  1. 不支持真正的删除/更新支持 不支持事务(期待后续版本支持)
  2. 不支持二级索引

  3. 有限的SQL支持,join实现与众不同

  4. 不支持窗口功能

  5. 元数据管理需要人工干预维护
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ClickHouseDruid都是用于大数据分析的开源数据存储和查询引擎,但它们有一些不同之处。 首先,ClickHouse是一个列式存储引擎,而Druid是一个行式存储引擎。这意味着ClickHouse更适合于需要高效查询大量列数据的场景,而Druid更适合于需要快速查询大量行数据的场景。 其次,ClickHouse支持SQL查询,而Druid则使用一种称为Druid查询语言(DQL)的查询语言。这意味着ClickHouse更适合于那些熟悉SQL的人,而Druid则需要学习新的查询语言。 最后,ClickHouse更适合于实时查询,而Druid则更适合于离线查询。这是因为ClickHouse具有更快的查询速度和更低的延迟,而Druid则更适合于需要对大量数据进行批处理和离线分析的场景。 总的来说,ClickHouseDruid都是非常强大的数据存储和查询引擎,但它们的使用场景略有不同,需要根据具体的需求来选择。 ### 回答2: ClickHouseDruid都是流行的开源数据仓库,可以用于大数据分析和数据仓库。这两个系统都有着自己的优缺点,我们将在这里对它们进行一些比较。 1. 数据模型 ClickHouseDruid都是面向列的存储,适用于大量超大型数据集合的 OLAP 分析。它们之间的区别在于数据模型的实现方式不同。ClickHouse使用较为传统的 RDBMS 表结构,而Druid则采用了更为灵活的面向列族的存储设计,可以根据数据的类型、内容、访问模式等自动分割。 2. 索引 除了使用分布式的列存储方式,ClickHouseDruid在索引方面也存在不同。ClickHouse使用了类似传统 RDBMS 索引的 B-Tree 索引,进行快速的数据过滤和排序,同时支持拼音搜索。(Pinyin Collation) Druid則整体基于内存,采用高效的 Bitmap 索引支持高速数据过滤,采用Sketch存储千万级别的去重数据。而Druid本身使用了非常灵活的索引方式,可以根据不同的元数据建立相应的索引,以达到更好的查询效率。 3. 查询操作 ClickHouseDruid都支持 SQL 查询,并通过数据压缩和分布式存储来提高查询效率。在处理 OLAP 分析时,ClickHouse使用了类 SQL 的查询方式,允许用户自由组合和迭代查询过滤条件,同时允许用户对一个数据表的多个粒度进行查询。(例如按天、按小时、按分钟) Druid则采用模板式变换查询语法,它可以像SQL一样进行查询,并且可以通过使用DSL来构造非常复杂和高效的查询,以支持对海量数据的实时查询。而且,Druid在优化查询速度时,使用了许多非常有创意的方法,例如在查询过程中进行数据块切割、排序和过滤等操作,以保证最快速和最优秀的查询效率。 4. 数据源和数据处理 ClickHouse的数据导入通常使用二进制(例如 Kafka 或支持二进制文件格式的工具)或 CSV 文件,可以节省时间和空间。而Druid则支持诸如Kafka和Hadoop之类的开源工具,可以进行大量的异构数据导入和处理,同时它也能够管理支持异构数据的Hadoop集群。 5. 性能和可扩展性 ClickHouseDruid都被证明在处理大量的数据时具有很高的性能和可扩展性。ClickHouse的优势在于它可以轻松地支持每秒处理数百万个请求,而Druid在能够快速在大规模数据资讯中寻找特定数据方面是非常强大的。不过,点击式(click)或搜索式(search)查询相比,Druid表现更优秀一点。 综上所述,ClickHouseDruid都是流行的数据仓库系统,并且在 OLAP 分析方面均有很高的性能和可扩展性。虽然这两个系统各自的设计和实现方法有所不同,但都能够提供大量的特性,以满足各种大数据处理的需求。因此选择哪个系统要看实际问题和场景,选用更加适用的数据仓库系统,有助于更好的服务用户需求。 ### 回答3: ClickHouseDruid是两种数据存储和分析工具,它们都具有高性能,高可扩展性和开源软件的特点,但是它们的适用场景有所不同。 ClickHouse是由俄罗斯的一个公司开发的,主要用于快速查询和分析大型数据集。它使用列式存储,可以支持百万级别的数据,并且在高并发下能够提供快速的响应速度。ClickHouse可以快速响应OLAP(联机分析处理)的需求,例如复杂的查询,聚合,分组等操作。ClickHouse还支持SQL,并且可以进行实时的数据插入和更新。 Druid是由美国一家公司开发的,主要用于实时数据分析和查询。Druid将数据存储在多层次的存储引擎中,并支持高并发的OLAP查询。它可以处理千万级别的数据,可以支持复杂的聚合和过滤操作,并且可以支持实时的数据流式插入。Druid还支持自定义的数据处理管道,并且可以扩展多种数据源,例如Hadoop和Kafka等。 ClickHouseDruid的区别在于适用场景和数据结构。ClickHouse更适合于批量处理和分析大量静态数据,例如电信,金融和互联网领域的数据仓库,可以快速响应各种类型的查询和分析需求。而Druid更适合于分析实时数据流,例如在线广告,网络监控和游戏分析等领域,可以在毫秒级别内响应高并发的查询和分析请求。 总的来说,ClickHouseDruid都是高性能,高扩展性和开源的数据分析工具,但是它们的适用场景有所不同。根据具体的应用场景和需求,可以选择合适的工具来处理数据分析和查询的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值