Headless 指标解析原理
Headless 指标解析原理的重点在于把前置条件、操作顺序和容易误判的地方分清楚。
前文介绍了如何进行建模、如何创建指标;本文主要介绍基于度量,已有指标,原始字段三种模式定义新指标后,如何对其进行解析转换成查询引擎可执行的SQL语义。原子元素和指标
原子元素:在模型已经定义好能够被模型识别的字段和度量。
指标:由原子元素通过SQL表达式定义。
衍生指标: 由指标通过SQL表达式定义。
解析过程
Headless接收到由Chat发来的SQL查询时,主要通过指标识别-定义拆解-指标替换三个步骤进行解析。
识别:通过对SQL进行解析,识别出查询中所用到的指标。拆解:通过指标的元数据定义,将指标拆解成下一层的指标或者原始定义。替换:当拆解到最底层原子的定义,无法继续往下拆解时,使用原子定义对指标进行替换。聚合方法的处理:由于LLM给出的指标聚合方法可能和指标定义的不一致,目前主要分两种情况进行处理
(1) 基于单一度量创建的指标,聚合方法通过以下方式依次决定。a. 通过调用参数AggOption指定,其中NATIVE将忽略语义模型中度量的聚合方法,采用SQL或者请求数据中定义的方法。b. AggOption为DEFAULT将采用语义模型中度量的聚合方法,语义模型中时间维度的聚合粒度为None, 则不采用度量的聚合方法。(2) 基于多个度量,字段,指标创建的指标,其聚合方法以定义的为准,忽略LLM生成的SQL中的聚合方法。以下通过一个例子进行说明
指标 PV=PV0+PV1
PV0=SUM(case when f0='a' then f1 else 0 end)
PV1=m0+m1
其中PV PV0 PV1 为指标,f0,f1 为字段,m0,m1为度量
select sum(PV) from tb--PV是一个指标定义,原始模型中并不存在,直接交由引擎无法查询--解析后变成select ( SUM(case when f0='a' then f1 else 0 end) )+(SUM(m0)+SUM(m1)) from tb--f0,f1,m0,m1都是模型中存在的原始字段,查询可以直接识别注意事项1. 指标不可引用自身指标
指标的拆解存在一个循环递归的过程,引用自身指标进行定义会导致无法跳出拆解过程,目前后台界面对此做了限制,不允许引用一个非字段非度量定义的指标。
2. 表达式要符合规范
(1)表达式采用SQL进行定义,因此需要符合通用的SQL表达式语法,否则SQL解析失败,指标将无法正常替换。
(2)表达式引用的字段,度量,指标需要从待选列表中选择,否则解析时无法识别到引用的元素时,指标将无法正常替换。
相关资讯
-
08.22
AI 视频生成模型横向评测:深度上手 Vera 1.1 的时序一致性表现
-
08.22
Headless 指标解析原理
-
08.22
AgentKit智能体沙箱环境配置实现安全运行
-
08.22
火山引擎智能创作混剪适配电商素材操作操作步骤
-
08.22
《异种航员2》运动说明
-
08.22
《促进网信企业高质量发展行动计划(2026-2030年)》印发:加强高端芯片、基础软件和等关键核心技术攻关
游戏推荐
推荐专题
热门阅读
-
-
- Headless 指标解析原理
- 08.22
-
- 轻松创建思维导图的技巧和做法分享
- 08.22
推荐下载
-
-
下载
- |
-
-
下载
- 《行尸走肉第一章》免安装中文汉化硬盘版下载
- 单机|436 MB
- 一款以动作冒险为主题的游戏
-
-
下载
- 《街头霸王X铁拳》免安装中文汉化硬盘版下载
- 单机|111MB
- 一款非常好玩的格斗游戏
-
-
下载
- |
-
-
下载
- 《暗黑破坏神3》免安装繁体中文正式版下载
- 单机|7630 MB
- 一款以角色扮演为主题的游戏
-
-
下载
- 《马克思佩恩3》免安装硬盘版下载
- 单机|27033 MB
- 一款以第三人称射击为主题的游戏