我是靠谱客的博主 听话紫菜,最近开发中收集的这篇文章主要介绍ClickHouse简介,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

简介

ClickHouse是"战斗民族"俄罗斯搜索巨头Yandex公司开源的一个极具"战斗力"的实时数据分析数据库,是面向 OLAP 的分布式列式DBMS,圈内人戏称为"喀秋莎数据库"。ClickHouse简称"CH",但在中文社区里大家更偏爱"CK",反馈是因为有"AK"的感觉!与Hadoop、Spark这些巨无霸组件相比,ClickHouse很轻量级,且不依赖于其他组件。

特点

 列式存储数据库,数据压缩
 快
 关系型、支持SQL
 分布式并行计算,可把单机性能压榨到极限
 高可用
 数据量级在PB级别

适用场景

适用场景从社区分享的案例看主要有以下几类:日志数据的行为分析,标签画像的分析,数据集市层分析;还可作为存储引擎集成在了产品内部,应用于知识图谱作为本体数据存储,及标签数据的存储引擎等。
一般使用方式场景建议:
 绝大多数请求都是用于读访问
 表很"宽",即表中包含大量的列
 在处理单个查询时需要高吞吐量
 每次查询中大多数场景查询一个大表
 查询结果显著小于数据源,即数据有过滤或聚合

核心概念分类

  1. 表引擎(Engine)
    表引擎决定了数据在文件系统中的存储方式,常用的也是官方推荐的存储引擎是MergeTree系列,如果需要数据副本的话可以使用ReplicatedMergeTree系列,相当于MergeTree的副本版本。读取集群数据需要使用分布式表引擎Distribute。
    注:其他常见的引擎可参考官方文档(https://clickhouse.tech/docs/en/engines/table-engines/mergetree-family/)
  2. 表分区(Partition)
    表中的数据可以按照指定的字段分区存储,每个分区在文件系统中都是都以目录的形式存在。常用时间字段作为分区字段,数据量大的表可以按照小时分区,数据量小的表可以在按照天分区或者月分区,查询时,使用分区字段作为Where条件,可以有效的过滤掉大量非结果集数据。
  3. 分片(Shard)
    一个分片本身就是ClickHouse一个实例节点,分片的本质就是为了提高查询效率,将一份全量的数据分成多份(片),从而降低单节点的数据扫描数量,提高查询性能。
  4. 复制集(Replication)
    简单理解就是相同的数据备份,在CK中通过复制集,我们实现保障了数据可靠性外,也通过多副本的方式,增加了CK查询的并发能力。这里一般有2种方式:1、基于ZooKeeper的表复制方式;2、基于Cluster的复制方式。由于我们推荐的数据写入方式本地表写入,禁止分布式表写入,所以我们的复制表只考虑ZooKeeper的表复制方案。
  5. 集群(Cluster)
    可以使用多个ClickHouse实例组成一个集群,并统一对外提供服务。

最后

以上就是听话紫菜为你收集整理的ClickHouse简介的全部内容,希望文章能够帮你解决ClickHouse简介所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部