2021年ClickHouse 最令人兴奋的五大新特性
如果无法正常显示,请先停止浏览器的去广告插件。
1. 2021 CLICKHOUSE
TO P 5 新 特 性
朱凯 明源云·天际 大数据平台首席专家
2. 朱凯
明源云·天际 大数据平台首席专家
• Apache DolphinScheduler Committer
• ClickHouse Contributor
• 腾讯云TVP、华为云MVP
• 著有:
《ClickHouse原理解析与应用实践》
《企业级大数据平台构建:架构与实现》
•
公众号: 《ClickHouse的秘密基地》
3. 目录 CONTENT
01 ClickHouse 全貌速览
02 2021 Top 5 Features
03 交流 & 答疑
4. 01
ClickHouse全貌速览
5.
6. Yandex
是一家怎样的公司
• 欧洲最大的互联网公司之一
• 拥有俄国第一的搜索引擎
• 超过50种不同的b2c和b2b产品
• 大数据、机器学习
7. Yandex.Metrica
• 全球第三大网络分析工具
• 每天处理超过30亿个事件
• 分析涵盖数百万个网站
• 每天超过10万分析师用户
SELECT COUNT(Users) FROM hits
GROUP BY Quarter
8. ClickHouse, Inc 商业化公司成立
2021 年 9 月 5000 万 美元A轮
2021 年 10 月 28 日 2.5 亿美元 B 轮
聚焦 ClickHouse 云服务
9. ClickHouse 的生态
用户生态 (仅列举部分,排名不分先后)
A-word fruit
集成生态
监控
分析/可视化 数据交换/调度平台
10. ClickHouse的显著特点
•
入门简单
OLAP数据库、完整的DBMS,支持SQL、DDL、DML语句。 ROLAP模型为主
支持 MOLAP(特殊的表引擎+物化视图)
支持 Projection
•
Everything is table
面向表编程,数十种表引擎,包括代理访问外部资源(例如ZooKeeper、HDFS、文件等)
内置 MySQL、PostgreSQL binlog监听
甚至贡献者名单也专门有一张表
•
接口丰富
提供TCP、HTTP底层访问接口,提供JDBC、CLI等封装接口
兼容 MySQL、Postgres 客户端
支持Java、Python、Nodejs等众多第三方接口,内置数百个函数
11. ClickHouse的显著特点
•
在线查询
实时应答,无需预处理。也支持立方体预聚合
•
分布式架构
MPP架构,支持集群模式,支持数据分区、分片、副本
•
高性能
列存、高压缩、向量化引擎,秒杀一切的性能。单机部署,即拥有高性能
12. ClickHouse的显著特点
•
安全可靠
熔断机制、防误删机制
•
完善的权限体系
RBAC,客户端接入权限、资源访问权限、操作访问权限、数据行级权限
13. ClickHouse的显著特点
•
开源软件、社区活跃
2016年开源,Apache-2.0协议
850+ Contributors、21.1K+ Star 、4.1K Forks,发版速度和它的性能一样快
14. 性能有多快
横扫主流,ClickHouse的平均响应速度是Vertica的6.62倍、InfiniDB的37倍、MonetDB的24倍、
Hive的316倍、MySQL的1000倍以及Greenplum的26倍
Intel(R) Xeon(R)
E5-2650 v2 @ 2.60GHz
128 GiB RAM
RAID-5 on 8 6TB SATA HDD
ext4.
• 133字段
• 1000万、1亿和10亿数据
• 43条SQL的基准测试
https://clickhouse.yandex/benchmark.html
15. 性能有多快
500G 大小CSV文件 , 11亿数据、51个字段
Intel Core i5 4670K clocked at 3.4 GHz
16 GB of DDR3 RAM
a SanDisk SDSSDHII960G 960 GB SSD drive
VS
4 x Nvidia GeForce GTX TITAN X 12G GDDR5
2-core Xeon E5-1650 v3 clocked at 3.5 GHz
192 GB of RAM
2 x 1 TB Samsung 840 EVO SSDs RAID 0
https://tech.marksblogg.com/benchmarks.html
36 vCPUs, 72 GB of RAM, 900 GB of NVMe SSD
storage and support 10 Gigabit networking.
16. 性能有多快
5000亿数据 3个命题查询
ClickHouse比对方快 10 ~ 100 倍
https://www.altinity.com/blog/2020/1/1/clickhouse-cost-efficiency-in-action-
analyzing-500-billion-rows-on-an-intel-nuc
17.
18. 02
2021 Top 5 Features
19. 利用JIT提升数十倍查询性能
ClickHouse 同时使用了
JIT的优势:
• Vectorized query execution 1. 有助于提升L1、L2缓存命中
• Runtime code generation 2. 减少执行的代码
3. 更好的利用编译器优化
4. 更好的利用CPU指令
L1、L2 cache与内存相比
性能有百倍提升
20. 利用JIT提升数十倍查询性能
表达式优化将在 v21.6 Release 版本中默认支持
聚合阶段的优化会在 v21.8 or v21.9 Release中默认支持
JIT 标准表达式编译时间在 15ms 左右, 随代码大小线性增长
• 表达式的执行性能普遍提升 1.5 ~ 3倍
• 特殊情况可以达到 20倍
• 聚合步骤的性能普遍提升 1 ~ 2倍
支持优化的表达式有:
一元运算,如abs
二元运算,如 +、-、*、/
逻辑运算,如 and、or
分支判断,如 if、multiIf
位移操作,如bitShiftLeft
SELECT a + b + c FROM test_jit settings
min_count_to_compile_expression=1,
compile_expressions=1
21. 支持基于 Lambda 的 UDF
v21.10 Release提供
DDL语法:
CREATE FUNCTION {fn_name} as ({parameters}) -> {code}
用例:
CREATE FUNCTION testFunc AS (a, b) -> (a + b)
DROP FUNCTION testFunc
元数据:
22. 正宗的开窗函数来袭
原来要这么写
row_number 和 dense_rank
v21.3.1 Release以后这样写
原汁原味的分析&开窗函数
23. 支持S3和HDFS存储的零拷贝复制,向云原生再迈进一步
Replicated自有的同步机制,与云原生存储存在着性能的浪费
Leader
metadata
ReplicatedMergeTree
metadata
block_id: 201905_...
type : get
Data
Data
201905_0_0_0
201905_1_1_0
拉取数据
block_id: 201905_...
type : merge
S3
lhtifryzjomawpcbisxxqfjgrclahcnq 0
Zookeeper
ReplicatedMergeTree
# cat
/disks/s3/data/test1/201905_1_1_0/id.bin
201905_0_0_0
201905_1_1_0
block_id: 201905_...
type : merge
24. 支持S3和HDFS存储的零拷贝复制,向云原生再迈进一步
v21.4.1 Release提供零拷贝机制
在 Merge 的时候,会借助 Zookeeper 的锁机制,
保证只会有一个节点进行 Merge 动作,其他节点等
待后同步元数据
Leader
Zookeeper
ReplicatedMergeTree
metadata
lhtifryzjomawpcbisxxqfjgrclahcnq 0
ReplicatedMergeTree
metadata
block_id: 201905_...
type : get
只同步元数据
Data
201905_0_0_0
201905_1_1_0
Data
201905_0_0_0
201905_1_1_0
block_id: 201905_...
type : merge
S3
# cat
/disks/s3/data/test1/201905_1_1_0/id.bin
block_id: 201905_...
type : merge
25. 2021最王炸功能来袭, Projection助力性能大幅提升
MergeTree 主键只支持一种排序规则
26. 2021最王炸功能来袭, Projection助力性能大幅提升
物化视图不够智能,多余的维护成本,数据同源问题
查询
主题
明细表
物化视图
SummingMergeTree
AggregatingMergeTree
MergeTree
物化视图
SummingMergeTree
AggregatingMergeTree
MergeTree
MergeTree
MergeTree
27. 2021最王炸功能来袭, Projection助力性能大幅提升
ClickHouse Projection 可以看做是一种更加智能的物化视图,它有如下特点:
•
part-level 存储
相比普通物化视图是一张独立的表,Projection 物化的数据就保存在原表的分区目录中,支持明细数据的普通Projection
和 预聚合Projection
•
数据同源、同生共死
因为物化的数据保存在原表的分区,所以数据的更新、合并都是同源的,也就不会出现不一致的情况了
•
无感使用,自动命中
一张 MergeTree 创建多个 Projection ,当执行 Select 语句的时候,能根据查询范围,自动匹配最优的 Projection 提供
查询加速。如果没有命中,则直接查明细底表
28. 2021最王炸功能来袭, Projection助力性能大幅提升
原表排序
创建Projection:
针对查询主题,创建其他排序规则
针对查询主题,预聚合优化
29. 2021最王炸功能来袭, Projection助力性能大幅提升
异步的 Mutation 创建
数据同源,无需额外管理
30. 2021最王炸功能来袭, Projection助力性能大幅提升
v21.1.2.15 起提供,利用Projection,特定主题查询性能提升数倍~数十倍
查询
主题
明细表
Projection
MergeTree
物化视图
SummingMergeTree
AggregatingMergeTree
MergeTree
MergeTree
MergeTree
31. 03
交流&答疑
ClickHouse的秘密基地
32. 非常感谢您的观看