Obtener datos de Azure Event Hubs

Con este artículo, aprenderá a obtener datos de Event Hubs en la base de datos de KQL en Microsoft Fabric. Azure Event Hubs es una plataforma de streaming de macrodatos y un servicio de ingesta de eventos que puede procesar y enrutar millones de eventos por segundo.

Para transmitir datos de Event Hubs a Análisis en tiempo real, siga dos pasos principales. El primer paso se realiza en el Azure Portal, donde se define la directiva de acceso compartido en la instancia del centro de eventos y se capturan los detalles necesarios para conectarse posteriormente a través de esta directiva.

El segundo paso tiene lugar en Real-Time Analytics en Fabric, donde se conecta una base de datos KQL al centro de eventos y se configura el esquema para los datos entrantes. En este paso se crean dos conexiones. La primera conexión, denominada "conexión en la nube", conecta Microsoft Fabric a la instancia del centro de eventos. La segunda conexión conecta la "conexión en la nube" a la base de datos de KQL. Una vez que haya terminado de configurar los datos y el esquema del evento, los datos transmitidos están disponibles para realizar consultas mediante un conjunto de consultas KQL.

Requisitos previos

Advertencia

El centro de eventos no puede estar detrás de un firewall.

Establecimiento de una directiva de acceso compartido en el centro de eventos

Para poder crear una conexión a los datos de Event Hubs, debe establecer una directiva de acceso compartido (SAS) en el centro de eventos y recopilar información que se usará más adelante en la configuración de la conexión. Para obtener más información sobre cómo autorizar el acceso a los recursos de Event Hubs, consulte Firmas de acceso compartido.

  1. En el Azure Portal, vaya a la instancia de Event Hubs que desea conectar.

  2. En Configuración, seleccione Directivas de acceso compartido.

  3. Seleccione +Agregar para agregar una nueva directiva de SAS o seleccione una directiva existente con permisos para administrar.

    Screenshot of creating an SAS policy in the Azure portal.

  4. Escribir un nombre de directiva.

  5. Seleccione Administrar y, a continuación, Crear.

Recopilación de información para la conexión en la nube

En el panel directiva de SAS, tome nota de los cuatro campos siguientes. Es posible que quiera copiar estos campos y pegarlos en algún lugar, como un Bloc de notas, para usarlos en un paso posterior.

Screenshot showing how to fill out connection with data from Azure portal.

Referencia de campo Campo Description Ejemplo
a Instancia de Event Hubs El nombre de la instancia del centro de eventos. iotdata
b Directiva SAS El nombre de la directiva de SAS creado en el paso anterior DocsTest
c Clave principal La clave asociada a la directiva de SAS En este ejemplo, comienza con PGGIISb009...
d Cadena de conexión: clave principal En este campo solo desea copiar el espacio de nombres del centro de eventos, que se puede encontrar como parte de la cadena de conexión. eventhubpm15910.servicebus.windows.net

Origen

  1. En la cinta inferior de la base de datos KQL, seleccione Obtener datos.

    En la ventana Obtener datos, se selecciona la pestaña Origen.

  2. Seleccione el origen de datos de la lista disponible. En este ejemplo, va a ingerir datos de Event Hubs.

    Screenshot of get data window with source tab selected.

Configurar

  1. Seleccione una tabla de destino. Si desea ingerir datos en una nueva tabla, seleccione + Nueva tabla y escriba un nombre de tabla.

    Nota:

    Los nombres de tabla pueden tener hasta 1024 caracteres, entre los que se incluyen espacios, alfanuméricos, guiones y caracteres de subrayado. No se admiten caracteres especiales.

  2. Seleccione Crear nueva conexión o seleccione Conexión existente y vaya al paso siguiente.

