# 什么是ClickHouse?
ClickHouse是一个用于联机分析(OLAP)的列式数据库。列存这种设计可将同一列的数据存储在一起,不同列的数据也总是分开存储,更适合OLAP场景。早期有人简称它CK,但人家缩写明明应该是CH啊,又不是内裤。
常见的列式数据库有:
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倍),下面详细解释了原因(通过图片更有利于直观理解):
行式
列式
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/目录中查看日志。
配置