向 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