Crear una nueva conexión

  1. Complete la configuración de conexión según la tabla siguiente:

    Screenshot of source tab.

    Configuración Descripción Valor de ejemplo
    Espacio de nombres del centro de eventos Campo d de la tabla anterior. eventhubpm15910.servicebus.windows.net
    Centro de eventos Campo a de la tabla anterior. El nombre de la instancia del centro de eventos. iotdata
    Conexión Para usar una conexión en la nube existente entre Fabric y Event Hubs, seleccione el nombre de esta conexión. En caso contrario, seleccione Crear una nueva conexión. Crear una nueva conexión
    Nombre de conexión El nombre de la nueva conexión en la nube. Este nombre se genera automáticamente, pero se puede sobrescribir. Debe ser único dentro del inquilino de Fabric. Connection
    Tipo de autenticación Se rellena automáticamente. Actualmente solo se admite la clave de acceso compartido. Clave de acceso compartido
    Nombre de la clave de acceso compartido Campo b de la tabla anterior. Nombre que asignó a la directiva de acceso compartido. DocsTest
    Clave de acceso compartido Campo c de la tabla anterior. Clave principal de la directiva SAS.
  2. Seleccione Guardar. Se crea una nueva conexión de datos en la nube entre Fabric y Event Hubs.

Conexión de la conexión en la nube a la base de datos de KQL

Tanto si ha creado una nueva conexión en la nube como si usa una existente, debe definir el grupo de consumidores. Opcionalmente, puede establecer parámetros que definan aún más aspectos de la conexión entre la base de datos KQL y la conexión en la nube.

  1. Rellene los campos siguientes según la tabla:

    Screenshot of creating database connection.

    Configuración Descripción Valor de ejemplo
    Grupo de consumidores Grupo de consumidores relevantes definido en el centro de eventos. Para obtener más información, consulte los grupo de consumidores. Después de agregar un nuevo grupo de consumidores, deberá seleccionar este grupo en la lista desplegable. NewConsumer
    Más parámetros
    Compresión Compresión de datos de los eventos, como procede del centro de eventos. Las opciones son None (valor predeterminado) o compresión Gzip. Ninguna
    Propiedades del sistema de eventos Para más información, consulte las propiedades del sistema del centro de eventos. Si hay varios registros por cada mensaje de evento, las propiedades del sistema se agregan al primero de ellos. Consulte las propiedades del sistema de eventos.
    Fecha de inicio de recuperación de eventos La conexión de datos recupera los eventos existentes del centro de eventos creados desde la fecha de inicio de la recuperación de eventos. Solo puede recuperar eventos retenidos por el centro de eventos, en función de su período de retención. La zona horaria es UTC. Si no se especifica ninguna hora, la hora predeterminada es la hora en la que se crea la conexión de datos.
  2. Seleccione Siguiente para continuar a la pestaña Inspeccionar.

Propiedades del sistema de eventos

Las propiedades del sistema almacenan las propiedades establecidas por el servicio Event Hubs en el momento en el que se pone en cola el evento. La conexión de datos al centro de eventos puede insertar un conjunto seleccionado de propiedades del sistema en los datos ingeridos en una tabla basada en una asignación determinada.

Propiedad Tipo de datos Descripción
x-opt-enqueued-time datetime Hora UTC en la que se puso en cola el evento.
x-opt-sequence-number long Número de secuencia lógica del evento en el flujo de partición del centro de eventos.
x-opt-offset string Desplazamiento del evento en relación con el flujo de partición del centro de eventos. El identificador de desplazamiento es único dentro de una partición del flujo del centro de eventos.
x-opt-publisher cadena Nombre del publicador, si el mensaje se envió a un punto de conexión del publicador.
x-opt-partition-key cadena Clave de partición de la partición correspondiente que almacenó el evento.

Inspeccionar

Para completar el proceso de ingesta, seleccione Finalizar.

Screenshot of the inspect tab.

Opcionalmente:

  • Seleccione Visor de comandos para ver y copiar los comandos automáticos generados a partir de los valores que haya introducido.

  • Cambie el formato de datos inferido automáticamente seleccionando el formato deseado en la lista desplegable. Los datos se leen desde el centro de eventos en forma de objetos EventData. Los formatos admitidos son CSV, JSON, PSV, SCsv, SOHsv, TSV, TXT y TSVE.

  • Editar columnas.

  • Explore las Opciones avanzadas basadas en el tipo de datos.

  • Si los datos que ve en la ventana de vista previa no están completos, puede que necesite más datos para crear una tabla con todos los campos de datos necesarios. Use los siguientes comandos para capturar datos nuevos desde el centro de eventos:

    • Discard and fetch new data (Descartar y capturar datos nuevos): descarta los datos presentados y busca nuevos eventos.
    • Fetch more data (Capturar más datos): busca más eventos además de los eventos ya encontrados.

