大数据(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中
数据写入的过程中不加锁
向量引擎数据可按向量进行处理

列式存储

行式

列式

表引擎

常见表引擎家族说明索引备注
TinyLogLog Family以列文件的形式保存在硬盘
数据写入时,追加到文件末尾
不支持可用于存储小批量处理的中间数据
Memory其它特定数据以未压缩的原始形式直接保存在内存不支持适用于少量数据的高性能查询
MergeTreeMergeTree Family支持 列式存储、分区、稀疏索引、二级索引…支持单节点ClickHouse实例的默认表引擎

MergeTree

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

图解稀疏索引

适用于:范围查询过滤
不适用于:点对点查询

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严格设定,不允许超过该设定值
nofilenumber open file最大打开文件数量
nprocnumber 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极速入门的主要内容,如果未能解决你的问题,请参考以下文章

1 小时 SQL 极速入门

1 小时 SQL 极速入门

大数据ClickHouse(十八):Spark 写入 ClickHouse API

大数据ClickHouse(十九):Flink 写入 ClickHouse API

《ClickHouse企业级应用:入门进阶与实战》5 ClickHouse函数

《ClickHouse企业级应用:入门进阶与实战》5 ClickHouse函数