ClickHouse 学习分享
1. 收获
学习本片文章你会有如下收获:
了解数据库主要存储方式;
初步认识 ClickHouse,哪些场景下可以选择使用 ClickHouse;
ClickHouse 的开发入门:数据类型、基础语法、各类函数、客户端工具、表引擎和丰富的学习资源。
2. OLTP 和 OLAP
OLTP:online transaction processing 联机事务处理
事务是一种机制,包含了一组数据库操作序列;
这些操作作为统一的整体提交给系统时,要么全都执行、要么全都不执行;
常用来存储和业务强相关的结构化数据,会涉及到数据的增、删、改、查。
OLAP:online analytical processing 联机分析处理
计算机技术中快速解决多维分析问题的一种方法,让用户能够从多个角度交互地分析多维数据。
3. 行列式数据库
3.1 行式数据库
一行中的所有值组合在一起存储,之后存储下一行。
3.2 列式数据库
一列中的所有值组合在一起存储,之后存储下一列。
4. 为什么选择 ClickHouse ?
假设需要开发一套 OA 系统,基本功能有人员管理、流程管理、会议预定和报表导出,作为架构师的你应该如何设计?
4.1 基于 MySQL 的单表
初期系统聚焦关键功能,用户不是很多,数据量不会太大,基于 MySQL 使用几张表即简单又高效。
4.2 基于 MySQL 分库分表
数据 GB 级增长,单表分析遇到性能瓶颈,于是你选择了分库分表 。
4.3 基于 ElasticSearch
分库分表数据的写入和查询不同的路由策略,需要保证数据查询时的完整性和准确性,架构不易扩展,于是你想到了 ElasticSearch 近实时方案,只关心索引分片即可。
4.4 基于 Spark
数据 TB 级增长,ElasticSearch 集群的实时写入和查询性能上遇到瓶颈,于是你想到了通用的大数据解决方案:基于 Hadoop + Spark 体系,而报表查询由近实时变成了离线。
4.5 基于 ClickHouse
为了降低 Hadoop + Spark 带来的维护和开发成本,ClickHouse 来到了你的身边。
4.6 ClickHouse 为什么与众不同?
减少数据分析路径长度;
缩减数据存储成本:只需要存储主要维度和指标;
降低开发难度:开发人员只需要写 SQL 即可;
支持 PB 级数据存储查询;
线性扩展、性能强悍,每秒可处理数亿行 10GB 数据;
多样数据类型;
函数应有尽有;
库引擎、表引擎、物化视图适合复杂业务场景。
5. 介绍下 ClickHouse
ClickHouse 是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS),由俄罗斯的 Yandex 公司于 2016 年开源,目前 Star:29.8K。
5.1 ClickHouse Roadmap
Provide alternative for ZooKeeper
Nested and semistructured data
Limited support for transactions
Window functions
Separation of storage and compute
Workload management
User Defined Functions
6. 数据类型、基础语法和函数
6.1 数据类型: 简单类型
6.2 数据类型: 集合类型
6.3 数据类型: 特殊类型
6.4 基础语法: 数据库
6.5 基础语法: 表
6.6 基础语法: 查询
6.7 基础语法: 写入
6.8 基础语法: 基础函数
6.9 基础语法: 表函数和聚合函数
7. 学习资源
版权声明: 本文为 InfoQ 作者【冰心的小屋】的原创文章。
原文链接:【http://xie.infoq.cn/article/c1aea2ce618d5c62f57798648】。文章转载请联系作者。
评论