Ingesta de datos del centro de eventos a Azure Data ExplorerIngest data from Event Hub into Azure Data Explorer

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 is a fast and highly scalable data exploration service for log and telemetry data. El Explorador de datos de Azure ofrece ingesta (carga de datos) de Event Hubs, una plataforma de streaming de macrodatos y un servicio de ingesta de eventos.Azure Data Explorer offers ingestion (data loading) from Event Hubs, a big data streaming platform and event ingestion service. Event Hubs puede procesar millones de eventos por segundo prácticamente en tiempo real.Event Hubs can process millions of events per second in near real-time. En este artículo, cree un centro de eventos, conéctese a ella desde el Explorador de datos de Azure y vea el flujo de datos a través del sistema.In this article, you create an event hub, connect to it from Azure Data Explorer and see data flow through the system.

Requisitos previosPrerequisites

Inicio de sesión en Azure PortalSign in to the Azure portal

Inicie sesión en el Azure Portal.Sign in to the Azure portal.

Creación de un centro de eventosCreate an event hub

En este artículo, generar datos de ejemplo y enviarla a un centro de eventos.In this article, you generate sample data and send it to an event hub. El primer paso es crear un centro de eventos.The first step is to create an event hub. Para hacerlo, utilice una plantilla de Azure Resource Manager en Azure Portal.You do this by using an Azure Resource Manager template in the Azure portal.

  1. Con el fin de crear un centro de eventos, use el botón siguiente para iniciar la implementación.To create an event hub, use the following button to start the deployment. 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.Right-click and select Open in new window, so you can follow the rest of the steps in this article.

    Implementación en AzureDeploy to Azure

    El botón Deploy to Azure (Implementar en Azure) le lleva a Azure Portal para rellenar un formulario de implementación.The Deploy to Azure button takes you to the Azure portal to fill out a deployment form.

    Implementar en Azure

  2. Seleccione la suscripción en la que desea crear el centro de eventos y cree un grupo de recursos denominado test-hub-rg.Select the subscription where you want to create the event hub, and create a resource group named test-hub-rg.

    Crear un grupo de recursos

  3. Rellene el formulario con la siguiente información.Fill out the form with the following information.

    Formulario de implementación

    Use los valores predeterminados para cualquier configuración que no aparezca en la tabla siguiente.Use defaults for any settings not listed in the following table.

    ConfiguraciónSetting Valor sugeridoSuggested value Descripción del campoField description
    SubscriptionSubscription Su suscripciónYour subscription Seleccione la suscripción de Azure que quiere usar para el centro de eventos.Select the Azure subscription that you want to use for your event hub.
    Grupos de recursosResource group test-hub-rgtest-hub-rg Cree un nuevo grupo de recursos.Create a new resource group.
    UbicaciónLocation Oeste de EE. UU.West US Seleccione oeste de Estados Unidos para este artículo.Select West US for this article. En un sistema de producción, seleccione la región que mejor se adapte a sus necesidades.For a production system, select the region that best meets your needs. Cree el espacio de nombres del centro de eventos en la misma ubicación que el clúster de Kusto para mejorar el rendimiento (más importante para espacios de nombres de centro de eventos con alto rendimiento).Create the event hub namespace in the same Location as the Kusto cluster for best performance (most important for event hub namespaces with high throughput).
    Nombre del espacio de nombresNamespace name Nombre único del espacio de nombresA unique namespace name Elija un nombre único que identifique el espacio de nombres.Choose a unique name that identifies your namespace. Por ejemplo, mytestnamespace.For example, mytestnamespace. El nombre de dominio servicebus.windows.net se anexa al nombre que proporcione.The domain name servicebus.windows.net is appended to the name you provide. El nombre solo puede contener letras, números y guiones.The name can contain only letters, numbers, and hyphens. El nombre debe comenzar y terminar con una letra o un número.The name must start with a letter, and it must end with a letter or number. El valor debe tener entre 6 y 50 caracteres.The value must be between 6 and 50 characters long.
    Nombre del centro de eventosEvent hub name test-hubtest-hub El centro de eventos se encuentra bajo el espacio de nombres, que proporciona un contenedor de ámbito único.The event hub sits under the namespace, which provides a unique scoping container. El nombre del centro de eventos tiene que ser único dentro del espacio de nombres.The event hub name must be unique within the namespace.
    Nombre del grupo de consumidoresConsumer group name test-grouptest-group Los grupos de consumidores permiten consumir varias aplicaciones y que cada una tenga una vista independiente del flujo de eventos.Consumer groups enable multiple consuming applications to each have a separate view of the event stream.
  4. Seleccione Comprar, que confirma que está creando recursos en su suscripción.Select Purchase, which acknowledges that you're creating resources in your subscription.

  5. Seleccione Notificaciones en la barra de herramientas para supervisar el proceso de aprovisionamiento.Select Notifications on the toolbar to monitor the provisioning process. La implementación puede tardar varios minutos en realizarse correctamente, pero puede continuar con el siguiente paso ahora.It might take several minutes for the deployment to succeed, but you can move on to the next step now.

    Notificaciones

