Compartir a través de


tutorial de Real-Time Intelligence, parte 4: Transformación de datos en una base de datos KQL

Nota:

Este tutorial forma parte de una serie. Para la sección anterior, consulte: Tutorial de Inteligencia en Tiempo Real, parte 3: Establecimiento de una alerta en el flujo de eventos.

En esta parte del tutorial, se transforman los datos en una base de datos KQL mediante una directiva de actualización para desencadenar un mecanismo automatizado cuando se escriben nuevos datos en una tabla. La directiva elimina la necesidad de orquestación especial mediante la ejecución de una consulta para transformar los datos ingeridos y guardar el resultado en una tabla de destino.

Se pueden definir varias directivas de actualización en una sola tabla, lo que permite diferentes transformaciones y guardar datos en varias tablas simultáneamente. Las tablas de destino pueden tener un esquema, una directiva de retención y otras directivas diferentes respecto a la tabla de origen.

Mover la tabla de datos sin procesar a una carpeta Bronze

En este paso, moverá la tabla de datos sin procesar a una carpeta "Bronze" para organizar los datos en la base de datos KQL.

  1. Dirígete al entorno de trabajo donde creaste los recursos.

  2. Seleccione la base de datos KQL Tutorial que usted creó anteriormente.

  3. En el árbol de objetos, en el nombre de la base de datos KQL, seleccione el área de trabajo de consulta denominada Tutorial_queryset.

    Captura de pantalla de la selección de **Tutorial_queryset** en el árbol de elementos de base de datos.

  4. Copie y pegue el siguiente comando en el editor de consultas para mover la tabla RawData a una carpeta Bronze. Ejecute la consulta seleccionando el botón Ejecutar en la cinta de menús o presionando Mayús + Entrar.

    .alter table RawData (BikepointID:string,Street:string,Neighbourhood:string,Latitude:real,Longitude:real,No_Bikes:long,No_Empty_Docks:long,Timestamp:datetime) with (folder="Bronze")
    

    Verá una nueva carpeta denominada Bronze que contiene una tabla denominada RawData en el nodo Tablas del árbol de objetos.

    Captura de pantalla de la subcarpeta Bronze que contiene la tabla RawData.

Creación de una tabla de destino

En este paso, creará una tabla de destino que se usa para almacenar los datos transformados por la directiva de actualización.

  1. En una nueva línea, con al menos una línea entre el cursor y la última consulta, copie y pegue el siguiente comando para crear una nueva tabla denominada TransformedData con un esquema especificado.

    .create table TransformedData (BikepointID: int, Street: string, Neighbourhood: string, Latitude: real, Longitude: real, No_Bikes: long, No_Empty_Docks: long, Timestamp: datetime, BikesToBeFilled: long, Action: string) with (folder="Silver")
    
  2. Ejecute el comando para crear la tabla.

    Verá una nueva carpeta denominada Silver que contiene una tabla denominada TransformedData en el nodo Tablas del árbol de objetos.

    Captura de pantalla de la subcarpeta Silver que contiene la tabla TransformedData.

Creación de una función con lógica de transformación

En este paso, creará una función almacenada que contiene la lógica de transformación que se usará en la directiva de actualización. La función analiza la columna BikepointID y agrega dos nuevas columnas calculadas.

  1. En la cinta de menús, seleccione Base de datos.

  2. Seleccione + Nueva>Función.

  3. Edite la función para que coincida con el código siguiente, o copie y pegue el comando siguiente en el editor de consultas.

    .create-or-alter function TransformRawData() {
    RawData
    | parse BikepointID with * "BikePoints_" BikepointID:int
    | extend BikesToBeFilled = No_Empty_Docks - No_Bikes
    | extend Action = iff(BikesToBeFilled > 0, tostring(BikesToBeFilled), "NA")
     }
    
  4. Ejecute el comando para crear la función.

    Verá la función TransformRawData en el nodo Functions del árbol de objetos.

    Captura de pantalla de la carpeta Functions que contiene la función TransformedData.

Aplicación de una directiva de actualización

En este paso, aplicará una directiva de actualización a la tabla de destino para transformar los datos. La directiva de actualización usa la función almacenada TransformRawData() para analizar la columna BikepointID y agrega dos nuevas columnas calculadas.

  1. En la cinta de menús, seleccione Base de datos.

  2. Seleccione + Nueva>política de actualización de tabla.

  3. Edite la directiva para que coincida con el código siguiente o copie o pegue el comando siguiente en el editor de consultas.

     .alter table TransformedData policy update
     ```[{
         "IsEnabled": true,
         "Source": "RawData",
         "Query": "TransformRawData()",
         "IsTransactional": false,
         "PropagateIngestionProperties": false
     }]```
    
  4. Ejecute el comando para crear la directiva de actualización.

Comprobación de la transformación

En este paso, compruebe que la transformación se realiza correctamente comparando la salida de las tablas de origen y de destino.

Nota:

Es posible que tarde unos segundos en ver los datos de la tabla transformada.

  1. Copie y pegue la consulta siguiente en el editor de consultas para ver 10 registros arbitrarios en la tabla de origen. Ejecuta la consulta.

    RawData
    | take 10
    
  2. Copie y pegue la consulta siguiente en el editor de consultas para ver 10 registros arbitrarios en la tabla de destino. Ejecuta la consulta.

    TransformedData
    | take 10
    

Observe que la columna BikepointID de la tabla de destino ya no contiene el prefijo "BikePoints_".

Para obtener más información sobre las tareas de este tutorial, consulte:

Paso siguiente