ClickHouse(一):ClickHouse介绍及OLAP场景特征

目录

1. ClickHouse与其特性

​​​​​​​2. 什么是ClickHouse

​​​​​​​3. OLAP场景的特征


进入正文前,感谢宝子们订阅专题、点赞、评论、收藏!关注IT贫道,获取高质量博客内容!


​​​​​​​1. ClickHouse与其特性

在大数据处理场景中,流处理和批处理使用到的技术大致如下:

ClickHouse(一):ClickHouse介绍及OLAP场景特征_第1张图片

批处理会将源业务系统中的数据通过数据抽取工具(例如Sqoop)将数据抽取到HDFS中,这个过程可以使用MapReduce、Spark、Flink技术对数据进行ETL清洗处理,也可以直接将数据抽取到Hive数仓中,一般可以将结构化的数据直接抽取到Hive数据仓库中,然后使用HiveSQL或者SparkSQL进行业务指标分析,如果涉及到的分析业务非常复杂,可以使用Hive的自定义函数或者Spark、Flink进行复杂分析,这就是我们通常说的数据指标分析。分析之后的结果可以保存到Hive、HBase、MySQL、Redis等,供后续查询使用。一般在数仓构建中,如果指标存入Hive中,我们可以使用Sqoop工具将结果导入到关系型数据库中供后续查询。HBase中更擅长存储原子性非聚合查询数据,如果有大量结果数据后期不需要聚合查询,也可以通过业务分析处理考虑存入HBase中。对于一些查询需求结果反馈非常快的场景可以考虑将结果存入Redis中。

对于大多数企业构建数仓之后,会将结果存入到Hive中的DM层中。DM层数据存入的是与业务强相关的报表数据,DM层数据是由数仓中DWS层主题宽表聚合统计得到,这种报表层设计适合查询固定的场景。对于一些查询需求多变场景,我们也可以使用impala来直接将主题宽表数据基于内存进行交互式查询,对web或者数据分析做到交互式返回结果,使用impala对内存开销非常大。还有另外一种方式是使用Kylin进行预计算,将结果提前计算好存入Hbase中,以供后续交互式查询结果,Kylin是使用空间获取时间的一种方式,预先将各种维度组合对应的度量计算出来存入HBase,用户写SQL交互式查询的是HBase中预计算好的结果数据。最后将数据分析结果可以直接对web以接口服务提供使用或者公司内部使用可视化工具展示使用。

以上无论批处理过程还是流处理过程,使用到的技术几乎离不开Hadoop生态圈。

​​​​​​​2. 什么是ClickHouse

ClickHouse是一个开源的,用于联机分析(OLAP)的列式数据库管理系统(DBMS-database manager system), 它是面向列的,并允许使用SQL查询,实时生成分析报告。ClickHouse最初是一款名为Yandex.Metrica的产品,主要用于WEB流量分析。ClickHouse的全称是Click Stream,Data WareHouse,简称ClickHouse。

ClickHouse不是一个单一的数据库,它允许在运行时创建表和数据库,加载数据和运行查询,而无需重新配置和重新启动服务器。ClickHouse同时支持列式存储和数据压缩,这是对于一款高性能数据库来说是必不可少的特性。一个非常流行的观点认为,如果你想让查询变得更快,最简单且有效的方法是减少数据扫描范围数据传输时的大小,而列式存储和数据压缩就可以帮助我们实现上述两点,列式存储和数据压缩通常是伴生的,因为一般来说列式存储是数据压缩的前提。

​​​​​​​3. OLAP场景的特征

  1. 绝大多数是读请求。
  2. 数据以相当大的批次(> 1000行)更新,而不是单行更新;或者根本没有更新。
  3. 已添加到数据库的数据不能修改。
  4. 对于读取,从数据库中提取相当多的行,但只提取列的一小部分。
  5. 宽表,即每个表包含着大量的列。
  6. 查询相对较少(通常每台服务器每秒查询数百次或更少)。
  7. 对于简单查询,允许延迟大约50毫秒。
  8. 列中的数据相对较小:数字和短字符串(例如,每个URL 60个字节)。
  9. 处理单个查询时需要高吞吐量(每台服务器每秒可达数十亿行)。
  10. 事务不是必须的。
  11. 对数据一致性要求低。有副本情况下,写入一个即可,后台自动同步。
  12. 每个查询有一个大表。除了他以外,其他的都很小。
  13. 查询结果明显小于源数据。换句话说,数据经过过滤或聚合,因此结果适合于单个服务器的RAM中。

通过以上OLAP场景分析特点很容易可以看出,OLAP场景与其他通常业务场景(例如,OLTP或K/V)有很大的不同, 因此想要使用OLTP或Key-Value数据库去高效的处理分析查询场景,并不是非常完美的适用方案。例如,使用OLAP数据库去处理分析请求通常要优于使用MongoDB或Redis去处理分析请求。


个人主页:主页包含各种IT体系技术,IT贫道_Apache Doris,Kerberos安全认证,随笔-CSDN博客

订阅:拥抱独家专题,你的订阅将点燃我的创作热情!

点赞:赞同优秀创作,你的点赞是对我创作最大的认可!

⭐️ 收藏:收藏原创博文,让我们一起打造IT界的荣耀与辉煌!

✏️评论:留下心声墨迹,你的评论将是我努力改进的方向!


你可能感兴趣的:(大数据OLAP体系技术栈,clickhouse,olap,实时数仓,分布式数据库)