Update Policies en KQL: Transformación de datos en tiempo real


Las update policies (directivas de actualización) en KQL son una funcionalidad de Microsoft Fabric que te permite transformar y enriquecer los datos cada vez que se insertan datos en una tabla. En lugar de tener que ejecutar transformaciones posteriores, las update policies aplican una lógica predefinida automáticamente cada vez que se realiza una inserción.
Cuando se define una update policy en una tabla de destino, se asocia una consulta KQL que se ejecuta automáticamente cada vez que se insertan nuevos registros en la tabla origen. Esta consulta transforma los datos según la lógica establecida y los inserta en la tabla de destino.
Update policies en acción
Como siempre, con ejemplos prácticos se entiende todo mucho mejor.
Supongamos que tenemos una tabla llamada ISSGeoLoc
con el siguiente esquema:
.create table ISSGeoLoc (timestamp: int, iss_position: dynamic)
El campo iss_position
contiene información en formato JSON, y queremos extraer ciertos atributos y guardarlos en una tabla estructurada. El campo timestamp viene en formato Unix y queremos transformarlo en datetime.
Creamos la tabla de destino SilverISSGeoLoc
:
.create table SilverISSGeoLoc (Timestamp:datetime, latitude: real, longitude:real)
A continuación, creamos la función. Aquí es donde se define la consulta con la lógica que aplicaremos a cada dato que se inserte en la tabla origen.
.create function LoadISSGeoLocToSilver {
ISSGeoLoc
| extend timestamp = unixtime_seconds_todatetime(timestamp), j = parse_json(iss_position)
| extend latitude = toreal(j.latitude), longitude = toreal(j.longitude)
| project timestamp, latitude, longitude
}
Ahora, establecemos la directiva de actualización para invocar la función que hemos creado:
.alter table SilverISSGeoLoc policy update
@'[{ "IsEnabled": true, "Source": "ISSGeoLoc", "Query": "LoadISSGeoLocToSilver", "IsTransactional": true, "PropagateIngestionProperties": false}]'
IsEnabled: Una directiva de actualización puede estar habilitada o deshabilitada. Esto es bueno cuando se trabaja con cambios en la política de actualización, ya que a veces necesitamos una pausa en el proceso de carga para hacer los cambios.
Source: Nombre de la tabla que desencadena la invocación de la política de actualización
Query: Referencia a la función KQL que se ha definido. Se puede escribir la consulta KQL aquí pero a la larga, el mantenimiento no será fácil.
IsTransactional: Establece si la política de actualización es transaccional o no, por defecto es false. Si esto se establece a true, entonces si ocurre un error en la carga, toda la transacción se revertirá y no se cargará nada.
PropagateIngestionProperties: Establece si las propiedades especificadas durante la ingesta en la tabla de origen, como las etiquetas de extensión y la hora de creación, se aplican a la tabla de destino.
Con esta configuración, cada vez que se inserten registros en ISSGeoLoc
, la update policy transformará los datos y los insertará automáticamente en SilverISSGeoLoc
.
Para verificar los datos:
SilverISSGeoLoc
| take 100
Ventajas y consideraciones de las update policies en KQL
Ventajas
Automatización de transformaciones: Una vez definidas, las update policies se ejecutan automáticamente, eliminando la necesidad de tareas de transformación posteriores.
Eficiencia y rendimiento: Reducen la latencia al aplicar transformaciones en el momento de la inserción, evitando procesos por lotes adicionales.
Simplificación de arquitectura: Al minimizar la necesidad de pipelines ETL separados, la infraestructura de datos se vuelve más simple y fácil de mantener.
Datos siempre preparados: Las tablas derivadas siempre contienen datos transformados y listos para su análisis.
Consideraciones
Consumo de recursos: Dado que las transformaciones se realizan al insertar datos, es importante monitorear el impacto en el rendimiento, especialmente en cargas masivas.
Complejidad de la lógica: Update policies demasiado complejas pueden ralentizar la inserción de datos; conviene mantenerlas lo más eficientes posible.
Dependencia de la tabla origen: Cambios en el esquema de la tabla origen pueden afectar la update policy y requerir ajustes.
Referencias
Subscribe to my newsletter
Read articles from Kilian Baccaro Salinas directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
