1、 全球敏捷运维峰会 广州站基于ClickHouse+StarRocks构建支撑千亿级数据量的高可用查询引擎演讲人:蔡岳毅 全球敏捷运维峰会 广州站1.为什么选择ClickHouse/StarRocks;2.ClickHouse/StarRocks的高可用架构;3.如何合理的应用ClickHouse的优点,StarRocks 如何来补充ClickHouse 的短板;4.ClickHouse的调优,运维介绍;5.应用总结;全球敏捷运维峰会 广州站根据实际业务场景需要来选择1.不固定的查询条件,不固定的汇总条件;2.数据量日益增量,每天要更新的数据量也不断增大;3.业务场景不断增多,涉及面越来越广;
2、4.需要保证高可用并秒出;5.从Sql,Es,CrateDB,Kylin,Ingite,MongoDB,Hbase 不断的研究,实践;全球敏捷运维峰会 广州站ClickHouse 的特点优点:优点:1.数据压缩比高,存储成本相对非常低;2.支持常用的SQL语法,写入速度非常快,适用于大量的数据更新;3.依赖稀疏索引,列式存储,cpu/内存的充分利用造就了优秀的计算能力,并且不用考虑左侧原则;缺点:缺点:1.不支持事务,没有真正的update/delete;2.不支持高并发,可以根据实际情况修改qps相关配置文件;全球敏捷运维峰会 广州站StarRocks的特点优点:优点:1.支持标准的SQL语
3、法,兼容MySql协议;2.MPP架构,扩缩容非常简单方便;3.支持高并发查询;4.跨机房部署,实现最低成本的DR缺点:缺点:1.不支持大规模的批处理;2.支持insert into,但最理想的是消费Kafka;全球敏捷运维峰会 广州站ClickHouse/StarRocks在酒店数据智能平台的架构 全球敏捷运维峰会 广州站ClickHouse的全量数据同步流程 1.清空A_temp表,将最新的数据从Hive通过ETL导入到A_temp表;2.将A rename 成A_temp_temp;3.将A_temp rename成 A;4.将A_ temp_temp rename成 A_temp;其他
4、方式:1.采用 waterdrop 的方式大幅提升写入速度;2.直接读Hdfs文件的方式,但内存波动较大;全球敏捷运维峰会 广州站ClickHouse的增量数据同步流程传统方式:1.将最近3个月的数据从Hive通过ETL入到A_temp表;2.将A表中3个月之前的数据select into到A_temp表;3.将A rename 成A_temp_temp;4.将A_temp rename成 A;5.将A_ temp_temp rename成 A_temp;非传统:在第2步采用:ALTER TABLE A REPLACE PARTITION 分区名 FROM A_temp 全球敏捷运维峰会 广州
5、站针对ClickHouse的保护机制1.被动缓存;2.主动缓存;全球敏捷运维峰会 广州站ClickHouse集群架构虚拟集群最少两台机器在不同的机房;数据独立,多写,相互不干扰;数据读取通过应用程序做负载平衡;灵活创建不同的虚拟集群用于适当的场合;随时调整服务器,新增/缩减服务器;分布式:k8s的集群式部署 全球敏捷运维峰会 广州站采用ClickHouse后平台的查询性能system.query_logsystem.query_log表,记录已经表,记录已经执行的查询记录执行的查询记录query:执行的详细SQL,查询相关记录可以根据SQL关键字筛选该字段query_duration_ms:执
6、行时间memory_usage:占用内存read_rows和read_bytes:读取行数和大小result_rows和result_bytes:结果行数和大小以上信息可以简单对比SQL执行效果 全球敏捷运维峰会 广州站采用ClickHouse后平台的查询性能 全球敏捷运维峰会 广州站ClickHouse应用小结数据导入之前要评估好分区字段;数据导入时根据分区做好Order By;左右表join的时候要注意数据量的变化;是否采用分布式;监控好服务器的cpu/内存波动/syst