技术博客
衡石技术博客是一个围绕数据分析和BI领域提供丰富实用的技术文章、案例分析和实战经验的博客平台。

免费试用

全部

帮助手册

API文档

课堂中心

技术博客

白皮书

指标即代码:解构衡石科技HQL与指标语义层的平台工程思想
作者:HENGSHI 时间:2025-11-20

在传统BI项目中,超过70%的成本和冲突源于指标口径不统一。业务、运营、技术团队对“销售额”、“活跃用户”等核心指标的定义各执一词,导致决策失准。衡石科技的核心创新之一,在于其引入了“指标即代码”的理念,并通过自主研发的HQL(Hengshi Query Language) 和强大的指标语义层,从根源上解决了这一难题。

一、传统指标管理的困境与“指标即代码”的诞生

  • 困境1:定义散落:指标逻辑分散在Excel、报表工具、甚至业务人员的脑海中。

  • 困境2:逻辑黑盒:SQL脚本冗长复杂,难以复用和审计。

  • 困境3:变更困难:业务规则变化时,需要技术人员手动修改大量报表和看板。

指标即代码”是一种平台工程思想,它将业务指标当作软件代码一样进行版本化、可复用、可测试、可协作的管理。

二、HQL:衡石指标语义层的核心载体

HQL是衡石科技设计的一种领域特定语言,它充当了业务概念与底层数据技术之间的桥梁。

  1. HQL的语法结构解析:

    1. 定义数据模型:HQL允许开发者像定义Java Class一样,通过简洁的语法定义维度和度量。

    2. hql

    3. // 定义一个‘销售流水’模型 MODEL sales_fact {  DIMENSION product_id STRING COMMENT '产品ID';  DIMENSION sale_date DATE COMMENT '销售日期';  DIMENSION region STRING COMMENT '销售区域';  MEASURE sales_amount DOUBLE COMMENT '销售金额'    EXPRESSION SUM(amount);  MEASURE sales_quantity LONG COMMENT '销售数量'    EXPRESSION SUM(quantity); }

    4. 构建复杂指标:基于基础模型,可以通过HQL构建复杂的派生指标。

    5. hql

    6. // 定义一个‘毛利率’指标 MEASURE gross_margin_ratio DOUBLE COMMENT '毛利率'  EXPRESSION (SUM(sales_fact.sales_amount) - SUM(sales_fact.cost_amount)) / SUM(sales_fact.sales_amount);

    7. 声明业务语义:HQL支持为指标添加丰富的元数据,如业务负责人、数据来源、刷新频率、数据质量校验规则等。

  2. HQL的技术优势:

    1. 声明式而非命令式:用户关心的是“What”(业务逻辑是什么),而不是“How”(SQL如何实现)。HQL编译器会自动将其转换为最优化的底层SQL(如SparkSQL、PrestoSQL等)。

    2. 可复用与组合:定义好的指标如同函数,可以被其他指标、查询和可视化组件直接引用,杜绝重复编码。

    3. 版本控制与CI/CD:HQL文件可以纳入Git等版本控制系统,实现指标的变更追踪、代码评审和自动化部署,真正实现DataOps。

三、指标语义层:统一业务口径的“单一事实来源”

HQL定义的指标集合,构成了整个平台的指标语义层。这一层是所有数据分析的基石。

  1. 工作原理:

    1. 抽象与映射:语义层将底层复杂的数据库表、字段映射为业务友好的“产品”、“销售额”等概念。

    2. 查询转换:当用户在界面上拖拽“销售额”指标时,前端会生成一个对语义层的查询。语义层服务会找到“销售额”的HQL定义,将其编译为适合底层数据源(如Snowflake、MySQL)的SQL,并交由查询引擎执行。

  2. 核心价值:

    1. 保证一致性:全公司所有报表和自助分析中的“销售额”都源于同一个HQL定义,确保了“单一事实来源”。

    2. 提升开发效率:数据团队一次定义,全公司无限复用。业务人员无需理解底层SQL即可进行可信的数据探索。

    3. 降低变更风险:修改指标逻辑只需更新一处HQL定义,所有依赖该指标的看板将自动更新。

四、与AI能力的深度融合

衡石科技的指标语义层与其AI引擎深度集成:

  • 智能数据建模:AI可以辅助推荐常见的指标和维度关系,加速HQL模型的构建。

  • 自然语言查询(NLQ)的基石:当用户输入“显示华东区上个月销售额最高的产品”时,NLQ引擎首先需要理解“华东区”、“销售额”、“产品”等概念。这些概念正确定义在指标语义层中,NLQ引擎才能将其准确翻译为对语义层的查询指令。

结语

衡石科技通过HQL和指标语义层,成功地将软件工程的最佳实践引入数据领域。这不仅是一个技术产品,更是一种方法论,它通过平台化的力量,将混乱的数据资产治理成体系化的、可信的、可快速交付的业务指标,从而真正释放了数据的民主化价值。

衡石注册banner.jpg


丰富的资源 完整的生态
邀您成为衡石伙伴