Flink+StarRocks 实时数据分析新范式研究

一、极速数据分析

Flink+StarRocks 实时数据分析新范式研究插图

统一 OLAP 分析的趋势,以及 StarRocks 极速查询分析的核心能力。计算机科学里所有难题,都能通过加中间层的方式来解决,但是不能加的东西太多。回想 Hadoop 生态演变的过程,先有了分布式存储,解决了海量数据如何用廉价的设备,来存储的问题。又有 MapReduce 帮助我们慢悠悠的解决了,分布式处理的问题。

为了让只会写 SQL 的分析师,能够专注于业务,不用担心 Java 编程的问题,又有了 Hive 帮助我们解决,SQL 到 MR 的自动解析。当人们觉得 Shuffle 磁盘太慢,我们研究了基于内存的弹性分布式数据集 RDD,让数据在内存里分布式的高效计算。

由于内存里微批的计算仍不能描述所有的实时语义,就有了为实时而生的分布式计算引擎 Flink。

早期,人们对数据的依赖还没那么深的时候,数据不管怎么进来的,最终能看到就行。随着时代的变迁,除了管理层需要看数,基层小伙伴也需要用数。于是 OLAP 分析产品,就像雨后春笋似的,有能直接聚合指标的,有能 Adhoc 探查的,有单表无敌的,有能支持数据更新的。

由于组件太多,数据在各个引擎里来回传递,时效性低,口径不一致,硬件资源,人力成本,都非常浪费。所以人们期待一种极致性能的分析型数据库,能够收敛 OLAP 分析层,开启实时数据分析新范式。

StarRocks 的愿景是希望帮助客户,能够实现极速统一 OLAP 分析的技术架构。首先,经过 2 年的打造,极致的性能已经深入人心。全面支持了向量化引擎,CBO 技术,智能物化视图等等一揽子技术。使得 StarRocks 可以完成亚秒级极速 OLAP 分析,保证数据分析应用最后一公里的极速响应。

同时,现代化 MPP 的架构,可以让查询服务充分利用多机多核的资源。保证业务随着硬件,可以 scale-up 和 scale-out。简洁的 fe+be 的架构,可以实现极简运维,优秀的实时摄入能力,让实时数据分析变得轻松简单。

在高并发点查的场景,资源合理规划,可以做到上万 QPS。在与云的整合上,我们已经在各大云商的半托管服务上,能够快速部署社区版 StarRocks。周边我们也在努力整合更丰富的生态方案。开放活跃的社区也逐渐有伙伴,帮我们贡献更多的关键性 Feature。

有这样极致的分析性能,StarRocks 到底能帮我们做什么呢?这里归纳总结了 4 个比较核心的场景。

  • BI 报表类业务。这个是 StarRocks 的看家本领,不管你要加速固定报表,还是要自助式 BI,拖拉拽来探索式分析,都可以用 StarRocks 来支撑。
  • 实时类的业务。比如实时大屏,Flink+StarRocks 的方案已经非常成熟了。尤其是增量聚合类的指标,StarRocks 的聚合表模型,可以直接生成 DWS 层的 sum,min,max 的聚合指标。
  • 有一些用户在打造客户数据平台时,做用户分群、行为分析、用户画像等场景也会用 StarRocks 去做。之前很多场景是离线的,StarRocks 实时的链路也可以秒级摄入,这样离线和实时的数据可以联合分析,让数据的新鲜度更靠前。
  • 统一分析。除了刚刚讲的实时数据和离线数据的统一,StarRocks 还支持 Iceberge/Hudi/Hive 外表查询,可以实现湖和仓的联邦分析。也有客户用 StarRocks 真真切切的解决了它们的分析和服务割裂的问题,以及尝试业财一体化分析等等。

StarRocks 支持非常多的分布式 Join 策略,针对不同的场景,CBO 优化器可以自动选择合适的分布式 Join 策略。从若干个查询规划候选中,选择最优的规划,让查询体验最好。

有了 CBO 优化器,可以基于统计信息,自动改写左右表的关系,智能选择最优的查询规划。此外,比如用低基数全局字典让 String 映射为 int;延迟物化来降低无效的 Scan;runtimeFilter 让右表的过滤可以推到左表提前 Scan 等等,还有一揽子极致的优化,整体保证 StarRocks 能够应对非常复杂的分析查询。

以最大的限度,让使用者关注在业务逻辑本身。从各种参数调优、分布式 Join 策略的选择等等手动优化的工作中解脱出来,把这些事情交给 StarRocks 自动完成。

StarRock 支持非常丰富的数据摄入能力。有配套的手段可以从传统关系型数据同步存量数据,也可以结合 Primary Key 模型和 Flink-CDC,整合做实时 Upsert、Delete 的数据同步。

此外,对于消息队列的数据,StarRocks 的 routine load 可以直接消费 Kafka 的消息,也可以用 Connector 和 Flink 整合。核心的组件 FE,负责元数据管理和 SQL 解析,执行规划的生成等。BE 承载了向量化执行引擎和列式存储。在外层,支持非常丰富的外表查询能力,可以整合湖和仓的数据一体分析。StarRocks 做的 BlockCache 的 Feature,可以让湖的查询能力不弱于仓的性能。

另外,StarRocks 部署非常简单,不管你是在云上还是私有化部署,都可以实现极简运维。对外通过 MySQL JDBC 就能轻松连入,去应对 BI 分析、报表、实时看板等场合。

欢迎使用66资源网
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
7. 本站有不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别!

66源码网 » Flink+StarRocks 实时数据分析新范式研究

提供最优质的资源集合

立即查看 了解详情