Editar columnas

Nota:

  • En el caso de formatos tabulares (CSV, TSV, PSV), no se puede asignar una columna dos veces. Para asignar a una columna existente, elimine primero la nueva columna.
  • No se puede cambiar un tipo de columna existente. Si intenta asignar a una columna con un formato diferente, puede acabar con columnas vacías.

Los cambios que pueda realizar a una tabla dependerán de los siguientes parámetros:

  • El tipo de tabla es nuevo o existente
  • El tipo de asignación es nuevo o existente
Tipo de tabla. Tipo de asignación Ajustes disponibles
Tabla nueva Asignación nueva Cambio del nombre de columna, cambio del tipo de datos, cambio del origen de datos, la asignación de transformaciones, adición de columna, eliminación de columna
Tabla existente Asignación nueva Adición de columna (en la que puede cambiar el tipo de datos, cambiar el nombre y actualizar)
Tabla existente Asignación existente None

Screenshot of columns open for editing.

Asignación de transformaciones

Algunas de las asignaciones de formato de datos (Parquet, JSON y Avro) admiten transformaciones sencillas en el momento de la ingesta. Para aplicar la asignación de transformaciones, cree o actualice una columna en la ventana Editar columnas.

La asignación de transformaciones se puede realizar en una columna de tipo string o datetime y un origen con un tipo de datos int o long. Las asignaciones de transformaciones que se admiten son:

  • DateTimeFromUnixSeconds
  • DateTimeFromUnixMilliseconds
  • DateTimeFromUnixMicroseconds
  • DateTimeFromUnixNanoseconds

Asignación de esquemas para archivos Avro de Event Hubs Capture

Una manera de consumir datos del centro de eventos es capturar eventos a través de Azure Event Hubs en Azure Blob Storage o Azure Data Lake Storage. A continuación, puede ingerir los archivos de captura a medida que se escriben mediante una conexión de datos de Event Grid.

El esquema de los archivos de captura es diferente del esquema del evento original enviado a Event Hubs. Debe diseñar el esquema de la tabla de destino con esta diferencia en mente. En concreto, la carga del evento se representa en el archivo de captura como una matriz de bytes y esta matriz no se descodifica automáticamente mediante la conexión de datos entre Event Grid y Azure Data Explorer. Para obtener información más específica sobre el esquema de archivo de los datos de captura de Avro de Event Hubs, consulte Exploración de archivos Avro capturados en Azure Event Hubs.

Para descodificar correctamente la carga del evento:

  1. Asigne el campo Body del evento capturado a una columna de tipo dynamic en la tabla de destino.
  2. Aplique una directiva de actualización que convierta la matriz de bytes en una cadena legible mediante la función unicode_codepoints_to_string().

Opciones avanzadas basadas en el tipo de datos

Tabular (CSV, TSV, PSV):

  • Si va a ingerir formatos tabulares en una tabla existente, puede seleccionar Opciones avanzadas>Mantener esquema de tabla. Los datos tabulares no incluyen necesariamente los nombres de columna que se usan para asignar datos de origen a las columnas existentes. Cuando se activa esta opción, la asignación se realiza por orden y el esquema de tabla es el mismo. Si esta opción está desactivada, se crean nuevas columnas para los datos entrantes, independientemente de la estructura de datos.

  • Para usar la primera fila como nombres de columna, seleccione Opciones avanzadas>La primera fila es el encabezado de la columna.

    Screenshot of advanced CSV options.

JSON:

  • Para determinar la división de columnas de datos JSON, seleccione Opciones avanzadas>Niveles anidados, de 1 a 100.

  • Si selecciona Opciones avanzadas>Omitir líneas JSON con errores, los datos se ingieren en formato JSON. Si no selecciona esta casilla, los datos se ingieren en formato de JSON múltiple.

    Screenshot of advanced JSON options.

Resumen

En la ventana Preparación de datos, los tres pasos se marcan con marcas de verificación verdes cuando la ingesta de datos se haya completado correctamente. Puede seleccionar una tarjeta a la que consultar, quitar los datos ingeridos o ver un panel del resumen de ingesta.

Screenshot of summary page with successful ingestion completed.