05 · 核心技术实现:每个模块怎么落地

架构定下来后,这一章逐个拆解核心模块的实现方案。最关键的突破是美团的"自动语义"(定义即研发)。

5.1 自动语义:定义即研发(美团)

美团的核心能力建设之一是自动语义,它实现了"定义即研发"(来源:美团技术团队)——业务定义的指标,无需人工开发,自动变成可查询的语义。

它把业务语言定义的指标自动解析为结构化的逻辑表达,并通过主外键关系将数仓模型自动关联成星型、雪花模型,从而扩展出复杂指标。这条能力贯穿四个环节:

环节 作用
指标定义 业务语言定义指标
模型关联 主外键关系自动关联成星型/雪花模型
指标高亮与路由选表 快速定位指标对应的模型和表
查询语义构建 生成实际查询 SQL

结合指标仓库的预计算模式,业务既能灵活扩展复杂指标,又能在有限时间内完成指标扩展、模型关联等复杂查询前置依赖的计算。

通俗讲:传统是"业务提需求 → 研发写 SQL 建数据集",自动语义是"业务定义指标 → 系统自动翻译成模型关联 + SQL",把研发从翻译工作里解放出来。

5.2 自动化建模(快手)

快手在语义模型层实现了自动化建模(来源:快手指标中台技术分享),核心是:基于维度建模理论,对指标/维度/数据表进行模型构建,形成可供查询的语义模型,从而提升数据模型的开发效率。

传统维度建模靠数据开发手工设计星型/雪花模型,自动化建模把这个过程变成"半自助配置"——业务定义好指标和维度,系统自动生成对应的语义模型。

5.3 统一指标服务(OneService)

统一服务层提供两类能力(来源:快手指标中台技术分享):

  1. 元数据服务:指标、维度的元数据查询(指标是什么、口径是什么、属于哪个模型);
  2. 数据查询服务:基于指标维度的数据查询,屏蔽底层物理数据源。

配套的查询语言是 OAX(快手自研),类似"指标查询 DSL",上层应用通过它表达"查哪些指标、按哪些维度、什么时间范围",无需关心底层是哪张表、哪个引擎。

5.4 查询引擎:统一联邦查询

各厂的查询引擎选型(多来源交叉):

厂商 查询引擎 特点
快手 自研 Octo 统一查询引擎,跨引擎联邦查询
腾讯欧拉 StarRocks / Impala tMetric 物化加速层
美团 多引擎模型 + 查询降级 智能查询服务

核心诉求一致:对上层屏蔽多引擎的复杂性,一个统一查询入口,内部做联邦查询和路由。

5.5 融合引擎模式(指标多维分析系统系列)

「指标多维分析系统」系列(qhlhaylee,来源:知乎专栏,cnblogs 镜像)给出了一个从零实现多维分析系统的路径,四篇结构:

篇 主题 内容
(一) 基于 Mondrian 搭建千万级多维分析系统 用开源 OLAP 引擎 Mondrian(ROLAP,支持 MDX)从零搭起
(二) 基于融合引擎模式的多维分析系统 多引擎融合,扬长避短
(三) 查询性能优化 性能调优实战
(四) 完整介绍 发展历程、系统架构、核心流程、性能/正确性保障、业务反思

第四篇总结的完整介绍框架(这是从零实现一套指标多维分析系统的完整视角):

其中两个"业务挑战"值得单独说:性能保障(查询要快)和正确性保障(结果要准)——这正是指标查询系统区别于普通报表系统的两个命门,也是下一章(性能)和治理(口径正确性)的主题。

注意:融合引擎模式与美团"多引擎模型 + 查询降级"是同一思路——不用单一引擎扛所有场景,而是多引擎分工、按查询路由。

5.6 各模块实现对照表

模块 美团 快手 腾讯欧拉 系列(qhlhaylee)
语义层 自动语义(定义即研发) 语义模型层 + 自动化建模 tMetric(Headless BI) Mondrian 语义层
模型 主外键关联星型/雪花 维度建模 Uni-Model 三层 —
查询引擎 多引擎 + 降级 Octo 联邦查询 StarRocks/Impala 融合引擎
查询语言 语义查询 OAX — MDX
加速 智能物化 + 增量引擎 加速层 物化加速 查询性能优化

可以看到,虽然各厂实现细节不同,但语义层 + 统一查询 + 物化加速这个三角结构是共识。


本章要点回顾

上一章:04 系统架构设计 | 下一章:06 查询加速与性能优化