clickhouse、Doris、Kylin对比

clickhouse

ClickHouse是俄罗斯的Yandex于2016年开源的列式存储数据库(DBMS),使用C++语言编写,是基于 MPP 架构的分布式 ROLAP (Relational OLAP)分析引擎主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告,可以支持任意指标、任意维度并秒级给出反馈。最大的特色是高性能的向量化执行引擎,而且功能丰富、可靠性高。

OLAP(On-Line Analytical Processing)翻译为联机分析处理,专注于分析处理,从对数据库操作来看,OLAP是对数据的查询;

OLTP(on-line transaction processing)翻译为联机事务处理,专注于事务处理,从对数据库操作来看,OLTP主要是对数据的增删改。

特点

列式存储、多样化引擎、高吞吐写入能力

使用MergeTree基于分区、索引,在查询时候缩小数据范围。

ClickHouse 之所以如此快,是因为它在设计和实现时采用了多种技术和优化策略:

1.列式存储:ClickHouse采用列式存储,这种方式可以提高数据压缩比,减少I/O访问,从而加速查询速度

2.数据分区:ClickHouse支持将数据分成不同的分区,可以减少数据扫描的范围,提高查询速度

3.数据本地化:ClickHouse可以将数据存储在本地磁盘上,避免了数据网络传输的开销

4.数据压缩:ClickHouse支持多种数据压缩算法,可以降低磁盘I/O访问和网络传输的数据量

5.向量化计算:ClickHouse使用SIMD指令集和CPU缓存来实现向量化计算,这样可以在处理大数据集时提高计算速度

6.并行查询:ClickHouse支持并行查询,可以将一个查询分成多个子查询,同时执行,从而加速查询速度

7.多级缓存:ClickHouse支持多级缓存,可以将热数据存储在内存中,减少磁盘I/O访问

综上所述,ClickHouse采用多种优化技术,如列式存储、数据分区、数据本地化、数据压缩、向量化计算、并行查询和多级缓存等,使得它具有出色的查询性能和扩展性

Doris

Apache Doris是一个现代化的MPP分析型数据库产品。仅需亚秒级响应时间即可获得查询结果,有效地支持实时数据分析。Apache Doris的分布式架构非常简洁,易于运维,并且可以支持10PB以上的超大数据集。

MPP 即 Massively Parallel Processing,大规模并行处理,即海量数据并发查询.

也是列式存储的

Doris 数据模型的一个显著特点是 Key 列全局唯一,因此存在相同 Key 值的不同 Value。Join性能更好。

clickhouse更优的方面

性能更佳,导入性能和单表查询性能更好,同时可靠性更好

功能丰富,非常多的表引擎,更多类型和函数支持,更好的聚合函数以及庞大的优化参数选项

集群管理工具更多,更好多租户和配额管理,灵活的集群管理,方便的集群间迁移工具

Doris更优的方面

使用更简单,如建表更简单,SQL标准支持更好, Join性能更好,导数功能更强大

运维更简单,如灵活的扩缩容能力,故障节点自动恢复,社区提供的支持更好

分布式更强,支持事务和幂等性导数,物化视图自动聚合,查询自动路由,全面元数据管理

那么两者之间如何选择呢?

业务场景复杂数据规模巨大,希望投入研发力量做定制开发,选ClickHouse

希望一站式的分析解决方案,少量投入研发资源,选择Doris

另外, Doris源自在线广告系统,偏交易系统数据分析;ClickHouse起源于网站流量分析服务,偏互联网数据分析,但是这两类场景这两个引擎都可以覆盖。如果说两者不那么强的地方,ClickHouse的问题是使用门槛高、运维成本高和分布式能力太弱,需要较多的定制化和较深的技术实力,Doris的问题是性能差一些可靠性差一些,下面就深入分析两者的差异。

kylin

Kylin 是基于 Hadoop 的 MOLAP (Multi-dimensional OLAP) 技术,核心技术是 OLAP Cube;与传统 MOLAP 技术不同,Kylin 运行在 Hadoop 这个功能强大、扩展性强的平台上,从而可以支持海量 (TB到PB) 的数据;它将预计算(通过 MapReduce 或 Spark 执行)好的多维 Cube 导入到 HBase 这个低延迟的分布式数据库中,从而可以实现亚秒级的查询响应;最近的 Kylin 4 开始使用 Spark + Parquet 来替换 HBase,从而进一步简化架构。由于大量的聚合计算在离线任务(Cube 构建)过程中已经完成,所以执行 SQL 查询时,它不需要再访问原始数据,而是直接利用索引结合聚合结果再二次计算,性能比访问原始数据高百倍甚至千倍;由于 CPU 使用率低,它可以支持较高的并发量,尤其适合自助分析、固定报表等多用户、交互式分析的场景。

优势场景方面:ClickHouse 通常适合几亿~几十亿量级的灵活查询(更多量级也支持只是集群运维难度会加大)。Kylin 则更适合几十亿~百亿以上的相对固定的查询场景。

ROLAP 与 MOLAP 与 HOLAP 之间的区别

ROLAP 与 MOLAP 与 HOLAP 是表示逻辑数据模型的数据仓库的相关术语。

ROLAP 是指关系数据的关系在线分析处理。

MOLAP 被称为多维在线分析处理,它通过多个数据维度来实现,特点是数据立方体。

HOLAP 被称为混合在线分析处理,适用于 ROLAP 和 MOLAP 概念。

数据仓库中的数据存储和数据安排、设计的视图访问取决于 OLAP 实现的类型。ROLAP SQL 是查询技术,而 MOLAP 使用稀疏矩阵,而 HOLAP 使用 SQL 和稀疏矩阵技术。

相关推荐
zmd-zk40 分钟前
kafka+zookeeper的搭建
大数据·分布式·zookeeper·中间件·kafka
激流丶42 分钟前
【Kafka 实战】如何解决Kafka Topic数量过多带来的性能问题?
java·大数据·kafka·topic
测试界的酸菜鱼1 小时前
Python 大数据展示屏实例
大数据·开发语言·python
时差9531 小时前
【面试题】Hive 查询:如何查找用户连续三天登录的记录
大数据·数据库·hive·sql·面试·database
Mephisto.java1 小时前
【大数据学习 | kafka高级部分】kafka中的选举机制
大数据·学习·kafka
Mephisto.java1 小时前
【大数据学习 | kafka高级部分】kafka的优化参数整理
大数据·sql·oracle·kafka·json·database
道可云1 小时前
道可云人工智能&元宇宙每日资讯|2024国际虚拟现实创新大会将在青岛举办
大数据·人工智能·3d·机器人·ar·vr
成都古河云1 小时前
智慧场馆:安全、节能与智能化管理的未来
大数据·运维·人工智能·安全·智慧城市
软工菜鸡1 小时前
预训练语言模型BERT——PaddleNLP中的预训练模型
大数据·人工智能·深度学习·算法·语言模型·自然语言处理·bert
武子康3 小时前
大数据-212 数据挖掘 机器学习理论 - 无监督学习算法 KMeans 基本原理 簇内误差平方和
大数据·人工智能·学习·算法·机器学习·数据挖掘