概述
简介
ClickHouse是"战斗民族"俄罗斯搜索巨头Yandex公司开源的一个极具"战斗力"的实时数据分析数据库,是面向 OLAP 的分布式列式DBMS,圈内人戏称为"喀秋莎数据库"。ClickHouse简称"CH",但在中文社区里大家更偏爱"CK",反馈是因为有"AK"的感觉!与Hadoop、Spark这些巨无霸组件相比,ClickHouse很轻量级,且不依赖于其他组件。
特点
列式存储数据库,数据压缩
快
关系型、支持SQL
分布式并行计算,可把单机性能压榨到极限
高可用
数据量级在PB级别
适用场景
适用场景从社区分享的案例看主要有以下几类:日志数据的行为分析,标签画像的分析,数据集市层分析;还可作为存储引擎集成在了产品内部,应用于知识图谱作为本体数据存储,及标签数据的存储引擎等。
一般使用方式场景建议:
绝大多数请求都是用于读访问
表很"宽",即表中包含大量的列
在处理单个查询时需要高吞吐量
每次查询中大多数场景查询一个大表
查询结果显著小于数据源,即数据有过滤或聚合
核心概念分类
- 表引擎(Engine)
表引擎决定了数据在文件系统中的存储方式,常用的也是官方推荐的存储引擎是MergeTree系列,如果需要数据副本的话可以使用ReplicatedMergeTree系列,相当于MergeTree的副本版本。读取集群数据需要使用分布式表引擎Distribute。
注:其他常见的引擎可参考官方文档(https://clickhouse.tech/docs/en/engines/table-engines/mergetree-family/) - 表分区(Partition)
表中的数据可以按照指定的字段分区存储,每个分区在文件系统中都是都以目录的形式存在。常用时间字段作为分区字段,数据量大的表可以按照小时分区,数据量小的表可以在按照天分区或者月分区,查询时,使用分区字段作为Where条件,可以有效的过滤掉大量非结果集数据。 - 分片(Shard)
一个分片本身就是ClickHouse一个实例节点,分片的本质就是为了提高查询效率,将一份全量的数据分成多份(片),从而降低单节点的数据扫描数量,提高查询性能。 - 复制集(Replication)
简单理解就是相同的数据备份,在CK中通过复制集,我们实现保障了数据可靠性外,也通过多副本的方式,增加了CK查询的并发能力。这里一般有2种方式:1、基于ZooKeeper的表复制方式;2、基于Cluster的复制方式。由于我们推荐的数据写入方式本地表写入,禁止分布式表写入,所以我们的复制表只考虑ZooKeeper的表复制方案。 - 集群(Cluster)
可以使用多个ClickHouse实例组成一个集群,并统一对外提供服务。
最后
以上就是听话紫菜为你收集整理的ClickHouse简介的全部内容,希望文章能够帮你解决ClickHouse简介所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复