Creación de una tabla de destino en el Explorador de datos de AzureCreate a target table in Azure Data Explorer

Ahora creará una tabla en el Explorador de datos de Azure, al que Event Hubs enviará datos.Now you create a table in Azure Data Explorer, to which Event Hubs will send data. Creará la tabla en el clúster y la base de datos aprovisionada en Requisitos previos.You create the table in the cluster and database provisioned in Prerequisites.

  1. En Azure Portal, vaya al clúster y, a continuación, seleccione Consulta.In the Azure portal, navigate to your cluster then select Query.

    Vínculo a la aplicación Consulta

  2. Copie el siguiente comando en la ventana y seleccione Ejecutar para crear la tabla (TestTable) que recibirá los datos ingeridos.Copy the following command into the window and select Run to create the table (TestTable) which will receive the ingested data.

    .create table TestTable (TimeStamp: datetime, Name: string, Metric: int, Source:string)
    

    Ejecución de creación de una consulta

  3. 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).Copy the following command into the window and select Run to map the incoming JSON data to the column names and data types of the table (TestTable).

    .create table TestTable ingestion json mapping 'TestMapping' '[{"column":"TimeStamp","path":"$.timeStamp","datatype":"datetime"},{"column":"Name","path":"$.name","datatype":"string"},{"column":"Metric","path":"$.metric","datatype":"int"},{"column":"Source","path":"$.source","datatype":"string"}]'
    

Conexión a Event HubsConnect to the event hub

Ahora puede conectarse al centro de eventos desde Azure Data Explorer.Now you connect to the event hub from Azure Data Explorer. 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.When this connection is in place, data that flows into the event hub streams to the test table you created earlier in this article.

  1. Seleccione Notificaciones en la barra de herramientas para comprobar que la implementación del centro de eventos se ha realizado correctamente.Select Notifications on the toolbar to verify that the event hub deployment was successful.

  2. En el clúster que creó, seleccione Bases de datos y TestDatabase.Under the cluster you created, select Databases then TestDatabase.

    Selección de la base de datos de prueba

  3. Seleccione Ingesta de datos y Agregar conexión de datos.Select Data ingestion and Add data connection. Después, rellene el formulario con la siguiente información.Then fill out the form with the following information. Cuando haya terminado, seleccione Crear.Select Create when you are finished.

    Conexión del centro de eventos

    Origen de datos:Data Source:

    ConfiguraciónSetting Valor sugeridoSuggested value Descripción del campoField description
    Nombre de la conexión de datosData connection name test-hub-connectiontest-hub-connection Nombre de la conexión que desea crear en el Explorador de datos de Azure.The name of the connection you want to create in Azure Data Explorer.
    Espacio de nombres del centro de eventosEvent hub namespace Nombre único del espacio de nombresA unique namespace name Nombre elegido anteriormente que identifica el espacio de nombres.The name you chose earlier that identifies your namespace.
    Centro de eventosEvent hub test-hubtest-hub El centro de eventos que creó.The event hub you created.
    Grupo de consumidoresConsumer group test-grouptest-group Grupo de consumidores de eventos definido en el centro de eventos que creó.The consumer group defined in the event hub you created.

    Tabla de destino:Target table:

    Hay dos opciones para el enrutamiento de los datos ingeridos: estático y dinámico.There are two options for routing the ingested data: static and dynamic. 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.For this article, you use static routing, where you specify the table name, data format, and mapping. Por tanto, deje My data includes routing info (Mis datos incluyen información de enrutamiento) sin seleccionar.Therefore, leave My data includes routing info unselected.

    ConfiguraciónSetting Valor sugeridoSuggested value Descripción del campoField description
    TablaTable TestTableTestTable La tabla que creó en TestDatabase.The table you created in TestDatabase.
    Formato de datosData format JSONJSON Los formatos admitidos son Avro, CSV, JSON, JSON de varias líneas, PSV, SOH, SCSV, TSV y TXT.Supported formats are Avro, CSV, JSON, MULTILINE JSON, PSV, SOH, SCSV, TSV, and TXT.
    Asignación de columnasColumn mapping TestMappingTestMapping La asignación que creó en TestDatabase, que asigna los datos JSON entrantes a los nombres de columnas y tipos de datos de TestTable.The mapping you created in TestDatabase, which maps incoming JSON data to the column names and data types of TestTable. Se requiere para JSON, MULTILINE JSON o AVRO, y es opcional para otros formatos.Required for JSON, MULTILINE JSON, or AVRO, and optional for other formats.

    Nota

    Seleccione My data includes routing info (Mis datos incluyen información de enrutamiento) para usar el enrutamiento dinámico, donde los datos incluyen la información de enrutamiento necesaria, tal como se muestra en los comentarios de la aplicación de ejemplo.Select My data includes routing info to use dynamic routing, where your data includes the necessary routing information as seen in the sample app comments. Si se establecen propiedades estáticas y dinámicas, las propiedades dinámicas reemplazan a las estáticas.If both static and dynamic properties are set, the dynamic properties override the static ones.

