指标存储
在指标平台中,除了必要的数据读取来源,平台对指标管理主要涉及两部分:
- 指标的元数据信息管理:包括指标名称、描述、别名、业务口径、技术口径、负责人等描述指标信息的相关数据,和项目绑定;
- 指标的计算结果信息管理:平台支持两种指标结果的管理方式,一种是由用户自行建表、建任务、生成指标数据结果并写入目标库,指标平台负责将指标和用户自有表做关联;另一种是由平台完成指标结果表的创建、计算与数据写入。对于平台落表而言,指标调度任务执行过后的计算结果信息,在数据库里会以一个指标对应N张结果表的形式进行存储,具体表结构说明可以参考指标结果表。
以上,指标的元数据信息存在对应mysql数据源中,指标计算结果数据存在对应Hive/Doris/StarRocks数据源中。
因为不同的指标维度信息有所不同,故不是所有的指标都能合并存储在同一张表里,故平台针对指标计算结果的存储,制定了以下规则:
- 一个派生指标中,每个维度组合对应一张指标结果表;
- 一个复合指标中,每个维度组合对应一张指标结果表;
- 一段自定义sql对应一张指标结果表;
另针对已经计算出结果的指标,【指标市场】模块中,对应的结果查询功能,可以根据业务日期和每个指标对应的维度信息,查询到相关的计算结果信息,举例说明:
- 派生指标【对公存款绩效利润率】,维度为机构id、客户id,指标编码为【F_0001】;
- 开启调度后,会生成对应TrinoSQL任务【indexF_0001】,命名自动遵循‘index’+‘指标编码’的规则;
此时此指标的结果查询,过滤条件包括业务日期、机构id、客户id,参考如下图:
note
自定义指标是以sql脚本为维度进行存储的,所以和其他类型的指标不一样,它是一段sql脚本存一张指标结果表