合作机构:阿里云 / 腾讯云 / 亚马逊云 / DreamHost / NameSilo / INWX / GODADDY / 百度统计
数字化转型多年,现在很多业务人员都依赖数据来做日常决策。传统的方式是业务提需求给 IT,IT 会根据每个特定需求开发定制化的宽表和汇总表,再做成 BI 工具里的报表。在这个过程中,会有很多反范式的 ETL 加工,使得整个数仓的数据管道越来越长、越来越深,企业数据治理的难度也越来越大。
反范式的加工给企业带来高成本、低质量、低效率的问题。
有没有什么办法能解决“效率、质量、成本”不可能三角的问题呢?整体来说,有两种思路:
第一个思路是不开发宽表汇总表。既然“不可能三角”的原罪在于人工的大量的反范式加工,那能不能不进行这样的加工呢?早期,数据量较小,这个模式是可行的,直接开发公共层的明细表提供给业务去消费,可以大幅减少不可能三角。然而在大数据量的情况下,不做宽表和汇总表的开发很难保证性能,因此这条路行不通。
第二个思路是将人工 ETL 方式变成 NoETL。原来“不可能三角”是人工做开发,那么能不能将人工的方式变成自动化的方式?这条路是可行的。
把人工变成自动化的前提是让机器和系统理解业务需要的指标的业务逻辑,即实现应用层 NoETL 自动化的前提是指标语义的标准化沉淀,也就是需要将业务指标体系以及指标的计算逻辑告诉系统。
从上图中可以看到,原来数仓是从贴源层到公共层再到集市层的开发,现在将集市层用指标语义层代替。这样,原来需要在集市层做大量的反范式的开发,现在只需要将业务的指标以及指标的计算逻辑通过配置化方式告诉系统即可,不需要做物理链路的开发实现。所以,要有指标语义标准化沉淀的过程。
基于标准化语义,自动化生成反范式的宽表与汇总表。
有了指标标准化定义的能力和模型能力,反范式的宽表和汇总表的加工就可以实现系统自动了。系统可以自动将一个事实表和多个维度表的维度组合在一起,也可以实现多个事实表背后的不同指标和多个维度一起分析。业务人员不用关心多个指标到底来自于哪一张物理表,屏蔽了底层的技术概念,用户感受到的是指标和维度这样偏业务语言的概念。
原来传统的方式为什么做不到呢?要实现指标定义能力承载在指标平台上,要求平台具备强大的指标语义表达能力。如果平台没有很强大的语义表达能力,就需要在数仓或者BI 工具里写 SQL 开发来定义指标的计算逻辑。
怎么保证所有的指标定义都在平台上承载。
指标定义可分成四大类:
除此之外,还有常规聚合类和日期函数等,通过将函数抽象封装成配置化的模板来支持复杂的指标计算,让技术能力不是很强的业务分析师或者业务人员无需写 SQL 也可以自助定义指标。原来面向业务场景的大量的反范式的宽表和汇总表一定需要 IT 开发,现在业务人员能够自主做数据准备,不需要有很强的技术能力。
指标定义转计算节点,支持复杂指标自动转成一个节点。
上图中展示了指标链路:先定义原子指标“销售额”,然后在原子指标的基础上定义派生指标“近 7 日销售额”,又在派生指标的基础上定义衍生指标“销售额占比”,在衍生指标的基础上定义复合指标“销售额占比去年同期的增长率”。整个指标定义链路很复杂,涉及从原子到派生到衍生到复合再到衍生的过程,通过语义层,可以将这个链路变成相对 SQL 来说非常简单的函数。
分成三个策略:
自动化指标生产的核心能力分为两层。
总结来说,应用层 NoETL 的核心是语义化和自动化两个能力。通过语义化提供任意复杂指标的配置化定义,通过自动化实现指标的定义即开发。如果没有性能问题,只要完成了语义化的定义,用户就可以直接消费数据了,这个过程叫做定义及服务。如果数据量比较大,系统会自动化进行宽表汇总表加工,来保证查询性能,这就是第三代指标平台,将原来 ETL 人工开发变成了 NoETL 的自动化开发。
Aloudata(大应科技)公司推出的第三代指标平台产品名为 Aloudata CAN,实现了 NoETL 的自动化生产。
指标从定义到开发到应用是一体化的,保证业务人员能够看懂。原来业务人员做分析的时候,面对的是数据集、物理表、字段这种偏技术的概念,现在面对的是指标和维度这些偏业务的概念,更容易理解。除了指标的业务含义外,还提供指标血缘,让业务能够清晰地了解指标的加工过程和口径。同时,如果指标口径发生了变更,平台会保存所有的指标版本,可以进行历史口径版本的对比。
对于承担数据管理职责的 IT 团队来讲,能够实现管得住。原来大量的指标逻辑是在数仓中由不同 IT 人员开发实现的,沟通协调比较复杂,需要花费很大的成本才能保证指标口径的一致性。现在,针对同样的指标进行不同维度的分析,只需要一次定义,就可以处处使用了。
同时,指标是基于公共层的明细数据生成的,保留了原来在公共层事实表和维度表的灵活性与丰富度,同一个指标能够支持多个维度下钻分析和任意维度的筛选组合,提供良好的用户体验。
第三代指标平台 Aloudata CAN 为业务带来的价值可以总结为两方面:
指标语义层替换传统数仓中的集市层,通过指标语义层实现自动化集市层开发。
在质量方面做到百分之百的指标口径一致。因为所有指标语义都是通过标准化、配置化的模板实现的,通过原子化指标的组装,系统能够提供指标重复校验,方便知道指标的计算逻辑是否一样,规避了“同名不同义”、“同义不同名”等二义性问题。
在效率方面也得到了提升。原来指标的开发依赖于 IT 人员,一体化后,将指标的开发和定义能力交给业务人员去做,降低了 IT 与业务的沟通成本,提高了效率。
在成本方面做到了节约。原来反范式的加工方式导致大量重复的宽表和汇总表开发,现在指标语义层通过自动化的方式可以规避重复开发。比如原来集市层做了一百张宽表和汇总表,可能因为重复开发,实际上只需要开发八十张表;八十张表里面,六十张表可以直接查询无需物化,二十张表因为数据量比较大,系统可以自动化开发宽表和汇总表;又因为一开始 ETL 的时候不清楚业务想要什么,为避免因漏掉业务常用的维度而反复变更,会把冗余的维度放在事实表里面,造成字段利用率低。现在系统按需进行开发,在相同的二十张宽表和汇总表里面可以减少冗余字段的开发,大大节约计算和存储成本。
上述是从“不可能三角”的视角来看价值,更偏向于管理层和 IT 方面。业务人员能感知到的则是分析的灵活性和指标数据的一致性。
原来做指标归因依赖数仓已经开发的表,会有维度的缺失。基于 Aloudata CAN 指标平台,只要是在公共层的维度表存在的维度,都可以用来做指标归因和下钻分析,使得业务人员能够找到指标波动背后的根本原因。
原来做自助探索分析的时候,希望增加一个视角来看数据,需要向 IT 提需求。现在通过 Aloudata CAN 指标平台,可以从任意的颗粒度和维度进行分析,甚至可以拿到背后的明细数据。
目前,有很多金融行业的头部客户都在尝试用大模型打造新的对话式的体验。原来通过 NL2SQL 的方式返回数据,存在数据精准度不够的问题,会有答非所问的情况出现。现在,基于 Aloudata CAN 指标平台,通过指标语义层加大模型能为企业对话式分析带来更为精准的体验。
助力某证券公司实现指标统一管理与复用。
该客户面临的挑战是:
通过 Aloudata CAN 指标能够解决这些问题。
在传统方式中,业务向 IT 提了三十个指标和二十个维度的分析需求,IT 在沟通过程中发现其中的五个指标和五个维度已经开发,只需要开发二十五个指标和十五个维度。IT 完成开发后,交给业务人员验收,业务人员发现指标和维度可能少了,需要反复沟通,一般这个过程至少要循环往复两到三轮。这样的模式下,从需求提出到交付验收需要两周的周期。
通过 Aloudata CAN 指标平台不断地沉淀已经定义好的指标和维度,IT 就能越做越轻。同样面对业务提出的三十个指标和二十个维度的分析需求,发现二十五个基础指标已经定义,而且基于基础指标的维度都已存在,就可以请业务通过拖拉拽进行自助分析了。针对原来没有进行基础指标定义的五个指标,双方要沟通指标口径定义,因为是原子指标,业务逻辑并不复杂,所以沟通过程也会很简单。而且,IT 定义完指标后,业务可以实时进行指标预览,业务人员能快速看到指标是否符合预期,并且可以切换不同的维度去看,如果符合预期,业务就可以验收并进行数据分析了。
传统的数仓基于反范式模式的开发,IT 越做越重,因为表越来越多,链路的依赖越来越长,问题排查也越来越难。基于指标语义层,数仓可以越做越轻,一旦做好原子指标的沉淀,就会越做越少,越做越轻松。分析效率有显著的提升,从原来的两周缩短到了两天。
对于整个行业来说,可以提升创新试错的效率。原来一轮试错可能要一个月,现在可能仅用一周即可完成。
TOP