这是我参与「第五届青训营 」伴学笔记创作活动的第 15 天
ClickHouse
ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。
- 提供了极致的查询性能:开源公开benchmark显示比传统方法快1001000倍,提供50MB200MB/s的高吞吐实时导入能力)
- 以极低的成本存储海量数据: 借助于精心设计的列存、高效的数据压缩算法,提供高达10倍的压缩比,大幅提升单机数据存储和计算能力,大幅降低使用成本,是构建海量数据仓库的绝佳方案。
- 简单灵活又不失强大:提供完善SQL支持,上手十分简单;提供json、map、array等灵活数据类型适配业务快速变化;同时支持近似计算、概率数据结构等应对海量数据处理。
OLAP场景的关键特征:
- 绝大多数是读请求
- 数据以相当大的批次(> 1000行)更新,而不是单行更新;或者根本没有更新。
- 已添加到数据库的数据不能修改。
- 对于读取,从数据库中提取相当多的行,但只提取列的一小部分。
- 宽表,即每个表包含着大量的列
- 查询相对较少(通常每台服务器每秒查询数百次或更少)
- 对于简单查询,允许延迟大约50毫秒
- 列中的数据相对较小:数字和短字符串(例如,每个URL 60个字节)
- 处理单个查询时需要高吞吐量(每台服务器每秒可达数十亿行)
- 事务不是必须的
- 对数据一致性要求低
- 每个查询有一个大表。除了他以外,其他的都很小。
- 查询结果明显小于源数据。换句话说,数据经过过滤或聚合,因此结果适合于单个服务器的RAM中
上述方法包含这些包:
clickhouse-client包,包含clickhouse-client客户端,它是交互式ClickHouse控制台客户端。clickhouse-common包,包含一个ClickHouse可执行文件。clickhouse-server包,包含要作为服务端运行的ClickHouse配置文件。
其数据查询具体来讲,可以有这几种:
- 分组查询取
Top n记录 - 根据数值进行精确筛选
- 数据计算
- 数据去重
- 数据排序
- 复合查询条件的排序
- 范围查询
- Join 查询
- 子查询
- 字符串模糊搜索
集群部署:
同质集群设置步骤:
- 在群集的所有机器上安装ClickHouse服务端
- 在配置文件中设置集群配置
- 在每个实例上创建本地表
- 创建一个分布式表