大数据(5m)ClickHouse极速入门
Posted 小基基o_O
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据(5m)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中 数据写入的过程中不加锁 |
向量引擎 | 数据可按向量进行处理 |
列式存储
行式
列式
表引擎
常见表引擎 | 家族 | 说明 | 索引 | 备注 |
---|---|---|---|---|
TinyLog | Log Family | 以列文件的形式保存在硬盘 数据写入时,追加到文件末尾 | 不支持 | 可用于存储小批量处理的中间数据 |
Memory | 其它特定 | 数据以未压缩的原始形式直接保存在内存 | 不支持 | 适用于少量数据的高性能查询 |
MergeTree | MergeTree Family | 支持 列式存储、分区、稀疏索引、二级索引… | 支持 | 单节点ClickHouse实例的默认表引擎 |
MergeTree
- 大量数据插入表时,先快速将数据写入表中的各个部分,再对各个部分数据进行后台合并
- 创建一个 空间占用不大的 稀疏索引 来 提高查询效率
- 可使用分区
- 数据支持 复制副本 和 采样
图解稀疏索引
适用于:范围查询过滤
不适用于:点对点查询
ClickHouse安装
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
或
https://download.csdn.net/download/Yellow_python/21792011
2.2、文件上传并安装
上传4个文件
ls -l
查看是否上传成功
安装这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
可查看网络端口
3、关闭开机自启
sudo systemctl disable clickhouse-server
4、启动服务端
sudo systemctl start clickhouse-server
ps -ef | grep clickhouse
查看进程
5、使用客户端连接服务端
clickhouse-client -m
-m
全称为multiline,(按分号)多行提交模式
客户端界面
以上是关于大数据(5m)ClickHouse极速入门的主要内容,如果未能解决你的问题,请参考以下文章
大数据ClickHouse(十八):Spark 写入 ClickHouse API
大数据ClickHouse(十九):Flink 写入 ClickHouse API