Compartir a través de


Tutorial: Procesamiento de eventos de Apache Kafka para Event Hubs mediante Stream Analytics

En este artículo se muestra cómo transmitir datos a Event Hubs y procesarlos con Azure Stream Analytics. Le guía por los pasos siguientes:

  1. Cree un espacio de nombres de Event Hubs.
  2. Cree un cliente de Kafka que envíe mensajes al centro de eventos.
  3. Cree un trabajo de Stream Analytics que copie los datos del centro de eventos en un almacenamiento de blobs de Azure.

No es necesario cambiar los clientes de protocolo ni ejecutar sus propios clústeres cuando se usa el punto de conexión de Kafka expuesto por un centro de eventos. Azure Event Hubs admite Apache Kafka versión 1.0 y posteriores.

Prerrequisitos

Para completar este inicio rápido, asegúrese de que tiene los siguientes requisitos previos:

Creación de un espacio de nombres de Event Hubs

Al crear un espacio de nombres de Event Hubs, el punto de conexión de Kafka para el espacio de nombres se habilita automáticamente. Puede transmitir eventos desde las aplicaciones que usan el protocolo Kafka a event hubs. Siga las instrucciones paso a paso de Creación de un centro de eventos mediante Azure Portal para crear un espacio de nombres de Event Hubs. Si usa un clúster dedicado, consulte Creación de un espacio de nombres y un centro de eventos en un clúster dedicado.

Nota:

Event Hubs para Kafka no tiene compatibilidad en el nivel básico.

Envío de mensajes con Kafka en Event Hubs

  1. Clona el repositorio de Azure Event Hubs para Kafka en tu máquina.

  2. Vaya a la carpeta : azure-event-hubs-for-kafka/quickstart/java/producer.

  3. Actualice los detalles de configuración del productor en src/main/resources/producer.config. Especifique el nombre y la cadena de conexión para el espacio de nombres del centro de eventos.

    bootstrap.servers={EVENT HUB NAMESPACE}.servicebus.windows.net:9093
    security.protocol=SASL_SSL
    sasl.mechanism=PLAIN
    sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="{CONNECTION STRING for EVENT HUB NAMESPACE}";
    
  4. Vaya a azure-event-hubs-for-kafka/quickstart/java/producer/src/main/java/y abra TestDataReporter.java archivo en un editor de su elección.

  5. Convierta en comentario la siguiente línea de código:

                //final ProducerRecord<Long, String> record = new ProducerRecord<Long, String>(TOPIC, time, "Test Data " + i);
    
  6. Agregue la siguiente línea de código en lugar del código comentado:

                final ProducerRecord<Long, String> record = new ProducerRecord<Long, String>(TOPIC, time, "{ \"eventData\": \"Test Data " + i + "\" }");            
    

    Este código envía los datos del evento en formato JSON . Al configurar la entrada para un trabajo de Stream Analytics, especifique JSON como formato para los datos de entrada.

  7. Ejecute el productor y transmita a Event Hubs. En un equipo Windows, al usar un símbolo del sistema Node.js, cambie a la carpeta azure-event-hubs-for-kafka/quickstart/java/producer antes de ejecutar estos comandos.

    mvn clean package
    mvn exec:java -Dexec.mainClass="TestProducer"                                    
    

Comprobación de que el centro de eventos recibe los datos

  1. Seleccione Event Hubs en ENTIDADES. Confirme que ve un centro de eventos denominado test.

    Centro de eventos: prueba

  2. Confirme que ve los mensajes que entran en el centro de eventos.

    Centro de eventos: mensajes

Procesamiento de datos de eventos mediante un trabajo de Stream Analytics

En esta sección, creas un trabajo de Azure Stream Analytics. El cliente de Kafka envía eventos al centro de eventos. Se crea un trabajo de Stream Analytics que toma los datos de eventos como entrada y se envía a un almacenamiento de blobs de Azure. Si no tiene una cuenta de Azure Storage, cree una.

La consulta en el trabajo de Stream Analytics se pasa a través de los datos sin realizar ningún análisis. Puede crear una consulta que transforme los datos de entrada para generar datos de salida en un formato diferente o con información obtenida.

