Fork me on GitHub

如何设计好的指标平台?

以下文章来源于 https://zhuanlan.zhihu.com/p/675239387

导读 在企业数字化经营能力提升的驱动下,近几年指标平台热度越来越高。数势科技是一家 toB 公司,在长期中台类项目实施的客户服务案例中,积累了丰富的数据指标平台建设经验,本文将分享数势科技关于指标平台建设的探索。

主要内容包括以下几大方面:

  1. 行业探索

  2. 数势方案

  3. 应用案例

  4. 未来展望

分享嘉宾|李建星 北京数势云创科技有限公司 指标平台总经理

编辑整理|李挺

内容校对|李瑶

出品社区|DataFun

01行业探索

1. 领域问题

指标是实现企业战略目标落地的统一组织语言,是数字化经营的核心数据载体。在企业的数字化转型中,基于财务指标体系、业务指标体系的拆解,可以高效地实现目标制定到驱动业务执行、反馈形成完整管理闭环。在实际工作中,指标管理和应用除了组织流程机制的保障之外,如何打造一个高效的指标平台产品成为了一个非常重要的课题。

数势科技认为,建设一个好的指标平台不能只解决单点问题,而是要站在全局视角解决端到端的整体链路的各个环节的问题。一般的需求开发流程,如图所示,业务人员负责需求端和应用端,开发交付环节均由数据开发团队完成。主要存在两方面问题:

  • 慢,表现在需求响应慢、开发效率低、问题排查慢、业务应用建设周期长、查询性能差等方面,核心在于开发效能满足不了灵活多变的需求。根据调研,除互联网企业外,一般企业的数据团队人员在 10~20 人,这已经是非常大的规模了,但是要面向总部十几个业务部门,还要面向分公司、子公司的数据应用需求,实属应接不暇,效能成为关键瓶颈。
  • 乱,表现在定义乱、口径乱、应用乱、血缘乱、流程乱、资产乱等等,核心在于缺乏中心式的具有权威性的统一标准化的规范管理。


2. 业内探索

从 toB 端的工程实践来看,解决慢和乱的问题主要三种途径:敏捷 BI、数仓、HeadlessBI。

模式一:在应用层解决。现在绝大部分企业都在使用 BI,BI 平台都在向敏捷 BI 方向发展,倡导"人人都是分析师",希望业务人员可以自助进行数据加工,从而在某种程度上解决需求不断变化的分析效率问题,同时"短平快"地帮助企业完成数据闭环。本质上是部分数仓的建模工作被 BI 的可视化功能替代。

缺点:

  • 效率问题得到一定改善,但是指标口径依然混乱,重复开发、无法复用;
  • 使用有一定门槛,需要培训业务人员懂建模理论并能熟练使用 BI。

模式二:在数据基建层(数仓)中解决。也是分为两个方面,在生产时,通过规范每一个指标的开发过程,以及通过完善的数据治理体系来保障数据质量,然后逐步实现从人治到系统自动化的处理效果;在对外服务时,主要通过资产目录为业务提供支持。

缺点:

  • "乱"的问题得到缓解,但对业务需求响应依然比较慢,业务人员也无法参与指标开发过程。
  • 对于企业新建数仓比较适用。对于企业已有大量数据应用,要对数仓重构则代价会比较大,且指标开发过程耗时、结果层可复用性比较差。

模式三:HeadlessBI 模式。在 2021 年两位硅谷投资人提出将指标从 BI 中提取出来,生成一个解耦层,让业务人员不用写 SQL,直接配置化完成指标定义,不用去关心底层的技术形态;不同的应用对接同一个指标平台,口径一定是统一的、一致的,有效降低指标各类应用的重复建设。典型代表平台 Airbnb的 Minerva 指标平台践行了这一理念。通过近 10 年时间的迭代,进行了数仓的重构,整个企业所有的数据都以这个平台作为统一出口。另一个具有代表性的是来自于 Minerva 技术团队创业迭代的 Transform 平台。



3. 基于 Headless 理念的智能指标平台建设思路

数势科技研究发现,指标层的建设思路按指标的"生产模式"大概有以下三类:

方案一,轻生产模式:适合用这个方案的企业的主要特征是一般已经有一套存量指标库,只是需要便捷、有效地管理起来,核心在于将存量指标接入平台,和底层模型建立起映射关系,对外通过 API 发布出去。根据企业的发展阶段不同,指标层的落地也有较大差异:

  • 数仓比较成熟时------可以直接注册绑定;
  • 数仓或数据湖不完善------需要支持联邦查询,以标准化的指标定义语言进行注册和发布统一 API。

方案二,重生产模式:此类项目实施案例比较多。方案特点在于在数据中台规划建设中存在一个"指标管理"的工具模块,这个模块按照数仓的标准管理规范,从数仓的业务域、数据域,按照定义好的过程,遵循修饰词、数仓分层、分域的命名规范,一步一步地完成原子指标、派生指标、复合指标的落地。实施过程中可以通过其他工具实现自动化、智能化。对指标的管理和物化的结果,会根据不同企业内不同的技术环境产生差异:

  • 以 Hadoop 为代表------按照数仓的逻辑分层进行物理表落地在 hive 里。
  • 以 OLAP 引擎为代表------落地在设计指标和维度的应用层 cube。