Copiar la cadena de conexiónCopy the connection string

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.When you run the sample app listed in Prerequisites, you need the connection string for the event hub namespace.

  1. En el espacio de nombres del centro de eventos que creó, seleccione Directivas de acceso compartido y RootManageSharedAccessKey.Under the event hub namespace you created, select Shared access policies, then RootManageSharedAccessKey.

    Directivas de acceso compartido

  2. Copie Cadena de conexión: clave principal.Copy Connection string - primary key. Péguelo en la sección siguiente.You paste it in the next section.

    Cadena de conexión

Generación de datos de ejemploGenerate sample data

Use la aplicación de ejemplo que descargó para generar datos.Use the sample app you downloaded to generate data.

  1. Abra la aplicación de ejemplo en Visual Studio.Open the sample app solution in Visual Studio.

  2. En el archivo program.cs, actualice la constante connectionString a la cadena de conexión que copió desde el espacio de nombres del centro de eventos.In the program.cs file, update the connectionString constant to the connection string you copied from the event hub namespace.

    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.Build and run the app. La aplicación envía mensajes al centro de eventos e imprime el estado cada diez segundos.The app sends messages to the event hub, and it prints out status every ten seconds.

  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.After the app has sent a few messages, move on to the next step: reviewing the flow of data into your event hub and test table.

Revisión del flujo de datosReview the data flow

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.With the app generating data, you can now see the flow of that data from the event hub to the table in your cluster.

  1. En Azure Portal, bajo el centro de eventos, verá el pico de actividad cuando la aplicación se está ejecutando.In the Azure portal, under your event hub, you see the spike in activity while the app is running.

    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.To check how many messages have made it to the database so far, run the following query in your test database.

    TestTable
    | count
    
  3. Para ver el contenido de los mensajes, ejecute la siguiente consulta:To see the content of the messages, run the following query:

    TestTable
    

    El conjunto de resultados debe tener un aspecto similar al siguiente:The result set should look like the following:

    Conjunto de resultados de mensajes

    Nota

    Azure Data Explorer tiene una directiva de agregación (procesamiento por lotes) para la ingesta de datos diseñada para optimizar dicho proceso.Azure Data Explorer has an aggregation (batching) policy for data ingestion, designed to optimize the ingestion process. La directiva está configurada en 5 minutos, por lo que puede experimentar una latencia.The policy is configured to 5 minutes so you may experience a latency.

Limpieza de recursosClean up resources

Si no piensa volver a usar el centro de eventos, limpie test-hub-rg para evitar incurrir en costos.If you don't plan to use your event hub again, clean up test-hub-rg, to avoid incurring costs.

  1. En Azure Portal, seleccione Grupos de recursos en el extremo izquierdo y luego seleccione el grupo de recursos que creó.In the Azure portal, select Resource groups on the far left, and then select the resource group you created.

    Si el menú izquierdo está contraído, seleccione elIf the left menu is collapsed, select Botón Expandir para expandirlo.to expand it.

    Selección del grupo de recursos que se eliminará

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

  3. En la nueva ventana, escriba el nombre del grupo de recursos que quiere eliminar (test-hub-rg) y seleccione Eliminar.In the new window, type the name of the resource group to delete (test-hub-rg), and then select Delete.

Pasos siguientesNext steps