Compartir a través de


¿Qué son los cálculos personalizados?

Los cálculos personalizados permiten definir métricas y transformaciones dinámicas sin modificar consultas de conjunto de datos. En este artículo se explica cómo usar cálculos personalizados en paneles de IA/BI.

¿Por qué usar cálculos personalizados?

Los cálculos personalizados permiten crear y visualizar nuevos campos desde conjuntos de datos de panel existentes sin cambiar el código SQL de origen. Puede definir hasta 200 cálculos personalizados por conjunto de datos.

Los cálculos personalizados son uno de los siguientes tipos:

  • Medidas calculadas: valores agregados como ventas totales o costo medio. Las medidas calculadas pueden usar el AGGREGATE OVER comando para calcular valores en intervalos de tiempo.
  • Dimensiones calculadas: valores o transformaciones no agregados, como clasificar intervalos de edad o cadenas de formato.

Los cálculos personalizados se comportan de forma similar a las vistas de métricas, pero se limitan al conjunto de datos y al panel donde se definen. Para definir métricas personalizadas que se pueden usar con otros recursos de datos, consulte Vistas de métricas del catálogo de Unity.

Creación de métricas dinámicas con medidas calculadas

Supongamos que tiene el siguiente conjunto de datos:

Elemento Región Precio Cost Fecha
Apples USA 30 15 2024-01-01
Apples Canadá 20 10 2024-01-01
Oranges USA 20 15 2024-01-02
Oranges Canadá 15 10 2024-01-02

Quiere visualizar el margen de beneficio por región. Sin cálculos personalizados, tendría que crear un nuevo conjunto de datos con una margin columna:

Región Margin
USA 0.40
Canadá 0.43

Aunque este enfoque funciona, el nuevo conjunto de datos es estático y solo puede admitir una sola visualización. Los filtros aplicados al conjunto de datos original no afectan al nuevo conjunto de datos sin ajustes manuales adicionales.

Con los cálculos personalizados, puede expresar el margen de beneficio como una agregación mediante la fórmula siguiente:

(SUM(Price) - SUM(Cost)) / SUM(Price)

Esta medida es dinámica. Cuando se usa en una visualización, se actualiza automáticamente para reflejar los filtros aplicados al conjunto de datos.

Definición de medidas calculadas en un intervalo

Una tarea común en las visualizaciones del panel es calcular una medida, como SUM(sales) en un intervalo, como los últimos 7 días. En el caso de los conjuntos de datos del panel, use el AGGREGATE OVER comando para definir estos tipos de cálculos de medida basados en intervalos.

El AGGREGATE OVER comando puede incorporar datos fuera del grupo o partición actual. Por ejemplo, si una visualización agrupa los datos por día, un intervalo final de 7 días permite que el punto de datos de cada día incluya datos de los 6 días anteriores. Si se usa la misma medida en una visualización agrupada por mes, el intervalo de 7 días solo usa los últimos 7 días en cada mes.

Con el mismo conjunto de datos que el ejemplo anterior, la expresión siguiente calcula el margen de beneficio promedio final de 7 días.

(
  (SUM(Price) - SUM(Cost)) / SUM(Price)
) AGGREGATE OVER (
  ORDER BY Date
  TRAILING 7 DAY
)

Después de la creación, esta medida se puede aplicar en cualquier visualización.

sintaxis de AGGREGATE OVER

El AGGREGATE OVER comando requiere la sintaxis siguiente:

{expr} AGGREGATE OVER (ORDER BY {field} {frame})

Arguments

  • expr

    Expresión de medida calculada válida que se va a evaluar

  • campo (obligatorio)

    Un nombre de columna válido

  • frame (obligatorio) Puede ser uno de los siguientes:

    • CURRENT
    • CUMULATIVE
    • ALL
    • (TRAILING|LEADING) unidad de número
      • El número es un entero.
      • unit es DAY, MONTH o YEAR
      • ejemplo: TRAILING 7 DAY o LEADING 1 MONTH

En la tabla siguiente se identifica la comparación entre la especificación de marco de agregación con la cláusula equivalente de marco de ventana de SQL.