以上方式是将指标模型物理化落地,其弊端在于,如果业务口径发生变化,则需要人工重新更新脚本,重刷历史数据,维护成本较高。

方案三,"生产+消费"一体化模式,类似 Airbnb 的 Minerva 指标平台的实现方式。对比方案二,首先将指标从数仓中解耦出来,不再按照数仓的标准化、规范化的路径建设,而是以需求为驱动,将数仓的表自动构建为指标和维度的语义模型。可以承接任意业务部门的指标需求,在平台上自动化的生产相应指标对应的物理存储对象。



数势科技作为 toB 型企业,在设计产品时重点考虑通用性和减少定制化开发,因此产品进行了外挂式的独立模块设计,要兼容不同企业的技术选型以及不同的数据基座建设阶段。数势科技希望产品既要解决指标从定义、开发到管理、消费的效率问题,也要解决口径管理混乱的问题,还要解决不同场景下使用体验的性能问题。

因此,数势科技结合项目实施经验,在设计指标平台的产品时侧重打造三方面的能力,包括:

  • 指标生产能力-从源表到指标的语义层模型
  • 指标消费能力-将指标和维度封装成 API 发布出去
  • 查询加速能力-提高应用层的查询/计算性能

在下面章节中将详细展开介绍。

02数势科技方案

1. 数势科技指标平台的发展过程

数势科技指标平台的研发主要经历了两大阶段:

阶段一:数势指标平台 V1.0 定位"统一管理和服务",大量的中台项目实施,指标被作为中台搭建工具使用,依托中台能力基础,指导中台开发,开发结果同步出来。

阶段二:数势指标平台 V2.0 定位"以指标为中心",进行管用一体、全链路指标化,产品功能闭环且灵活高效,让用户操作简单、低门槛;同时在底层引擎或存储优化方面,数势科技做了大量的工作。最终构建了以指标为中心,具备完整的指标生命周期的指标平台(SwiftMetrics)。



2. 数势科技指标平台功能概览



数势科技指标平台产品的核心功能模块包括数据准备、指标定义、指标加工、指标管理、指标服务、指标取数、BI 分析、指标归因等。除了符合行业内指标平台的通用功能模块外,还构建了特色功能,比如基于大模型的 Copilot 能力,可以提供更加智能化的使用体验,另外,提供了很多动态设置参数的功能,在指标定义、开发与应用等各个场景中,可以支持用户设置个性化的参数,真正实现统一、灵活、自助、高效。

平台功能无法一一列举,在此以一个最简单的场景举例:

业务人员一个基础需求是自助取数,要做好这个功能要实现几个关键点:

  • 门槛低:能否以拖拉拽方式对任意指标和维度自助完成取数
  • 灵活度:是否支持各种需求的指标二次计算的灵活扩展
  • 高性能:如何提升查询取数的效率很关键

数势科技指标平台产品的参考功能页面效果:



从上图可知,数势科技产品可以从 List 中拖拽选择所需的指标及维度,并设置过滤条件,还可以设置二次计算(设置组合指标、计算算子条件、统计时间粒度自动上卷、快速同环比、结果格式化等配置),在业务人员使用时门槛低且灵活度高。在性能层面,数势科技产品也会自动在后台设置不同的优化策略,确保在前端查询可以实现场景和性能的最佳匹配。

除此之外,数势科技指标平台的取数功能还有 2 个特点:

  • 可以选择平台上任意一个指标和维度进行组合,不用再局限某张表或某个数据集
  • 新增指标后,可以与历史存量指标组合进行即席查询,不用新建模型或数据集,也无需历史刷数。

一个简单且强大的取数功能背后依托的是数势科技先进的技术架构设计方案。数势科技通过指标中心化,定语语义化,数据虚拟化,存算分离与查询策略自动构建等处理过程,最终实现业务人员无需关心背后的技术计算过程,满足其所见即所得的产品体验。

3. 数势科技指标加工的方法论

数势科技的指标平台,核心是基于指标中心化的理念,完整详细的拆解了指标的加工过程并落地到产品功能中。

数势科技指标平台产品沿用了行业内通用的概念,按照原子、派生、衍生指标的逻辑分层组合方式进行设计,同时还基于落地经验做了非常深度和细致的方法论调整:



针对原子指标、派生指标、衍生指标的不同特点,数势科技完成了功能要素的重新组织,在数据源表类型、逻辑条件继承、统计粒度与业务限定的规范化等方面进行最大限度的开放和灵活配置。

