Table of Contents

向 Metric View 添加对象

本操作指南演示如何将新的 Metric View 维度(字段)添加到已加载的 Metric View 中。 类似的方法也适用于所有 Metric View 集合。

对这些代码示例的 Metric View 进行反序列化

本操作指南使用一个示例电商 Metric View 来表示销售数据,其中三个维度表(product、customer、date)连接到一个事实表(orders)。 如果你想在阅读本操作指南其余部分时跟着代码一起操作,请先运行下面的代码片段

SemanticBridge.MetricView.Deserialize("""
    version: 0.1
    source: sales.fact.orders
    joins:
      - name: product
        source: sales.dim.product
        on: source.product_id = product.product_id
      - name: customer
        source: sales.dim.customer
        on: source.customer_id = customer.customer_id
      - name: date
        source: sales.dim.date
        on: source.order_date = date.date_key
    dimensions:
      - name: product_name
        expr: product.product_name
      - name: product_category
        expr: product.category
      - name: customer_segment
        expr: customer.segment
      - name: order_date
        expr: date.full_date
      - name: order_year
        expr: date.year
      - name: order_month
        expr: date.month_name
    measures:
      - name: total_revenue
        expr: SUM(revenue)
      - name: order_count
        expr: COUNT(order_id)
      - name: avg_order_value
        expr: AVG(revenue)
      - name: unique_customers
        expr: COUNT(DISTINCT customer_id)
    """);

创建新的 Metric View 维度对象

使用 Metric View 的 Dimension 构造函数来创建新的 Metric View 维度:

using MetricView = TabularEditor.SemanticBridge.Platforms.Databricks.MetricView;

var newDimension = new MetricView.Dimension
{
    Name = "customer_city",
    Expr = "customer.city"
};

添加到 Metric View 中

Metric View 的 Dimensions 属性是一个 IList<Dimension>,因此可以使用 Add() 方法:

using MetricView = TabularEditor.SemanticBridge.Platforms.Databricks.MetricView;

var sb = new System.Text.StringBuilder();
sb.AppendLine($"Dimensions before adding: {SemanticBridge.MetricView.Model.Dimensions.Count}");

var newDimension = new MetricView.Dimension
{
    Name = "customer_city",
    Expr = "customer.city"
};

SemanticBridge.MetricView.Model.Dimensions.Add(newDimension);

sb.AppendLine($"Dimensions after adding: {SemanticBridge.MetricView.Model.Dimensions.Count}");
Output(sb.ToString());

输出

Dimensions before adding: 8
Dimensions after adding: 9

另见