Ingesta de blobs en Azure Data Explorer mediante la suscripción a las notificaciones de Event Grid
El Explorador de datos de Azure es un servicio de exploración de datos altamente escalable y rápido para datos de telemetría y registro. Azure Data Explorer permite ingerir (cargar) datos procedentes de Event Hubs, IoT Hubs y blobs escritos en contenedores de blobs.
En este artículo, aprenderá a ingerir blobs desde la cuenta de almacenamiento en Azure Data Explorer mediante una conexión de datos de Event Grid. Creará una conexión de datos de Event Grid que establece una suscripción de Azure Event Grid. La suscripción de Event Grid enruta los eventos desde la cuenta de almacenamiento a Azure Data Explorer mediante Azure Event Hubs. A continuación, puede ver un ejemplo del flujo de datos a lo largo de todo el sistema.
Para información general sobre la ingesta en Azure Data Explorer desde Event Grid, consulte Conexión a Event Grid. Para crear los recursos de forma manual en Azure Portal, consulte Creación manual de recursos para la ingesta de Event Grid.
Prerrequisitos
- Suscripción a Azure. Cree una cuenta de Azure gratuita.
- Cree un clúster y una base de datos.
- Cree una cuenta de almacenamiento.
- La suscripción de notificación de Event Grid se puede establecer en cuentas de Azure Storage para
BlobStorage,StorageV2oBlobStorage.
Creación de una tabla de destino en el Explorador de datos de Azure
Cree una tabla en Azure Data Explorer a la que Event Hubs enviará los datos. Cree la tabla en el clúster y la base de datos preparados en los requisitos previos.
En Azure Portal, bajo el clúster, seleccione Consulta.
Copie el siguiente comando en la ventana y seleccione Ejecutar para crear la tabla (TestTable) que recibirá los datos ingeridos.
.create table TestTable (TimeStamp: datetime, Value: string, Source:string)
Copie el siguiente comando en la ventana y seleccione Ejecutar para asignar los datos JSON entrantes a los tipos de datos y los nombres de columna de la tabla (TestTable).
.create table TestTable ingestion json mapping 'TestMapping' '[{"column":"TimeStamp","path":"$.TimeStamp"},{"column":"Value","path":"$.Value"},{"column":"Source","path":"$.Source"}]'
Creación de una conexión de datos de Event Grid
Ahora, conecte la cuenta de almacenamiento a Azure Data Explorer para que los datos que fluyen hacia el almacenamiento se transmitan también a la tabla de prueba. Esta conexión se puede crear en Azure Portal en la propia cuenta de almacenamiento, o bien en Azure Data Explorer.
Vaya a la cuenta de almacenamiento en Azure Portal. En el menú de la izquierda, seleccione Eventos
En el panel principal, seleccione la pestaña Azure Data Explorer.
Se abre el panel Conexión de datos con la pestaña Aspectos básicos seleccionada.
Conexión de datos: pestaña Aspectos básicos
Rellene el formulario con la siguiente información:
Configuración Valor sugerido Descripción del campo Nombre de la conexión de datos test-grid-connection Nombre de la conexión que desea crear en Azure Data Explorer. Cuenta de almacenamiento gridteststorage1 La cuenta de almacenamiento desde la que ha accedido a este asistente. Se rellena automáticamente. Tipo de evento Blob creado o Blob con el nombre cambiado Tipo de evento que desencadena la ingesta. El evento Blob con el nombre cambiado solo se admite para el almacenamiento de ADLSv2. Estos son los tipos que se admiten: Microsoft.Storage.BlobCreated o Microsoft.Storage.BlobRenamed. Creación de recursos Automático Defina si desea que Azure Data Explorer cree una suscripción de Event Grid, un espacio de nombres de un centro de eventos y un centro de eventos automáticamente. Para crear los recursos de forma manual, consulte Creación manual de recursos para la ingesta de Event Grid. Seleccione Next Ingestion properties (Propiedades de ingesta siguiente).
Conexión de datos: pestaña Ingestion properties (Propiedades de la ingesta)
Rellene el formulario con la siguiente información. Los nombres de tabla y de asignación distinguen mayúsculas de minúsculas:
Configuración Valor sugerido Descripción del campo Suscripción La suscripción de Azure Data Explorer. Cluster Name TestCluster Nombre del clúster en que desea ingerir datos. Nombre de la base de datos TestDatabase Base de datos de destino que creó en TestCluster. Nombre de la tabla TestTable Tabla de destino que creó en TestDatabase. Formato de datos JSON Los formatos admitidos son Avro, CSV, JSON, MULTILINE JSON, ORC, PARQUET, PSV, SCSV, SOHSV, TSV, TXT, TSVE, APACHEAVRO, RAW y W3CLOG. Las opciones de compresión admitidas son Zip y Gzip. Asignación TestMapping La asignación que creó en TestDatabase, que asigna los datos JSON entrantes a los nombres de columnas y tipos de datos de TestTable. Configuración avanzada Mis datos tienen encabezados Ignora los encabezados. Se admite para archivos de tipo *SV. Nota
No es necesario especificar todos los valores de configuración de enrutamiento predeterminados. También se aceptan configuraciones parciales.
Seleccione Siguiente: Revisar y crear.
Conexión de datos: pestaña Revisar y crear
Revise los recursos que se crearon automáticamente y seleccione Crear.
Implementación
Espere hasta que se complete la implementación. Si se produce un error en la implementación, seleccione Detalles de la operación junto a la fase con errores para más información sobre el motivo del error. Seleccione Volver a implementar para intentar implementar los recursos de nuevo. Puede modificar los parámetros antes de la implementación.
Generación de datos de ejemplo
Ahora que Azure Data Explorer y la cuenta de almacenamiento están conectados, puede crear datos de ejemplo.
Carga de un blob en el contenedor de almacenamiento
Vamos a trabajar con un pequeño script de shell que emite algunos comandos básicos de la CLI de Azure para interactuar con recursos de Azure Storage. El script hace las siguientes acciones:
- Crea un contenedor nuevo en su cuenta de almacenamiento.
- Carga un archivo existente (en forma de blob) en ese contenedor.
- Enumera los blobs del contenedor.
Puede usar Azure Cloud Shell para ejecutar el script directamente en el portal.
Guarde los datos en un archivo y cárguelo con este script:
{"TimeStamp": "1987-11-16 12:00","Value": "Hello World","Source": "TestSource"}
#!/bin/bash
### A simple Azure Storage example script
export AZURE_STORAGE_ACCOUNT=<storage_account_name>
export AZURE_STORAGE_KEY=<storage_account_key>
export container_name=<container_name>
export blob_name=<blob_name>
export file_to_upload=<file_to_upload>
export destination_file=<destination_file>
echo "Creating the container..."
az storage container create --name $container_name
echo "Uploading the file..."
az storage blob upload --container-name $container_name --file $file_to_upload --name $blob_name --metadata "rawSizeBytes=1024"
echo "Listing the blobs..."
az storage blob list --container-name $container_name --output table
echo "Done"
Nota
Para lograr el mejor rendimiento de la ingesta, se deben comunicar los tamaño sin comprimir de los blobs comprimidos enviados para la ingesta. Dado que las notificaciones de Event Grid solo contienen detalles básicos, debe comunicarse explícitamente la información de tamaño. La información de tamaño sin comprimir se puede proporcionar estableciendo la propiedad en los rawSizeBytes metadatos del blob con el rawSizeBytes comprimir en bytes.
Cambio del nombre del blob
Si va a ingerir datos desde el almacenamiento de ADLSv2 y ha definido Blob renamed (Blob con nombre cambiado) como tipo de evento para la conexión de datos, el desencadenador para la ingesta de blobs es el cambio de nombre del blob. Para cambiar el nombre de un blob, vaya al blob en Azure Portal, haga clic con el botón derecho en el blob y seleccione Cambiar nombre:
Propiedades de la ingesta
Puede especificar las propiedades de la ingesta de blobs mediante los metadatos del blob.
Nota
Azure Data Explorer no eliminará los blobs con posterioridad a la ingesta. Conserve los blobs de tres a cinco días. Use Administración del ciclo de vida de Azure Blob Storage para administrar la eliminación de blobs.
Revisión del flujo de datos
Nota
Azure Data Explorer tiene una directiva de agregación (procesamiento por lotes) para la ingesta de datos diseñada para optimizar dicho proceso. De forma predeterminada, la directiva se configura en 5 minutos. Si es necesario, podrá modificar la directiva más adelante. En este artículo puede esperar una latencia de unos minutos.
En Azure Portal, en la cuadrícula de eventos, verá el pico de actividad cuando la aplicación se está ejecutando.
Ejecute la siguiente consulta en la base de datos de prueba para comprobar cuántos mensajes se han enviado a la base de datos hasta el momento.
TestTable | countPara ver el contenido de los mensajes, ejecute la siguiente consulta en la base de datos de prueba.
TestTableEl conjunto de resultados debe tener un aspecto similar al de la siguiente imagen:
Limpieza de recursos
Si no planea usar volver a usar Event Grid, elimine la suscripción de Event Grid, el espacio de nombres de Event Hubs y Event Hubs, que se crearon automáticamente, con el fin de no incurrir en costos no deseados.
En Azure Portal, vaya al menú de la izquierda y seleccione Todos los recursos.
Busque el espacio de nombres de Event Hubs y seleccione Eliminar para eliminarlo:
En el formulario Eliminar recursos, confirme la eliminación del espacio de nombres y los recursos de Event Hubs.
Vaya a la cuenta de almacenamiento. En el menú de la izquierda, seleccione Eventos:
Debajo del gráfico, seleccione la suscripción de Event Grid y, a continuación, seleccione Eliminar para eliminarla:
Para eliminar la conexión de datos de Event Grid, vaya al clúster de Azure Data Explorer. En el menú de la izquierda, seleccione Bases de datos.
Seleccione la base de datos TestDatabase:
En el menú izquierdo, seleccione Ingesta de datos:
Seleccione la conexión de datos test-grid-connection y, a continuación, seleccione Eliminar para eliminarla.





