基于ClickHouse+StarRocks构建支撑千亿级数据量的高可用查询引擎

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 基于ClickHouse+StarRocks 构建支撑千亿级数据量的高可用查询引擎 演讲人:蔡岳毅 全球敏捷运维峰会 广州站
2. 1. 为什么选择ClickHouse/StarRocks; 2. ClickHouse/StarRocks的高可用架构; 3. 如何合理的应用ClickHouse的优点,StarRocks 如何来补充ClickHouse 的短板; 4. ClickHouse的调优,运维介绍; 5. 应用总结; 全球敏捷运维峰会 广州站
3. 根据实际业务场景需要来选择 1. 不固定的查询条件,不固定的汇总条件; 2. 数据量日益增量,每天要更新的数据量也不断增大; 3. 业务场景不断增多,涉及面越来越广; 4. 需要保证高可用并秒出; 5. 从Sql,Es, CrateDB, Kylin,Ingite,MongoDB,Hbase 不断的研究,实践; 全球敏捷运维峰会 广州站
4. ClickHouse 的特点 优点: 1. 数据压缩比高,存储成本相对非常低; 2. 支持常用的SQL语法,写入速度非常快,适用于大量的数据更新; 3. 依赖稀疏索引,列式存储,cpu/内存的充分利用造就了优秀的计算能力, 并且不用考虑左侧原则; 缺点: 1. 不支持事务,没有真正的update/delete; 2. 不支持高并发,可以根据实际情况修改qps相关配置文件; 全球敏捷运维峰会 广州站
5. StarRocks的特点 优点: 1. 支持标准的SQL语法,兼容MySql协议; 2. MPP架构,扩缩容非常简单方便; 3. 支持高并发查询; 4. 跨机房部署,实现最低成本的DR 缺点: 1. 不支持大规模的批处理; 2. 支持insert into,但最理想的是消费Kafka; 全球敏捷运维峰会 广州站
6. ClickHouse/StarRocks在酒店数据智能平台的架构 全球敏捷运维峰会 广州站
7. 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; 其他方式: 1. 采用 waterdrop 的方式大幅提升写入速度; 2. 直接读Hdfs文件的方式,但内存波动较大; 全球敏捷运维峰会 广州站
8. 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 全球敏捷运维峰会 广州站
9. 针对ClickHouse的保护机制 1. 被动缓存; 2. 主动缓存; 全球敏捷运维峰会 广州站
10. ClickHouse集群架构 Ø 虚拟集群最少两台机器在不同的机房; Ø 数据独立,多写,相互不干扰; Ø 数据读取通过应用程序做负载平衡; Ø 灵活创建不同的虚拟集群用于适当的场合; Ø 随时调整服务器,新增/缩减服务器; 分布式: k8s的集群式部署 全球敏捷运维峰会 广州站
11. 采用ClickHouse后平台的查询性能 system.query_log表,记录已经 执行的查询记录 query:执行的详细SQL,查询相关记录可以 根据SQL关键字筛选该字段 query_duration_ms:执行时间 memory_usage:占用内存 read_rows和read_bytes :读取行数和大小 result_rows和result_bytes :结果行数和 大小 以上信息可以简单对比SQL执行效果 全球敏捷运维峰会 广州站
12. 采用ClickHouse后平台的查询性能 全球敏捷运维峰会 广州站
13. ClickHouse应用小结 • 数据导入之前要评估好分区字段; • 数据导入时根据分区做好Order By; • 左右表join的时候要注意数据量的变化; • 是否采用分布式; • 监控好服务器的cpu/内存波动/`system`.query_log; • 数据存储磁盘尽量采用ssd; • 减少数据中文本信息的冗余存储; • 特别适用于数据量大,查询频次可控的场景,如数据分析,埋点日志系统; 全球敏捷运维峰会 广州站
14. StarRocks应用小结 • 发挥分布式的优势,要提前做好分区字段规划; • 支持各种join,语法会相对clickhouse简单很多; • 一个sql可以多处用; • 建立好守护进程以及节点监控; 全球敏捷运维峰会 广州站
15. THANK YOU! 全球敏捷运维峰会 广州站

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-15 22:48
浙ICP备14020137号-1 $Map of visitor$