基于数势科技方法论设计的指标平台不仅可以无缝衔接各类企业数据基座的数据源和数据表类型,还可以对复杂计算逻辑,如去重计数(Count Distinct)的指标、不同时间窗口的同环比指标以及多层嵌套指标(如分组聚合占比)等场景进行灵活配置参数的适配。完美解决因数仓开发物化结果表而带来的不同维度下指标的数据正确性和一致性的问题。

4. 数势科技指标平台 SwiftMetrics 的架构图



数势科技指标平台的架构包括四层:

第一层是数据接入层,选择适配 StarRocks 作为存储和计算引擎。

第二层是数据预处理层,也是产品的核心能力层,包括指标生产和 SwiftMetrics性能加速两个核心模块。

  • 指标生产采取虚拟化的方式,实现模型构建和指标定义构建的解耦,实现了通过指标规则对指标定义和数据模型的连接,包含了如元数据如何管理、模型如何构建、指标语义层如何构建等丰富的方案设计细节。
  • SwiftMetrics 性能加速引擎模块,作为平台查询计算的核心驱动能力,解决不同场景下加速策略的智能路由,为查询计算效率提供可用性保障。

第三层是服务层,对外提供元数据、指标数据的查询接口等。

第四层是对外的网关、单点、用户管理等的适配。

5. 数势科技底层引擎选型依据



结合指标应用场景通过在多个项目工程实践的一些总结:

(1)ClickHouse 方案------缺点在于 Join 性能不佳;

(2)Apache Kylin 方案------缺点在于建 cube,成本高,增删改查不方便;

(3)Presto 方案------跨引擎支持较好,但灵活查询性能和并发情况不满足要求;

(4)StarRocks 方案------根据技术特点分析,可以适配上述方案的要求。

6. 数据虚拟化设计方案

数据预处理模块的设计思路,来自于"DataFabric"技术理念,核心解决的问题是,不需要前置进行数据整体集中,面向业务用户屏蔽后台数据存储形态,,实现根据业务查询需求,自动化适配最优策略,确定最优的查询路径,拿到结果。数势科技指标平台基于数据虚拟化的方案实现了指标口径的统一、血缘自动生成等功能。



7. 指标查询加速引擎------SwiftMetrics

数势科技自研了核心的指标查询加速引擎------SwiftMetrics。其中内置了多种优化策略实现计算链路的优化,如图示,将常规的指标查询进行计算链路优化,极大地提升了查询性能。



关于 SwiftMetrics 策略寻优的核心是对策略的 ROI 评估,包括:

  • 计算代价评估:涉及数据量、计算复杂度、查询数据范围,评估集群资源消耗等;
  • 收益评估:科学评估性能提升的效果,必须是有益的策略建议;
  • 目标评估:配置平台整体的优化目标,作为全局变量(如数据量规模、N 个指标的组合查询、查询时长控制阈值等),指导 SwiftMetrics 策略寻优。

8. SwiftMetrics 多优化策略性能测试结果

数势科技通过提供内部对比测试场景,说明优化策略后的效果。

具体来说,数势科技准备了三张数据表:分别为 10 亿、2 亿、2 千万数据量,针对这组表进行多指标取数查询对比。当不启动 SwiftMetrics 优化策略时,90% 查询耗时在 1 分钟左右;而启动 SwiftMetrics 优化策略后,请求数不降反增,90% 耗时控制到了秒级以内。



03应用案例

某零售集团采用了数势科技的指标中台建设方案,核心建设内容是根据业务需求梳理完整的指标体系、建设指标平台统一做好指标的管和服务,并最后又搭建了经营分析平台,放大业务价值。

简单总结这个项目有四个方面的价值:

  • 技术价值:效率提升显著,20% 指标的开发配置留给技术,80%的交给业务自助配置;同时,重复开发情况得到了有效屏蔽。
  • 业务价值:面向经营分析的业务人员,要用到大量的分析报告,看数用数的时效性、准确度、取数的效率均得到了改善。
  • 对集团管理层,从只能看到一级部门指标,到能看到区域/二级机构、所有部门的指标。实现从战略目标到一线执行的全面跟进。
  • 推动数据基建和其他应用场景的建设,企业整体的数字化能力显著提升。

04未来展望

数势科技指标平台未来主要的迭代方向包括以下几大方面:

  • 产品层面,未来拓展对实时指标的支持,扩充行业的指标体系模板库
  • 智能化服务,借助大模型和算法能力持续探索智能应用场景,提高智能化的交互能力,让用户拿到指标后能更好地使用指标
  • 可视化能力,不断沉淀和落地具有业务 know-how 的数据分析可视化功能
  • 技术架构和性能,围绕 SwiftMetrics 进行策略持续优化升级


数势科技认为,指标平台作为解决企业经营数字化的核心能力模块,会逐渐成为企业数据产品矩阵中不可或缺的一环。数势科技希望与业内伙伴和客户一起,帮助中国各行各业的数字化建设水平提升到新的阶段。

以上就是本次分享的内容,谢谢大家。




本文地址:https://www.6aiq.com/article/1703844922017
本文版权归作者和AIQ共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出