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

相关推荐
Joker时代2 小时前
WebKey备受瞩目的Web3.0新叙事,硬件与加密生态完美融合特性成为数字世界的新入口
大数据·web3·区块链
B站计算机毕业设计超人4 小时前
计算机毕业设计Python深度学习美食推荐系统 美食可视化 美食数据分析大屏 美食爬虫 美团爬虫 机器学习 大数据毕业设计 Django Vue.js
大数据·python·深度学习·机器学习·数据分析·课程设计·推荐算法
喻师傅4 小时前
Hadoop权威指南-读书笔记-01-初识Hadoop
大数据·hadoop·分布式
电商运营花5 小时前
告别盲目跟风!1688竞品数据分析实战指南(图文解析)
大数据·人工智能·经验分享·笔记·数据挖掘·数据分析
是程序喵呀5 小时前
git的基本使用
大数据·git
小白学大数据6 小时前
爬虫进阶:Selenium与Ajax的无缝集成
大数据·开发语言·爬虫·selenium·ajax
小冷在努力7 小时前
elasticsearch入门基本知识+使用案例
大数据·elasticsearch·搜索引擎·es
2402_857589367 小时前
WebKit中Websockets的全面支持:实现高效实时通信
大数据·前端·webkit
一切如来心秘密9 小时前
kafka 实现精确一次性语义实践总结
大数据·kafka
lupai9 小时前
车牌号查车辆信息-车牌号查车辆信息接口-汽车API接口
大数据·汽车·生活