Especificación de marco Cláusula de marco de ventana SQL equivalente
CURRENT INTERVALO ENTRE LA FILA ACTUAL Y LA FILA ACTUAL
ALL INTERVALO ENTRE SIN LÍMITES ANTERIORES Y SIN LÍMITES SIGUIENTES
ACUMULATIVO INTERVALO ENTRE LA FILA ANTERIOR Y LA FILA ACTUAL SIN ENLAZAR
FINAL <NUMBER><UNIT> INTERVALO ENTRE <NUMBER><UNIT> ANTERIOR Y 1 <UNIT> ANTERIOR
PRINCIPAL <NUMBER><UNIT> INTERVALO ENTRE 1 <UNIT> SIGUIENTE Y <NUMBER><UNIT> SIGUIENTE

Comparación de AGGREGATE OVER con funciones de ventana

El AGGREGATE OVER comando es similar a las funciones de ventana en SQL, que a menudo se usan para calcular las métricas. Sin embargo, a diferencia de las funciones de ventana, puede usar AGGREGATE OVER sin especificar un campo de partición en la expresión. En lugar de eso, hereda las particiones de la agrupación de la consulta de visualización. Esto significa que puede usar estas medidas de forma más dinámica. Por ejemplo, puede calcular una media móvil de 7 días por línea de producto agregando la medida al eje Y de una visualización y línea de producto al eje X.

Si el ORDER BY campo no se agrupa en en la visualización, AGGREGATE OVER toma el valor agregado de la última fila como valor que se va a mostrar para cada grupo. Si está familiarizado con las medidas de suma parcial, es posible que lo reconozca como equivalente al last comportamiento de suma parcial.

Definición de valores no agregados con dimensiones personalizadas

Las dimensiones calculadas permiten definir valores no agregados o transformaciones ligeras sin cambiar el conjunto de datos de origen. Esto resulta útil cuando desea organizar o volver a formatear los datos para su visualización.

Por ejemplo, para analizar las tendencias de edad por grupo de edad en lugar de por edades individuales, puede definir una dimensión personalizada age_group mediante la expresión siguiente:

CASE
   WHEN age < 18 THEN '<18'
   WHEN age >= 18 AND age < 25 THEN '18–24'
   WHEN age >= 25 AND age < 35 THEN '25–34'
   WHEN age >= 35 AND age < 45 THEN '35–44'
   WHEN age >= 45 AND age < 55 THEN '45–54'
   WHEN age >= 55 AND age < 65 THEN '55–64'
   WHEN age >= 65 THEN '65+'
END

Ventajas de rendimiento

Los cálculos personalizados están optimizados para el rendimiento. Para conjuntos de datos pequeños (≤100 000 filas y ≤100 MB), los cálculos se ejecutan en el explorador para una capacidad de respuesta más rápida. Sql Warehouse procesa conjuntos de datos más grandes. Consulte Optimización y almacenamiento en caché del conjunto de datos para obtener más detalles.

Creación de un cálculo personalizado

En este ejemplo se crea una medida calculada basada en el conjunto de datos samples.nyctaxi.trips. Se presupone conocimientos generales sobre cómo trabajar con paneles de INTELIGENCIA ARTIFICIAL y BI. Si no está familiarizado con la creación de paneles de INTELIGENCIA ARTIFICIAL o BI, consulte Creación de un panel para empezar.

  1. Abra un conjunto de datos existente o cree uno nuevo.

  2. Haga clic en Cálculo personalizado.

    El botón de cálculo personalizado está resaltado en la esquina superior derecha del panel de resultados.

  3. Se abre un panel Crear cálculo en el lado derecho de la pantalla. En el campo de texto Nombre, escriba Costo por milla.

  4. (Opcional) En el campo de texto Descripción , escriba "Usa el importe de la tarifa y la distancia de viaje para calcular el costo por milla".

  5. En el campo Expresión , escriba lo siguiente:

    try_divide(SUM(fare_amount), SUM(trip_distance))
    
  6. Haga clic en Crear.

Editor de cálculos personalizados con los valores de las instrucciones rellenadas.

Adición de cálculos personalizados a una vista de métricas

Importante

Esta característica está en versión preliminar pública.

Puede definir cálculos personalizados sobre un conjunto de datos creado por una vista de métrica. Solo se muestran la tabla de resultados y el esquema al abrir el conjunto de datos. Haga clic en Cálculo personalizado para definir un nuevo cálculo personalizado. Para definir métricas personalizadas adicionales que pueden usar otros recursos de datos, realice cambios en la definición de vista. Consulte Vistas de métricas del catálogo de Unity.

Para definir una nueva vista de métricas desde el editor de conjuntos de datos del panel, consulte Exportación como una vista de métricas.

Visualización del esquema

Haga clic en la pestaña Esquema del panel de resultados para ver el cálculo personalizado y su comentario asociado.

