《2 得物-StarRocks存算分离在得物的降本增效实践.pdf》由会员分享,可在线阅读,更多相关《2 得物-StarRocks存算分离在得物的降本增效实践.pdf(23页珍藏版)》请在三个皮匠报告上搜索。
1、StarRocks 存算分离在得物的降本增效实践丁凯剑得物StarRocks负责人,8年OLAP研发经验,StarRocks Active Contributor,Apache Druid Committer010203Clickhouse 在大数据量下的困境从 Clickhouse 到 StarRocks 存算分离成果展示及未来规划01迁移背景背景丰富的场景OLAP 引擎在得物客服、风控、供应链、投放、运营、A/B 实验等大量业务场景,在报表、日志、实时数仓等应用场景都有广泛的应用。使用多种OLAP引擎引入和使用 OLAP 引擎的过程中业务选择当时最适合的引擎,现存云 上Hologres、A
2、DB、Clickhouse 和自建Clickhouse、StarRocks 五种引擎产品目标统一引擎最终只保留1到2个引擎先把一套超过4000核的最大,业务最复杂的智能运营平台 Clickhouse 集群迁移到存算分离的 StarRocks02Clickhouse 在大数据量下的困境线上 Clickhouse 集群面临瓶颈集群用量大超过4000核存储超过500TB日常需要查询日/周/月/季/年 环比/同比,查询时间跨度长集群负载接近上限物化视图缺乏透明改写能力建立了40+物化视图由外部代码主动管理、创建物化视图、改写sql去查询物化视图在需要重刷历史数据时,由外部代码管理的物化视图的重刷复杂缺
3、乏离线导入功能导入链路存在格式转换存在格式转换,效率低,占用大量占用大量 ClickhouseClickhouse 集群资源集群资源扩容困难Clickhouse 单机规格已是顶配,没有升配空间没有升配空间按指定字段分桶的表,扩容后需要重导数据才能保证正确性,需要一周的停服需要一周的停服扩容和导入只能搭建一个主集群一半大的备份集群,存储最核心的数据,与主集群构成双活来分流分流部分查询,来减小主集群负载,这样增加了增加了50%+50%+成本成本。03基于 StarRocks 降本增效存算分离带来成本下降单副本模式数据存储在远端,不担心丢失比3副本存算一体降低降低2/32/3存储成本存储成本扩缩容无
4、需搬迁数据扩缩容无需均衡,扩容新节点可以马上利用只缓存必要数据不需要把所有的数据都存储在本地盘,而只需要缓存常用数据大量使用物化视图,减少基表实际需要存储在data cache中的数据量命中 data cache 时性能与存算一体相同经过评估存算分离部署模式能带来40%+40%+的成本下降的成本下降。更好易用性Clickhouse1.支持的 join 类型有限2.Join 不正确使用分布式表和 local 表会有性能或正确性问题3.手动改写 SQL 利用物化视图4.离线导入效率不高StarRocks1.支持各种 join 类型且符合标准 SQL 语法的预期2.不区分分布式表和 local 表,
5、专注业务即可3.物化视图无侵入透明改写,并保证与基表数据一致性4.离线导入并发可控,资源可控重度使用物化视图进行提效使用技巧1.不命中物化视图时,在资源组中限制大表时间跨度超过8天就不允许查询2.approx_count_distinct改写成hll_union_agg(hll_hash(col)让查基表与查物化视图的结果完全一致3.使用明细物化视图减少数据读取量4.物化视图只基于单表,方便在各种 join sql 语句中复用5.一个物化视图包括尽量多的指标,查询时一次性查多个指标6.materialized_view_rewrite_mode=force让一个查询中多个count disti
6、nct也能命中物化视图重度使用物化视图进行提效物化视图推荐1.通过在 FE 中记录 SQL 结构,在外部实现基于单表的物化视图推荐程序2.能做到对表/物化视图字段的在过滤条件中的命中次数进行统计,用来判断哪些字段做排序键能适配更多的查询能适配更多的查询3.能做到对单表的子语句用到的指标和维度列进行分析,找到有高收益的潜在找到有高收益的潜在物化视图物化视图,并且排除已经存在的物化视图4.物化视图启用 collocate group优化选择策略和性能1.跳过物化视图与无关表的匹配,优化选择性能,耗时减少5 50%0%2.提早剔除一些不包含查询需要的列的物化视图,减少了后续匹配测试的开销,耗时减少7