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 和稀疏矩阵技术。

相关推荐
szxinmai主板定制专家2 分钟前
【国产NI替代】基于FPGA的32通道(24bits)高精度终端采集核心板卡
大数据·人工智能·fpga开发
时时刻刻看着自己的心29 分钟前
clickhouse分布式表插入数据不用带ON CLUSTER
分布式·clickhouse
TGB-Earnest2 小时前
【py脚本+logstash+es实现自动化检测工具】
大数据·elasticsearch·自动化
大圣数据星球4 小时前
Fluss 写入数据湖实战
大数据·设计模式·flink
suweijie7684 小时前
SpringCloudAlibaba | Sentinel从基础到进阶
java·大数据·sentinel
Data跳动9 小时前
Spark内存都消耗在哪里了?
大数据·分布式·spark
woshiabc11110 小时前
windows安装Elasticsearch及增删改查操作
大数据·elasticsearch·搜索引擎
lucky_syq11 小时前
Saprk和Flink的区别
大数据·flink
lucky_syq11 小时前
流式处理,为什么Flink比Spark Streaming好?
大数据·flink·spark
袋鼠云数栈11 小时前
深入浅出Flink CEP丨如何通过Flink SQL作业动态更新Flink CEP作业
大数据