Las medidas calculadas se enumeran en la sección Medidas y se marcan con un icono de medida calculado fx. El valor asociado a una medida calculada se calcula dinámicamente al establecer el GROUP BY en una visualización. No puede ver el valor en la tabla de resultados. Las dimensiones calculadas aparecen en la sección Dimensiones .

Aparece una medida calculada en la pestaña esquema.

Uso de un cálculo personalizado en una visualización

Puede usar la medida calculada Costo por milla creada anteriormente en una visualización.

Las medidas calculadas se agregan automáticamente a las dimensiones configuradas en el gráfico. Este comportamiento es el mismo que el funcionamiento de las dimensiones y las medidas en las vistas de métricas, donde la agregación se adapta dinámicamente a las agrupaciones que define en la visualización.

  1. Haga clic en Canvas. A continuación, coloque un nuevo widget de visualización en el lienzo.
  2. Use el panel de configuración de visualización para editar la configuración de la siguiente manera:
    • Conjunto de datos: Datos de taxicab
    • Visualización: barra
    • Eje X:
      • Campo: dropoff_zip
      • Tipo de escala: categórica
      • Transformar: Ninguno
    • Eje Y:
      • Costo por milla

Nota:

Las visualizaciones de tabla admiten dimensiones calculadas, pero no admiten medidas calculadas.

En la imagen siguiente se muestra el gráfico.

Gráfico de barras que muestra el costo por milla frente al código postal de entrega.

Las visualizaciones con cálculos personalizados se actualizan automáticamente cuando se aplican filtros. Por ejemplo, agregar un filtro pickup_zip actualizará la visualización para mostrar solo los datos que coinciden con los valores seleccionados.

Edición de un cálculo personalizado

Para editar un cálculo:

  1. Haga clic en la pestaña Datos y, a continuación, haga clic en el conjunto de datos asociado al cálculo que desea editar.
  2. Haga clic en la pestaña Esquema del panel de resultados.
  3. Las medidasy dimensiones aparecen en la lista de campos del conjunto de datos. Haga clic en el icono de menú Kebab. Menú kebab situado a la derecha del cálculo que desea editar. A continuación, haga clic en Editar.
  4. En el panel Editar cálculo personalizado , actualice los campos de texto que desea editar. Después, haz clic en Actualizar.

Eliminación de un cálculo personalizado

Para eliminar un cálculo:

  1. Haga clic en la pestaña Datos y, a continuación, haga clic en el conjunto de datos asociado a la medida que desea editar.
  2. Haga clic en la pestaña Esquema del panel de resultados.
  3. La sección Medidas aparece en la lista de campos. Haga clic en el icono de menú Kebab. Menú kebab situado a la derecha del cálculo que desea editar. Después, haga clic en Eliminar.
  4. Haga clic en Eliminar en el cuadro de diálogo Eliminar que aparece.

Limitaciones

Para usar cálculos personalizados, lo siguiente debe ser verdadero:

  • Las columnas usadas en la expresión deben pertenecer al mismo conjunto de datos.
  • Las expresiones que hacen referencia a tablas externas o orígenes de datos no se admiten y pueden producir errores o devolver resultados inesperados.

Funciones compatibles

Para obtener una referencia completa de todas las funciones admitidas para los cálculos personalizados, consulte Referencia de función de cálculo personalizado. Si se intenta usar una función no admitida, se produce un error.

Examples

En los ejemplos siguientes se muestran usos comunes para cálculos personalizados. Cada cálculo personalizado aparece en el esquema del conjunto de datos en la pestaña de datos. En el lienzo, puede elegir el cálculo personalizado como campo.

Filtrar y agregar datos condicionalmente

Utilice una instrucción CASE para agregar datos condicionalmente. En el ejemplo siguiente se usa el samples.nyctaxi.trips conjunto de datos y se calcula la suma de tarifas para todos los viajes que comienzan en el código postal 10103.

SUM(CASE
  WHEN pickup_zip=10103 THEN fare_amount
  WHEN pickup_zip!=10103 THEN 0
END)

Construir cadenas

Use la CONCAT función para construir un nuevo valor de cadena. Consulte concat función y concat_ws función.

CONCAT(first_name, ' ', last_name)

Formato de fechas

Use DATE_FORMAT para dar formato a cadenas de fecha que aparecen en visualizaciones.

DATE_FORMAT(tpep_pickup_datetime, 'YYYY-MM-dd')