Appearance
什么是语义层?
关于语义层的定义存在许多争论。在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提供数据上下文,减少查询错误。