ClickHouse 来自战斗民族的OLAP利器

本文介绍了ClickHouse,一个用于OLAP的列式数据库,最初为YandexMetrica开发,特点是高效压缩、多核并行处理、支持SQL等。尽管不支持事务和高并发,但在大数据查询上表现出色,适合在线查询。文章提供了安装和简单性能测试的教程,展示了其在处理大量数据时的优秀性能。
摘要由CSDN通过智能技术生成

836aaecfbf23050865cf1de329919f0b.png

# 什么是ClickHouse?

ClickHouse是一个用于联机分析(OLAP)的列式数据库。列存这种设计可将同一列的数据存储在一起,不同列的数据也总是分开存储,更适合OLAP场景。早期有人简称它CK,但人家缩写明明应该是CH啊,又不是内裤。

b858bf8736e72bff0385b3a215d1dfea.png

常见的列式数据库有: 

Vertica、SAP HANA、Google Dremel、 

Paraccel (Actian Matrix,Amazon Redshift)、 

Sybase IQ、Exasol、Infobright、InfiniDB、

MonetDB (VectorWise,Actian Vector)、

LucidDB、Google PowerDrill、Druid、kdb+。

列式数据库更适合于OLAP场景(对于大多数查询而言,处理速度至少提高了100倍),下面详细解释了原因(通过图片更有利于直观理解):

行式

8439b4515ea36b158664f00f7f46db11.gif

列式

e97111f214e23ac4387036c1ba42622e.gif

ClickHouse的历史

ClickHouse最初是为 YandexMetrica (世界第二大Web分析平台) 而开发的。多年来一直作为该系统的核心组件被该系统持续使用着。目前为止,该系统在ClickHouse中有超过13万亿条记录,并且每天超过200多亿个事件被处理。它允许直接从原始数据中动态查询并生成报告。

在Yandex.Metrica中,ClickHouse的主要任务是使用原始数据在线的提供各种数据报告。它使用374台服务器的集群,存储了20.3万亿行的数据。在去除重复与副本数据的情况下,压缩后的数据达到了2PB。未压缩前(TSV格式)大概有17PB。

ClickHouse的特点:

  • 真正的面向列的数据库

  • 数据高效压缩

  • 多核并行处理

  • 可以在多个服务器上分布式处理

  • 支持大部分SQL语法

  • 向量化的引擎

  • 实时数据更新

  • 索引

  • 适合在线查询

  • 支持近似预估计算

  • 支持嵌套的数据结构

  • 支持数组作为数据类型

  • 支持限制查询复杂性以及配额

  • 数据的复制和完整性支持

ClickHouse的缺点:

  • 不支持事务

  • 不支持Update/Delete(版本1.1.54388之后开始支持)

  • 不支持高并发,建议QPS为100

  • 逐行的写入性能不佳,建议1000行以上批量写入

  • 有限操作系统支持,不支持Windows

下面就根据ClickHouse提供的教程,测试起来:

https://clickhouse.tech/docs/en/getting_started/tutorial/



#  安装clickhouse

这里我们采用离线的方式安装:

下载地址:

https://repo.yandex.ru/clickhouse/rpm/stable/x86_64/

下载后的文件:

[root@localhost caihao]# cd ch/
total 1311356
-rw-r--r-- 1 root root     134249 Mar 31 13:50 clickhouse-client-20.3.5.21-2.noarch.rpm
-rw-r--r-- 1 root root  116766973 Mar 31 13:54 clickhouse-common-static-20.3.5.21-2.x86_64.rpm
-rw-r--r-- 1 root root 1225758399 Apr 11 18:44 clickhouse-common-static-dbg-20.3.5.21-2.x86_64.rpm
-rw-r--r-- 1 root root     155509 Mar 31 13:52 clickhouse-server-20.3.5.21-2.noarch.rpm

# 安装包说明: 

  • clickhouse-common-static: ClickHouse编译的二进制文件。

  • clickhouse-server: ClickHouse的Server端

  • clickhouse-client: 交互式控制台,Client端

  • clickhouse-common-static-dbg: 安装带有调试信息的ClickHouse编译二进制文件【非必要】

安装clickhouse-server要依赖clickhouse-common-static、clickhouse-common-static-dbg, 一起安装:

yum localinstall *

检查已安装完成

[root@bj80 ch]# rpm -qa|grep click
clickhouse-client-20.3.5.21-2.noarch
clickhouse-common-static-20.3.5.21-2.x86_64
clickhouse-common-static-dbg-20.3.5.21-2.x86_64
clickhouse-server-20.3.5.21-2.noarch

建立一个clickhouse用户

useradd -m clickhouse -s /bin/bash

启动

sudo service clickhouse-server start

或者指定配置文件:

clickhouse-server --config-file=/etc/clickhouse-server/config.xml

可以在/var/log/clickhouse-server/目录中查看日志。

配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值