Skip to content

什么是语义层?

关于语义层的定义存在许多争论。在OraAI中,我们所说的语义层是指一组YAML文件,用于定义以下内容:

  • 模型(Models):需要分析的核心业务对象。例如订单、产品、客户等。
  • 维度(Dimensions):通常是非数字属性,用于数据分组、过滤或分段。例如日期、类别、状态、名称等。
  • 度量(Measures):可量化的属性。例如产品成本、会话时长、温度等。
  • 指标(Metrics):基于度量和维度的计算与业务逻辑。例如总收入、平均订单价值等。
  • 过滤器(Filters):命名的布尔条件,用于常见查询约束。例如is_active(是否活跃)、is_deleted(是否删除)、is_paid(是否支付)等。

这些定义使OraAI能够:

  • 生成准确的SQL语句
  • 统一理解业务指标
  • 从数据中提供可靠的洞察

与其他语义层不同,OraAI的语义层并非抽象的计算层,而更接近数据目录(data catalog)。我们通过YAML配置帮助AI代理理解数据并构建可靠查询。

为什么使用语义层?

1. 集中管理业务逻辑

  • 在版本化文件中定义业务逻辑和指标,确保所有分析中一致复用。

2. 明确数据关系

  • 映射表间关联,使OraAI能高效导航数据模型。

3. 补充上下文与含义

  • 通过描述和元数据,帮助AI理解数据的业务意义。

关键点梳理

术语作用示例
模型核心业务对象订单、客户、产品
维度非数字属性,用于分组/过滤日期、状态、类别
度量可量化数值成本、时长、温度
指标基于度量+维度的计算逻辑总收入、平均订单价值
过滤器预定义的查询条件is_active=true(活跃用户)
关系连接不同模型的字段客户ID → 订单表中的客户字段

优势总结:

  • 一致性:避免重复定义指标,确保分析结果统一。
  • 可读性:YAML文件结构化,便于团队协作维护。
  • AI友好:为AI提供数据上下文,减少查询错误。