Ingesta de datos de Event Hubs en el Explorador de datos de Azure Synapse
Azure Synapse Data Explorer es un servicio de exploración de datos rápido y altamente escalable para datos de telemetría y de registro. Azure Synapse Data Explorer permite ingerir (cargar) datos procedentes de Event Hubs, IoT Hubs y blobs escritos en contenedores de blobs.
El Explorador de datos de Azure Synapse ofrece la ingesta (carga de datos) de Event Hubs, una plataforma de streaming de macrodatos y un servicio de ingesta de eventos. Event Hubs puede procesar millones de eventos por segundo prácticamente en tiempo real. En este artículo, creará un centro de eventos, lo conectará desde el Explorador de datos de Azure Synapse y verá el flujo de datos a través del sistema.
Requisitos previos
Suscripción a Azure. Cree una cuenta de Azure gratuita.
Creación de un grupo de Data Explorer mediante Synapse Studio o Azure Portal
Cree una base de datos de Data Explorer.
En Synapse Studio, en el panel izquierdo, seleccione Datos.
Seleccione + (Agregar un recurso nuevo) >Grupo de explorador de datos, y use la siguiente información:
Configuración Valor sugerido Descripción Nombre del grupo contosodataexplorer Nombre del grupo de Data Explorer que se usará. Name TestDatabase El nombre de la base de datos debe ser único dentro del clúster. Período de retención predeterminado 365 El intervalo de tiempo (en días) para el que se garantiza que los datos se mantengan disponibles para consultarlos. El intervalo de tiempo se mide desde el momento en que se ingieren los datos. Período de caché predeterminado 31 El intervalo de tiempo (en días) durante el que los datos consultados con frecuencia se van a mantener disponibles en el almacenamiento SSD o en la RAM, en lugar de en el almacenamiento a largo plazo. Seleccione Crear para crear la base de datos. Normalmente se tarda menos de un minuto.
Creación de una tabla de destino a la que Event Hubs enviará datos
En Synapse Studio, en el panel izquierdo, seleccione Desarrollar.
En Scripts de KQL, seleccione + (Agregar un recurso nuevo) >Script de KQL. En el panel derecho, puede asignar un nombre al script.
En el menú Conectarse a, seleccione contosodataexplorer.
En el menú Use database (Usar base de datos), seleccione TestDatabase.
Pegue el siguiente comando y seleccione Ejecutar para crear la tabla.
.create table TestTable (TimeStamp: datetime, Name: string, Metric: int, Source:string)
Sugerencia
Compruebe que la tabla se creó correctamente. En el panel izquierdo, seleccione Datos, elija contosodataexplorer en el menú Más y seleccione Actualizar. En contosodataexplorer, expanda Tablas y asegúrese de que la tabla TestTable aparece en la lista.
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", "Properties": {"Path": "$.timeStamp"}},{"column":"Name", "Properties": {"Path":"$.name"}} ,{"column":"Metric", "Properties": {"Path":"$.metric"}}, {"column":"Source", "Properties": {"Path":"$.source"}}]'
Se recomienda usar una identidad administrada asignada por el usuario o una identidad administrada asignada por el sistema para la conexión de datos (opcional).
Una aplicación de ejemplo que genera los datos y los envía a un centro de eventos. Descargue la aplicación de ejemplo en el sistema.
Visual Studio de 2019 para ejecutar la aplicación de ejemplo.
Inicio de sesión en Azure Portal
Inicie sesión en Azure Portal.
Creación de un centro de eventos
Cree un centro de eventos mediante una plantilla de Azure Resource Manager en Azure Portal.
Con el fin de crear un centro de eventos, use el botón siguiente para iniciar la implementación. Haga clic con el botón derecho y seleccione Abrir en una ventana nueva para seguir el resto de los pasos de este artículo.
El botón Deploy to Azure (Implementar en Azure) le lleva a Azure Portal.
Seleccione la suscripción en la que desea crear el centro de eventos y cree un grupo de recursos denominado test-hub-rg.
Rellene el formulario con la siguiente información.
Use los valores predeterminados para cualquier configuración que no aparezca en la tabla siguiente.
Configuración Valor sugerido Descripción del campo Subscription Su suscripción Seleccione la suscripción de Azure que desea usar para Event Hubs. Resource group test-hub-rg Cree un nuevo grupo de recursos. Location Oeste de EE. UU. Seleccione Oeste de EE. UU. para este artículo. En un sistema de producción, seleccione la región que mejor se adapte a sus necesidades. Cree el espacio de nombres de Event Hubs en la misma ubicación que el clúster del Explorador de datos de Azure Synapse para obtener el mejor rendimiento (lo más importante para los espacios de nombres de Event Hubs con un alto rendimiento). Nombre del espacio de nombres Nombre único del espacio de nombres Elija un nombre único que identifique el espacio de nombres. Por ejemplo, mytestnamespace. El nombre de dominio servicebus.windows.net se anexa al nombre que proporcione. El nombre solo puede contener letras, números y guiones. El nombre debe comenzar y terminar con una letra o un número. El valor debe tener entre 6 y 50 caracteres. Nombre de la instancia de Event Hubs test-hub Event Hubs se encuentra bajo el espacio de nombres, que proporciona un contenedor de ámbito único. El nombre de Event Hubs debe ser único dentro del espacio de nombres. Nombre del grupo de consumidores test-group Los grupos de consumidores permiten consumir varias aplicaciones y que cada una tenga una vista independiente del flujo de eventos. Seleccione Revisar + crear.
Revise el resumen de los recursos creados. Seleccione Crear, opción que permite confirmar que está creando recursos en su suscripción.
Seleccione Notificaciones en la barra de herramientas para supervisar el proceso de aprovisionamiento. La implementación puede tardar varios minutos en realizarse correctamente, pero puede continuar con el siguiente paso ahora.
Consideraciones de autenticación
En función del tipo de identidad, se usa para autenticarse con Event Hubs, es posible que necesite otras configuraciones.
Si va a autenticarse con Event Hubs mediante una identidad administrada asignada por el usuario, vaya a Event Hubs >Redes y, a continuación, en Permitir acceso desde, seleccione Todas las redes y guarde los cambios.
Si va a autenticarse con Event Hubs mediante una identidad administrada asignada por el sistema, vaya a las >Redes de Event Hubs y, a continuación, permita el acceso desde todas las redes o en Permitir el acceso desde, seleccione Redes seleccionadas, seleccione Permitir que los servicios de Microsoft de confianza omitan este firewall y guarde los cambios.
Conexión a Event Hubs
Ahora se conecta a Event Hubs desde el grupo de Data Explorer. Cuando esta conexión está en vigor, los datos que fluyen a las secuencias de Event Hubs a la tabla de prueba que creó anteriormente en este artículo.
Seleccione Notificaciones en la barra de herramientas para comprobar que la implementación de Event Hubs se realizó correctamente.
En el grupo del Explorador de datos que creó, seleccione Bases de datos>TestDatabase.
Seleccione Conexiones de datos y Agregar la conexión de datos.
Creación de una conexión de datos (versión preliminar)
Rellene el formulario con la siguiente información y, después, seleccione Crear.
Configuración | Valor sugerido | Descripción del campo |
---|---|---|
Nombre de la conexión de datos | test-hub-connection | Nombre de la conexión que quiere crear en el Explorador de datos de Azure Synapse. |
Subscription | Identificador de la suscripción donde se encuentra el recurso de Event Hubs. Este campo se rellena automáticamente. | |
Espacio de nombres de Event Hubs | Nombre único del espacio de nombres | Nombre elegido anteriormente que identifica el espacio de nombres. |
Event Hubs | test-hub | Event Hubs que ha creado. |
Grupo de consumidores | test-group | El grupo de consumidores definido en Event Hubs que creó. |
Propiedades del sistema de eventos | Seleccione las propiedades pertinentes. | Las propiedades del sistema Event Hubs. Si hay varios registros por cada mensaje de evento, las propiedades del sistema se agregarán al primero de ellos. Cuando agregue las propiedades del sistema, cree o actualice el esquema de tabla y la asignación para incluir las propiedades seleccionadas. |
Compresión | None | Tipo de compresión de la carga de mensajes de Event Hubs. Tipos de compresión admitidos: Ninguno, Gzip. |
Identidad administrada | Asignada por el sistema | La identidad administrada que usa el clúster de Data Explorer para obtener acceso para leer desde Event Hubs. Nota: Cuando se crea la conexión de datos: - Las identidades asignadas por el sistema se crean automáticamente si no existen - A la identidad administrada se le asigna automáticamente el rol Receptor de datos de Azure Event Hubs y se agrega al clúster de Data Explorer. Se recomienda comprobar que el rol se asignó y que la identidad se agregó al clúster. |
Tabla de destino
Hay dos opciones para el enrutamiento de los datos ingeridos: estático y dinámico. En este artículo, usará el enrutamiento estático, en el que se especifican el nombre de la tabla, el formato de los datos y la asignación como valores predeterminados. Si el mensaje de Event Hubs incluye información de enrutamiento de datos, esta información de enrutamiento invalidará la configuración predeterminada.
Rellene la siguiente configuración de enrutamiento:
Configuración Valor sugerido Descripción del campo Nombre de la tabla TestTable La tabla 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 y W3CLOG. Asignación TestMapping Asignación que creó en TestDatabase, que asigna los datos entrantes a los nombres de columnas y tipos de datos de TestTable. Necesario para JSON, MULTILINE JSON y AVRO y opcional para otros formatos. Nota
- No es necesario especificar todos los valores de configuración de enrutamiento predeterminados. También se aceptan configuraciones parciales.
- Solamente se ingieren los eventos en cola después de crear la conexión de datos.
Seleccione Crear.
Asignación de propiedades del sistema de eventos
Nota
- Las propiedades del sistema son compatibles con los formatos
json
y tabulares (csv
,tsv
, etc.) pero no se admiten en datos comprimidos. Aunque se utilice un formato no admitido, los datos se ingerirán, pero se omitirán las propiedades. - En el caso de los datos tabulares, las propiedades del sistema solo se admiten para los mensajes de eventos de un solo registro.
- En el caso de los datos JSON, también se admiten las propiedades del sistema para los mensajes de eventos de varios registros. En tales casos, las propiedades del sistema solo se agregan al primer registro del mensaje de evento.
- En el caso de la asignación
csv
, las propiedades se agregan al principio del registro en el orden que se muestra en la tabla Propiedades del sistema. - Para la asignación
json
, las propiedades se agregan según los nombres de propiedad de la tabla Propiedades del sistema.
Si ha seleccionado Propiedades del sistema de eventos en la sección Origen de datos de la tabla, debe incluir las propiedades del sistema en el esquema de la tabla y la asignación.
Copiar la cadena de conexión
Al ejecutar la aplicación de ejemplo se muestra en Requisitos previos, necesita la cadena de conexión para el espacio de nombres de Event Hubs.
En el espacio de nombres de Event Hubs que creó, seleccione Directivas de acceso compartido y, a continuación, RootManageSharedAccessKey.
Copie Cadena de conexión: clave principal. Péguelo en la sección siguiente.
Generación de datos de ejemplo
Use la aplicación de ejemplo que descargó para generar datos.
Advertencia
En este ejemplo se usa la autenticación de cadena de conexión para conectarse a Event Hubs para simplificar el ejemplo. Sin embargo, la codificación rígida de una cadena de conexión en el script requiere un alto grado de confianza en la aplicación y conlleva riesgos de seguridad.
Para soluciones seguras a largo plazo, use una de estas opciones:
- Autenticación sin contraseñas
- Almacenar la cadena de conexión en Azure Key Vault y usar este método para recuperarla en el código.
Abra la aplicación de ejemplo en Visual Studio.
En el archivo program.cs, actualice la constante
eventHubName
al nombre de Event Hubs y actualice la constanteconnectionString
a la cadena de conexión que copió del espacio de nombres de Event Hubs.const string eventHubName = "test-hub"; // Copy the connection string ("Connection string-primary key") from your Event Hub namespace. const string connectionString = @"<YourConnectionString>";
Compile y ejecute la aplicación. La aplicación envía mensajes a Event Hubs e imprime su estado cada 10 segundos.
Una vez que la aplicación haya enviado algunos mensajes, continúe con el paso siguiente: revisar el flujo de datos en Event Hubs y la tabla de prueba.
Revisión del flujo de datos
Con la aplicación que genera datos, ahora puede ver el flujo de esos datos desde Event Hubs a la tabla del clúster.
En Azure Portal, en Event Hubs, verá el pico de actividad mientras se ejecuta la aplicación.
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 | count
Para ver el contenido de los mensajes, ejecute la siguiente consulta:
TestTable
El conjunto de resultados debe tener un aspecto similar al de la siguiente imagen:
Nota
- El Explorador de datos de Azure Synapse tiene una directiva de agregación (procesamiento por lotes) para la ingesta de datos diseñada para optimizar dicho proceso. La directiva de procesamiento por lotes predeterminada está configurada para sellar un lote tan pronto como se cumpla una de las siguientes condiciones en el lote: un tiempo de retraso máximo de 5 minutos, un tamaño total de 1 G o 1000 blobs. Por lo tanto, puede experimentar una latencia. Para obtener más información, consulte la directiva de procesamiento por lotes.
- La ingesta de datos del centro de eventos incluye el tiempo de respuesta del centro de eventos de 10 segundos o 1 MB.
- Para reducir el retraso en el tiempo de respuesta, configure la tabla para que admita el streaming. Consulte la directiva de streaming.
Limpieza de recursos
Si no tiene previsto volver a usar Event Hubs, limpie test-hub-rg, para evitar incurrir en costos.
En Azure Portal, seleccione Grupos de recursos en el extremo izquierdo y luego seleccione el grupo de recursos que creó.
Si el menú de la izquierda está contraído, seleccione el para expandirlo.
En test-resource-group, seleccione Eliminar grupo de recursos.
En la nueva ventana, escriba el nombre del grupo de recursos que quiere eliminar (test-hub-rg) y seleccione Eliminar.