Agregar un objeto a una Metric View
En esta guía se muestra cómo agregar una nueva dimensión (campo) a una Metric View cargada. Este patrón se aplica a todas las colecciones de Metric View.
Deserializar Metric View para estos ejemplos de código
Esta guía paso a paso usa una Metric View de ejemplo de comercio electrónico que representa datos de ventas, con tres tablas de dimensiones (producto, cliente y fecha) unidas a una tabla de hechos (pedidos). Ejecuta primero el siguiente fragmento si quieres seguir el código en el resto de esta guía
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)
""");
Crear un nuevo objeto de dimensión de Metric View
Utiliza el constructor Dimension de Metric View para crear una nueva dimensión de Metric View:
using MetricView = TabularEditor.SemanticBridge.Platforms.Databricks.MetricView;
var newDimension = new MetricView.Dimension
{
Name = "customer_city",
Expr = "customer.city"
};
Agregar a la Metric View
La propiedad Dimensions de la Metric View es un IList<Dimension>, por lo que puedes usar 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());
Salida
Dimensiones antes de agregar: 8
Dimensiones después de agregar: 9