Clickhouse系列之Clickhouse和OLAP概述

354 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第1天,点击查看活动详情

1、什么是Clickhouse?

什么是Clickhouse,我们先看看官网的一个介绍。下面是官方英文的一个介绍。

ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).

它的意思是:ClickHouse®是一个面向列的数据库管理系统(DBMS),用于在线分析处理查询(OLAP)。由此我们引申出来什么是OLAP呢?

image.png

2、什么是OLAP呢?

OLAP场景要求在大型数据集之上实时响应具有以下特征的复杂分析查询:

a)数据集可能是海量的——数十亿或万亿行

b)数据组织在包含许多列的表中

c)只选择了几个列来回答任何特定查询

d)结果必须以毫秒或秒为单位返回

3、什么么要使用列示存储而不是行式存储?

我们来看两个效果图,这个是官方给出来的。

行式存储: 每次存储和搜索都是一行的查询和存储。因此是一个全量的数据查询

image.png

列式存储:每次存储和搜索是按字段级别进行存储和查询,因此查询数据是一个小批量的查询。,

image.png

4、OLAP和Clickhouse应用场景

1、表是“宽”的,这意味着它们包含大量列。

2、数据集很大,在处理单个查询时,查询需要高吞吐量(每个服务器每秒多达数十亿行)。

3、列值相当小:数字和短字符串(例如,每个URL 60字节)。

4、查询提取大量行,但仅提取列的一小部分。

5、对于简单查询,允许大约50毫秒的延迟。

6、每个查询有一个大表;所有的桌子都很小,只有一张除外。

7、查询结果明显小于源数据。换句话说,数据被过滤或聚合,因此结果适合于单个服务器的RAM。

8、查询相对较少(通常每台服务器上有数百个查询,或者每秒更少)。

9、插入以相当大的批量(>1000行)进行,而不是以单个行进行。

10、事务是不必要的。