Escribir datos de Kafka en BigQuery con Dataflow

En esta página se muestra cómo usar Dataflow para leer datos del servicio gestionado de Google Cloud para Apache Kafka y escribir los registros en una tabla de BigQuery. En este tutorial se usa la plantilla de Apache Kafka a BigQuery para crear la tarea de Dataflow.

Información general

Apache Kafka es una plataforma de código abierto para el streaming de eventos. Kafka se usa habitualmente en arquitecturas distribuidas para permitir la comunicación entre componentes con bajo acoplamiento. Puedes usar Dataflow para leer eventos de Kafka, procesarlos y escribir los resultados en una tabla de BigQuery para analizarlos más a fondo.

Managed Service para Apache Kafka es un servicio de Google Cloud Platform que te ayuda a ejecutar clústeres de Kafka seguros y escalables.

Lectura de eventos de Kafka en BigQuery
Arquitectura basada en eventos con Apache Kafka

Permisos obligatorios

La cuenta de servicio de los trabajadores de Dataflow debe tener los siguientes roles de Gestión de Identidades y Accesos (IAM):

  • Cliente de Kafka gestionado (roles/managedkafka.client)
  • Editor de datos de BigQuery (roles/bigquery.dataEditor)

Para obtener más información, consulta Seguridad y permisos de los flujos de datos.

Crear un clúster de Kafka

En este paso, crearás un clúster de Managed Service para Apache Kafka. Para obtener más información, consulta Crear un clúster de Managed Service para Apache Kafka.

Consola

  1. Ve a la página Clústeres de Managed Service para Apache Kafka >.

    Ir a Clústeres

  2. Haz clic en Crear.

  3. En el cuadro Nombre del clúster, introduce un nombre para el clúster.

  4. En la lista Región, selecciona una ubicación para el clúster.

  5. Haz clic en Crear.

gcloud

Usa el comando managed-kafka clusters create.

gcloud managed-kafka clusters create CLUSTER \
--location=REGION \
--cpu=3 \
--memory=3GiB \
--subnets=projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME

Haz los cambios siguientes:

  • CLUSTER: nombre del clúster
  • REGION: la región en la que has creado la subred
  • PROJECT_ID: tu ID de proyecto
  • SUBNET_NAME: la subred en la que quieres implementar el clúster

La creación de un clúster suele tardar entre 20 y 30 minutos.

Crear un tema de Kafka

Una vez creado el clúster de Managed Service para Apache Kafka, crea un tema.

Consola

  1. Ve a la página Clústeres de Managed Service para Apache Kafka >.

    Ir a Clústeres

  2. Haz clic en el nombre del clúster.

  3. En la página de detalles del clúster, haz clic en Crear tema.

  4. En el cuadro Nombre del tema, escribe el nombre del tema.

  5. Haz clic en Crear.

gcloud

Usa el comando managed-kafka topics create.

gcloud managed-kafka topics create TOPIC_NAME \
--cluster=CLUSTER \
--location=REGION \
--partitions=10 \
--replication-factor=3

Haz los cambios siguientes:

  • TOPIC_NAME: el nombre del tema que se va a crear

Crear una tabla de BigQuery

En este paso, creará una tabla de BigQuery con el siguiente esquema:

Nombre de la columna Tipo de datos
name STRING
customer_id INTEGER

Si aún no tienes un conjunto de datos de BigQuery, crea uno. Para obtener más información, consulta