Compartir a través de


Ingesta de datos del centro de eventos 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, se conectará a él desde el Explorador de datos de Azure Synapse y verá el flujo de datos a través del sistema.

Prerrequisitos

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

    Button to deploy the Resource Manager template to 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.

    Create a resource group

  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 quiere usar para el centro de eventos.
    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 del centro de eventos en la misma ubicación que el clúster del Explorador de datos de Azure Synapse para mejorar el rendimiento (más importante para espacios de nombres de centro de eventos con 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 del centro de eventos test-hub El centro de eventos se encuentra bajo el espacio de nombres, que proporciona un contenedor de ámbito único. El nombre del centro de eventos tiene que 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.

    Screen shot of Azure portal for reviewing and creating Event Hub namespace, Event Hub, and consumer group.

  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.

    Notifications icon

Consideraciones de autenticación

En función del tipo de identidad que use para autenticarse con el centro de eventos, puede que necesite algunas configuraciones adicionales.

  • Si se autentica con el centro de eventos mediante una identidad administrada asignada por el usuario, vaya al centro de eventos >Redes y, en Permitir acceso desde, seleccione Todas las redes y guarde los cambios.

    Screenshot of the Event Hub networking page, showing the selection of allowing access to all networks.

  • Si se autentica con el centro de eventos mediante una identidad administrada asignada por el sistema, vaya al centro de eventos >Redes. Allí, permita el acceso desde todas las redes o bien, en Permitir acceso desde, elija Redes seleccionadas, seleccione Permitir que los servicios de confianza de Microsoft puedan omitir este firewall y guarde los cambios.

    Screenshot of the Event Hub networking page, showing the selection of allowing access to trusted services.

Conexión a Event Hubs

Ahora se conectará al centro de eventos desde el grupo del Explorador de datos. Cuando se efectúa esta conexión, los datos que fluyen al centro de eventos se transmiten 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 del centro de eventos se ha realizado correctamente.

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

    Select test database.

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

    Select data ingestion and Add data connection.

Creación de una conexión de datos (versión preliminar)

Rellene el formulario con la siguiente información y, después, seleccione Crear.

Data connection pane Event Hub - Azure Synapse Data Explorer.

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.
Suscripción Identificador de la suscripción donde se encuentra el recurso del centro de eventos. Este campo se rellena automáticamente.
Espacio de nombres del centro de eventos Nombre único del espacio de nombres Nombre elegido anteriormente que identifica el espacio de nombres.
Centro de eventos test-hub El centro de eventos que ha creado.
Grupo de consumidores test-group Grupo de consumidores definido en el centro de eventos que creó.
Propiedades del sistema de eventos Seleccione las propiedades pertinentes. Propiedades del sistema del centro de eventos. 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 del centro de eventos. 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 el acceso de lectura del centro de eventos.

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 del centro de eventos 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:

    Default routing settings for ingesting data to Event Hub - 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 que se enumera en los requisitos previos, necesitará la cadena de conexión para el espacio de nombres del centro de eventos.

  1. En el espacio de nombres del centro de eventos que creó, seleccione Directivas de acceso compartido y RootManageSharedAccessKey.

    Shared access policies.

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

    Connection string.

Generación de datos de ejemplo

Use la aplicación de ejemplo que descargó para generar datos.

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

  2. En el archivo program.cs, actualice la constante eventHubName al nombre del centro de eventos y actualice la constante connectionString a la cadena de conexión que copió desde el espacio de nombres del centro de eventos.

    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 al centro de eventos e imprime su estado cada 10 segundos.

  4. Cuando la aplicación haya enviado algunos mensajes, vaya al paso siguiente: revisión del flujo de datos en la tabla de prueba y el centro de eventos.

Revisión del flujo de datos

Con la aplicación de generación de datos, ahora puede ver el flujo de datos desde el centro de eventos a la tabla del clúster.

  1. En Azure Portal, en el centro de eventos, verá el pico de actividad cuando la aplicación se está ejecutando.

    Event Hub graph.

  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:

    Message result set.

    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 piensa volver a usar el centro de eventos, 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 Expand button. para expandirlo.

    Select resource group to delete.

  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