Compartir vía


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.

    1. En Synapse Studio, en el panel izquierdo, seleccione Datos.

    2. 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.
    3. 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

    1. En Synapse Studio, en el panel izquierdo, seleccione Desarrollar.

    2. En Scripts de KQL, seleccione + (Agregar un recurso nuevo) >Script de KQL. En el panel derecho, puede asignar un nombre al script.

    3. En el menú Conectarse a, seleccione contosodataexplorer.

    4. En el menú Use database (Usar base de datos), seleccione TestDatabase.

    5. 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.

    6. 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.

  1. 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.

    Botón para implementar la plantilla de Resource Manager en Azure.

    El botón Deploy to Azure (Implementar en Azure) le lleva a Azure Portal.

  2. Seleccione la suscripción en la que desea crear el centro de eventos y cree un grupo de recursos denominado test-hub-rg.

    Crear un grupo de recursos

  3. 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.
  4. Seleccione Revisar + crear.

  5. Revise el resumen de los recursos creados. Seleccione Crear, opción que permite confirmar que está creando recursos en su suscripción.

    Captura de pantalla de Azure Portal para revisar y crear un espacio de nombres de Event Hubs, Event Hubs y un grupo de consumidores.

  6. 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.

    Icono de notificaciones

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.

    Captura de pantalla de la página de redes de Event Hubs, en la que se muestra la selección de permitir el acceso a todas las redes.

  • 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.

    Captura de pantalla de la página de redes de Event Hubs, en la que se muestra la selección de permitir el acceso a servicios de confianza.

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.

  1. Seleccione Notificaciones en la barra de herramientas para comprobar que la implementación de Event Hubs se realizó correctamente.

  2. En el grupo del Explorador de datos que creó, seleccione Bases de datos>TestDatabase.

    Captura de pantalla del grupo de bases de datos de prueba, que muestra la selección de la base de datos de prueba.

  3. Seleccione Conexiones de datos y Agregar la conexión de datos.

    Seleccione Ingesta 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.

Captura de pantalla del panel de conexión de datos en Event Hubs.

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.

  1. Rellene la siguiente configuración de enrutamiento:

    Configuración de enrutamiento predeterminada para la ingesta de datos en Event Hubs: Azure Synapse Data Explorer.

    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.
  2. 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.

  1. En el espacio de nombres de Event Hubs que creó, seleccione Directivas de acceso compartido y, a continuación, RootManageSharedAccessKey.

    Directivas de acceso compartido

  2. Copie Cadena de conexión: clave principal. Péguelo en la sección siguiente.

    Cadena de conexión.

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:

  1. Abra la aplicación de ejemplo en Visual Studio.

  2. En el archivo program.cs, actualice la constante eventHubName al nombre de Event Hubs y actualice la constante connectionString 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>";
    
  3. Compile y ejecute la aplicación. La aplicación envía mensajes a Event Hubs e imprime su estado cada 10 segundos.

  4. 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.

  1. En Azure Portal, en Event Hubs, verá el pico de actividad mientras se ejecuta la aplicación.

    Gráfico del centro de eventos.

  2. 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
    
  3. 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:

    Conjunto de resultados de mensajes.

    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.

  1. 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 botón Expandir para expandirlo.

    Selección del grupo de recursos que se eliminará.

  2. En test-resource-group, seleccione Eliminar grupo de recursos.

  3. En la nueva ventana, escriba el nombre del grupo de recursos que quiere eliminar (test-hub-rg) y seleccione Eliminar.

Pasos siguientes