孙晓聪
  • 最新
  • 博客
  • 书评
  • SR 实践

    背景

    首先介绍一下我们团队的情况,我司数据中台团队成立于2022年初,最开始聚焦于离线数仓和报表,人员配置在6个人左右的小团队。技术架构比较复杂,组件相对来说比较臃肿,一次报表刷新的时间大概在12小时左右,在我们数据量并不是特别大的情况下效率并不高。2023年年末团队经历一波换血过后,我们就开始着手整个数据中台的架构治理。治理包括基于SR 将 Doris和Hadoop 整合为一个数仓,然后通过Flink CDC 将所有的原表直接load到数仓。

    StarRocks

    StarRocks 是新一代极速全场景 MPP (Massively Parallel Processing) 数据库。StarRocks 的愿景是能够让用户的数据分析变得更加简单和敏捷。用户无需经过复杂的预处理,就可以用 StarRocks 来支持多种数据分析场景的极速分析。StarRocks 架构简洁,采用了全面向量化引擎,并配备全新设计的 CBO (Cost Based Optimizer) 优化器,查询速度(尤其是多表关联查询)远超同类产品。StarRocks 能很好地支持实时数据分析,并能实现对实时更新数据的高效查询。StarRocks 还支持现代化物化视图,进一步加速查询。使用 StarRocks,用户可以灵活构建包括大宽表、星型模型、雪花模型在内的各类模型。

    整体架构

    dp arch

    案例

    1. DAU 计算

    我们直接通过Flink CDC 3.0 的 Pipeline 将需要的表实时导入到 StarRocks 的 ods 层,然后再通过构建异步物化视图,实时计算各种DAU。

    需要注意的是

    • StarRocks对于性能的消耗还是显而易见的,我们最初就因为机器性能原因,经常在所有物化视图刷新的时候导致整个集群崩溃。
    • 设置监控和告警,以防物化视图失败时没有感知, 包括Flink CDC 3.0 的监控和告警,我们曾经多次遇到上游数据结构改变导致Flink CDC 断掉。

    整体使用感受

    StarRocks 作为一个MPP引擎,在我们的架构治理中起到了关键作用,效果也是显而易见的,优化过后我们的数据刷新时间从原来的12小时缩短为20分钟,由于我们没有增量的必要, 每次直接依赖于StarRocks的计算能力,暴力刷新所有的表。并且新版的StarRocks 支持存算分离,结合云厂商的廉价存储和SSD缓存,稳定性得到进一步提升。