文章目录

  • ClickHouse简介
  • 列式存储
  • 表引擎
  • MergeTree
  • CentOS7安装ClickHouse(21版)
  • 1、CentOS环境配置
  • 1.1、修改限制
  • 1.2、禁用 SELINUX
  • 1.3、关闭防火墙
  • 1.4、安装相关依赖
  • 2、单机部署
  • 2.1、下载
  • 2.2、文件上传并安装
  • 2.3、配置文件
  • 3、关闭开机自启
  • 4、启动服务端
  • 5、使用客户端连接服务端
  • 补充:ClickHouse最新稳定版下载方法


ClickHouse简介

  • ClickHouse:开源的 高效的 列式存储的 OLAP
  • 官方教学:https://clickhouse.tech/docs/en/

主要特点

备注

列式存储

OLAP场景下宽表居多,假设从100列的宽表中只取5列,列式比行式大幅度节省IO

数据存于硬盘

支持SQL

支持索引

Primary Index、Secondary Indexes…

支持数据压缩

除了通用压缩编解码器之外,ClickHouse还提供针对特定类型数据的专用编解码器

多核并行处理

单个查询 可对 数据 按索引原理 划分为多个部分,多个CPU并行处理数据的各个部分

单条查询充分利用多CPU,极大提升了大数据查询效率,但不利于并发多条查询

分布式服务器

数据可保存在不同的shard上,每个shard由一组用于容错的replica组成

查询可在所有shard上并行

支持近似计算

允许牺牲数据精度的情况下对查询进行加速

支持数据副本

异步多主复制:数据被写入任一可用副本后,异步分发给其他副本

故障出现后,多数情况下能自动恢复,少数复杂情况下需要手动恢复

支持数据实时更新

数据以增量方式有序地存储在MergeTree中

数据写入的过程中不加锁

向量引擎

数据可按向量进行处理

列式存储

行式

clickhouse Remote Engine用户名密码 clickhouse -m_版本号

列式

clickhouse Remote Engine用户名密码 clickhouse -m_大数据_02

表引擎

常见表引擎

家族

说明

索引

备注

TinyLog

Log Family

以列文件的形式保存在硬盘

数据写入时,追加到文件末尾

不支持

可用于存储小批量处理的中间数据

Memory

其它特定

数据以未压缩的原始形式直接保存在内存

不支持

适用于少量数据的高性能查询

MergeTree

MergeTree Family

支持 列式存储、分区、稀疏索引、二级索引…

支持

单节点ClickHouse实例的默认表引擎

MergeTree

  1. 大量数据插入表时,先快速将数据写入表中的各个部分,再对各个部分数据进行后台合并
  2. 创建一个 空间占用不大的 稀疏索引 来 提高查询效率
  3. 可使用分区
  4. 数据支持 复制副本
图解稀疏索引

clickhouse Remote Engine用户名密码 clickhouse -m_ClickHouse_03


适用于:范围查询过滤


不适用于:点对点查询

CentOS7安装ClickHouse(21版)

1、CentOS环境配置

1.1、修改限制

sudo vim /etc/security/limits.conf

在文件末尾添加

* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072

参数

全称?

说明

*

表示所有用户

soft

警告设定,允许超过该设定值,但会有警告

hard

严格设定,不允许超过该设定值

nofile

number open file

最大打开文件数量

nproc

number process

系统中最大可同时存在的进程数

1.2、禁用 SELINUX

sudo vim /etc/selinux/config

修改内容

SELINUX=disabled

1.3、关闭防火墙

sudo systemctl disable firewalld
sudo systemctl stop firewalld

1.4、安装相关依赖

sudo yum install -y libtool
sudo yum install -y *unixODBC*

2、单机部署

2.1、下载

http://repo.red-soft.biz/repos/clickhouse/stable

2.2、文件上传并安装

上传4个文件

ls -l查看是否上传成功

clickhouse Remote Engine用户名密码 clickhouse -m_版本号_04

安装这4个文件

sudo rpm -ivh *.rpm

2.3、配置文件

修改配置文件模式

sudo chmod 751 /etc/clickhouse-server/config.xml

编辑配置文件

sudo vim /etc/clickhouse-server/config.xml

<listen_host>0.0.0.0</listen_host>的注解打开(第146行)使本机以外的客户端也能访问
若报Code: 210. DB::NetException: Connection refused (localhost:9000)就把0.0.0.0改成::

之后,开启服务后,外部也能访问;sudo netstat -nltp | grep clickhouse可查看网络端口

clickhouse Remote Engine用户名密码 clickhouse -m_版本号_05

3、关闭开机自启

sudo systemctl disable clickhouse-server

4、启动服务端

sudo systemctl start clickhouse-server
ps -ef | grep clickhouse查看进程

clickhouse Remote Engine用户名密码 clickhouse -m_列式存储_06

5、使用客户端连接服务端

clickhouse-client -m

-m全称为multiline,(按分号)多行提交模式

客户端界面

clickhouse Remote Engine用户名密码 clickhouse -m_大数据_07


客户端版本:

21.4.6.55

补充:ClickHouse最新稳定版下载方法

官方安装命令

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo
sudo yum install -y clickhouse-server clickhouse-client

sudo /etc/init.d/clickhouse-server start
clickhouse-client # or "clickhouse-client --password" if you set up a password.

官网下载地址:https://packages.clickhouse.com/rpm/stable/
官方安装方法可以下载最新版,如果速度太慢,可改用阿里云镜像台
https://mirrors.aliyun.com/clickhouse/rpm/stable/ 阿里云镜像不一定有最新稳定版

wget clickhouse-client-版本号.x86_64.rpm
wget clickhouse-common-static-版本号.x86_64.rpm
wget clickhouse-common-static-dbg-版本号.x86_64.rpm
wget clickhouse-server-版本号.x86_64.rpm

注意,要下载相同的版本号