Creación de un trabajo de Stream Analytics

  1. Seleccione + Crear un recurso en Azure Portal.
  2. Seleccione Analytics en el menú de Azure Marketplace y seleccione Trabajo de Stream Analytics.
  3. En la página Nuevo Stream Analytics, realice las siguientes acciones:
    1. Escriba un nombre para el trabajo.

    2. Seleccione la suscripción.

    3. Seleccione Crear nuevo para el grupo de recursos y escriba el nombre. También puede usar un grupo de recursos existente.

    4. Seleccione una ubicación para el trabajo.

    5. Seleccione Crear para crear el trabajo.

      Nuevo trabajo de Stream Analytics

Configuración de la entrada del trabajo

  1. En el mensaje de notificación, seleccione Ir al recurso para ver la página del trabajo de Stream Analytics .

  2. Seleccione Entradas en la sección TOPOLOGÍA DE TRABAJO en el menú de la izquierda.

  3. Seleccione Agregar entrada de flujo y, a continuación, seleccione Centro de eventos.

    Adición del centro de eventos como entrada

  4. En la página configuración de entrada del centro de eventos, realice las siguientes acciones:

    1. Especifique un alias para la entrada.

    2. Seleccione la suscripción de Azure.

    3. Seleccione el espacio de nombres del hub de eventos que creó anteriormente.

    4. Seleccione test para el centro de eventos.

    5. Haga clic en Guardar.

      Configuración de entrada del centro de eventos

Configuración de la salida del trabajo

  1. Seleccione Salidas en la sección TOPOLOGÍA DE TRABAJO en el menú.
  2. Seleccione + Agregar en la barra de herramientas y seleccione Blob Storage.
  3. En la página Configuración de salida de Blob Storage, realice las siguientes acciones:
    1. Especifique un alias para la salida.

    2. Seleccione la suscripción de Azure.

    3. Seleccione la cuenta de Azure Storage.

    4. Escriba un nombre para el contenedor que almacena los datos de salida de la consulta de Stream Analytics.

    5. Haga clic en Guardar.

      Configuración de salida de Blob Storage

Definición de una consulta

Después de configurar un trabajo de Stream Analytics para leer un flujo de datos entrante, el siguiente paso es crear una transformación que analice los datos en tiempo real. La consulta de transformación se define mediante el lenguaje de consulta de Stream Analytics. En este tutorial, definirá una consulta que pasa por los datos sin realizar ninguna transformación.

  1. Seleccione Consulta.

  2. En la ventana de consulta, reemplace por [YourOutputAlias] el alias de salida que creó anteriormente.

  3. Reemplace por [YourInputAlias] el alias de entrada que creó anteriormente.

  4. Seleccione Guardar en la barra de herramientas.

    Captura de pantalla que muestra la ventana de consulta con valores para las variables de entrada y salida.

Ejecución del trabajo de Stream Analytics

  1. Seleccione Información general en el menú de la izquierda.

  2. Seleccione Inicio.

    Menú Inicio

  3. En la página Iniciar trabajo , seleccione Iniciar.

    Página de inicio del trabajo

  4. Espere hasta que el estado del trabajo cambie de comenzando a en ejecución.

    Estado del trabajo: en ejecución

Prueba el escenario

  1. Vuelva a ejecutar el productor de Kafka para enviar eventos al centro de eventos.

    mvn exec:java -Dexec.mainClass="TestProducer"                                    
    
  2. Confirme que ve que los datos de salida se generan en Azure Blob Storage. Verá un archivo JSON en el contenedor con 100 filas que parecen las siguientes filas de ejemplo:

    {"eventData":"Test Data 0","EventProcessedUtcTime":"2018-08-30T03:27:23.1592910Z","PartitionId":0,"EventEnqueuedUtcTime":"2018-08-30T03:27:22.9220000Z"}
    {"eventData":"Test Data 1","EventProcessedUtcTime":"2018-08-30T03:27:23.3936511Z","PartitionId":0,"EventEnqueuedUtcTime":"2018-08-30T03:27:22.9220000Z"}
    {"eventData":"Test Data 2","EventProcessedUtcTime":"2018-08-30T03:27:23.3936511Z","PartitionId":0,"EventEnqueuedUtcTime":"2018-08-30T03:27:22.9220000Z"}
    

    El trabajo de Azure Stream Analytics recibió datos de entrada del centro de eventos y los almacenó en Azure Blob Storage en este escenario.

Pasos siguientes

En este artículo se muestra cómo hacer streaming a instancias de Event Hubs sin cambiar los clientes del protocolo o ejecutar sus propios clústeres. Para más información sobre Event Hubs para Apache Kafka, consulte guía para desarrolladores de Apache Kafka para Azure Event Hubs.