1.概述
Clickhouse是一个开源的列式存储数据库,其主要场景用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告。今天,笔者就为大家介绍如何使用Clickhouse来构建实时数仓,来满足一些实时性要求较高的使用场景。
2.内容
2.1 什么是OLAP场景
在介绍Clickhouse构建实时数仓之前,我们先来了解一下OLAP的使用场景,通常OLAP的使用场景包含如下特征:
- 绝大多数是读取请求;
- 数据以相当大的Batch进行更新;
- 已存储的数据不能随意修改;
- 对于读取,从数据存储中提取相当多的行,但是只提取列的一小部分;
- 大宽表,即每个表包含着大量的列;
- 查询相对较少(QPS很小);
- 对于简单查询,允许有较低的延迟,比如50ms~100ms;
- 列中的数据相对较小,比如字符串长度很短;
- 处理单个查询时需要高吞吐量;
- 事务非必须;
- 对数据一致性要求低;
- 每一个查询有一个大表,除了它其他都是很小的;
- 查询结果明显小于源数据。
通过观察这些特征,我们可以看出,对于OLAP场景与其他业务场景(比如OLTP、KV等)有所不同,因此想要使用OLTP或者KV来高效的处理数据分析查询场景,并不是非常完美的解决方案。
2.2 Clickhouse更适合OLAP的原因
Clickhouse更适合OLAP场景&#x