作者:姚冬阳
用户背景
美团作为一家吃、喝、行、游、购、娱一站式的平台,要创造的价值不仅是帮大家吃得更好,还要为人们的生活创造更多的价值,帮大家日常生活的方方面面变得更好,帮大家的旅行生活变得更好。
平台现状
美团于 2018 年首次引入 Flink 实时计算引擎,当时的实时数仓概念还不太普及,平台只提供了 Flink Jar 任务的生命周期管理和监控报警。 2
019 年,美团注意到实时计算的主要应用场景是解决离线数仓时效性低的问题。离线数仓已经比较成熟,通过 SQL 方式开发很简单,而数仓的实时部分主要通过 Flink DataStream API 来开发,门槛比较高,而且与离线数仓的开发方式相比较为割裂。因此,美团开始调研实时数仓的解决方案,目标是降低开发门槛,并尝试推广 FlinkSQL,最终将实时数仓平台取名为 NAU。 2
020 年,美团实时数仓平台正式上线。它向业务提供 FlinkSQL 作业开发入口,主要负责两个方面的工作:
首先,将实时数仓常见的数据源与离线表概念对齐,用数据模型进行管理;
其次,提供 FlinkSQL 开发配套的效率工具,比如校验和调试功能。
实时数仓目前已基本覆盖了美团的全部业务,为 100 多个业务团队提供了支持,比如美团优选、美团买菜、金融、骑行等业务。托管了 7000 多个实时数据模型,主要为 Kafka 表和 KV 表模型。线上运行 FlinkSQL 作业 4000+,新增的实时 SQL 作业占比已经达到 70% 以上。从数据上看,FlinkSQL 已经可以解决美团实时数仓大部分流处理的问题。
上图是实时数仓平台的架构,分为集成、开发、运维、治理、安全 5 个模块分别建设。
集成模块主要关注的是数据模型的管理,具体包括 Kafka 和 KV 两种模型管理,管理的内容有数据源的 schema 信息和连接信息等;
开发模块主要关注的是 FlinkSQL 转化业务需求,比如提供版本管理来记录业务需求的迭代过程,提供 FlinkSQL 的校验和调试,来确保开发的 SQL 正确表达了业务逻辑,支持业务使用自定义的 Flink UDF 函数和自定义的 Format 解析,让 FlinkSQL 可以扩展满足更多业务需求场景;
运维模块关注的是 SQL 作业的部署和运行时的监控。在监控方面,我们提供了 SQL 作业的监控报警、异常日志和作业诊断,能够帮助业务快速发现和定位作业的异常;部署方面,我们提供 SQL 作业的快照管理、AB 部署和参数调优,来帮助业务解决 SQL 作业变更时的问题;
治理模块关注的是实时数仓的数据质量、资源成本,通过建设实时数仓的 DQC 监控,帮助业务发现上游数据或产出数据的异常值/异常波动;通过链路血缘和资源计费,让业务可以量化实时数仓的生产成本,方便进行成本治理;
安全模块主要关注的是对数据流向的管控,提供数据源读写权限的管理和受限域机制,保证公司业务数据的安全性。
《Apache Flink 案例集(2022版)》——2.数据分析——美团-Flink 的实时数仓平台建设(2) https://developer.aliyun.com/article/1228306