Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Este instructivo es una modificación del Ejecuta un DAG de análisis de datos en Google Cloud que muestre cómo conectar tu entorno de Cloud Composer a Microsoft Azure para usar los datos almacenados allí. Muestra cómo usar Cloud Composer para crear un DAG de Apache Airflow El El DAG une los datos de un conjunto de datos públicos de BigQuery y un archivo CSV almacenado en una Azure Blob Storage y, luego, ejecuta un trabajo por lotes Dataproc sin servidores para procesar de datos no estructurados.
El conjunto de datos públicos de BigQuery en este instructivo es ghcn_d, una base de datos integrada de resúmenes del clima de el mundo. El archivo CSV contiene información sobre las fechas y los nombres de los feriados de EE.UU. de 1997 a 2021.
La pregunta que queremos responder con el DAG es: "¿Qué temperatura hizo en Chicago el Día de Acción de Gracias en los últimos 25 años?"
Objetivos
- Crea un entorno de Cloud Composer con la configuración predeterminada
- Crea un BLOB en Azure
- Crea un conjunto de datos vacío de BigQuery
- Cree un nuevo bucket de Cloud Storage
- Crear y ejecutar un DAG que incluya las siguientes tareas:
- Carga un conjunto de datos externo de Azure Blob Storage a Cloud Storage
- Carga un conjunto de datos externo de Cloud Storage a BigQuery
- Cómo unir dos conjuntos de datos en BigQuery
- Ejecuta un trabajo de PySpark de análisis de datos
Antes de comenzar
Habilita las APIs
Habilita las siguientes APIs:
Console
Enable the Dataproc, Cloud Composer, BigQuery, Cloud Storage APIs.
gcloud
Enable the Dataproc, Cloud Composer, BigQuery, Cloud Storage APIs:
gcloud services enable dataproc.googleapis.comcomposer.googleapis.com bigquery.googleapis.com storage.googleapis.com
Otorgar permisos
Otorga los siguientes roles y permisos a tu cuenta de usuario:
Otorga roles para administrar entornos y depósitos de entornos de Cloud Composer.
Otorga el rol Propietario de datos de BigQuery (
roles/bigquery.dataOwner
) para crear un conjunto de datos de BigQuery.Otorga el rol Administrador de almacenamiento (
roles/storage.admin
) para crear un bucket de Cloud Storage.
Crea y prepara tu entorno de Cloud Composer
Crea un entorno de Cloud Composer con los parámetros predeterminados:
- Elige una región de EE.UU.
- Elige la versión más reciente de Cloud Composer.
Otorga los siguientes roles a la cuenta de servicio que se usa en tu entorno de Cloud Composer para que los trabajadores de Airflow ejecuten tareas de DAG de forma correcta:
- Usuario de BigQuery (
roles/bigquery.user
) - Propietario de datos de BigQuery (
roles/bigquery.dataOwner
) - Usuario de cuenta de servicio (
roles/iam.serviceAccountUser
) - Editor de Dataproc (
roles/dataproc.editor
) - Trabajador de Dataproc (
roles/dataproc.worker
)
- Usuario de BigQuery (
Crear y modificar recursos relacionados en Google Cloud
Instalar el
apache-airflow-providers-microsoft-azure
paquete de PyPI en tu entorno de Cloud Composer.Crea un conjunto de datos vacío de BigQuery con los siguientes parámetros:
- Nombre:
holiday_weather
- Región:
US
- Nombre:
Crea un nuevo bucket de Cloud Storage en la multirregión
US
.Ejecuta el siguiente comando para habilitar el Acceso privado a Google en la subred predeterminada de la región en la que deseas ejecutar Dataproc sin servidores para cumplir con los requisitos de red. Te recomendamos que uses la misma región que tu entorno de Cloud Composer.
gcloud compute networks subnets update default \ --region DATAPROC_SERVERLESS_REGION \ --enable-private-ip-google-access
Crea recursos relacionados en Azure
Crea una cuenta de almacenamiento con la configuración predeterminada.
Obtén la clave de acceso y la cadena de conexión para tu cuenta de almacenamiento.
Crea un contenedor con opciones predeterminadas en la cuenta de almacenamiento que acabas de crear.
Otorga al delegador de BLOB de almacenamiento para el contenedor que creaste en el paso anterior.
Sube el archivo holidays.csv a crea un BLOB en bloque con opciones predeterminadas en el portal de Azure.
Crea un token SAS para el BLOB en bloque que creaste en el paso anterior en el portal de Azure.
- Método de firma: Clave de delegación de usuarios
- Permisos: Lectura
- Dirección IP permitida: Ninguna
- Protocolos permitidos: Solo HTTPS
Conéctate a Azure desde Cloud Composer
Agrega tu conexión con Microsoft Azure con la IU de Airflow:
Ve a Administrador > Conexiones.
Crea una conexión nueva con la siguiente configuración:
- ID de conexión:
azure_blob_connection
- Tipo de conexión:
Azure Blob Storage
- Blob Storage Login: Es el nombre de tu cuenta de almacenamiento.
- Clave de Blob Storage: Es la clave de acceso de tu cuenta de almacenamiento.
- Cadena de conexión de la cuenta de almacenamiento de BLOB: tu cuenta de almacenamiento cadena de conexión
- SAS Token: Es el token SAS que se generó desde el BLOB.
- ID de conexión:
Procesamiento de datos con Dataproc Serverless
Explora el trabajo de PySpark de ejemplo
El código que se muestra a continuación es un ejemplo de trabajo de PySpark que convierte la temperatura de décimas de grado en grados Celsius a grados Celsius. Esta tarea convierte los datos de temperatura del conjunto de datos a un formato diferente.
Sube el archivo de PySpark a Cloud Storage
Para subir el archivo PySpark a Cloud Storage, haz lo siguiente:
Guarda data_analytics_process.py en tu máquina local.
En la consola de Google Cloud, ve a la página del navegador de Cloud Storage:
Haz clic en el nombre del bucket que creaste antes.
En la pestaña Objetos del bucket, haz clic en el botón Subir archivos, selecciona
data_analytics_process.py
en el cuadro de diálogo que aparece y haz clic en Abrir.
DAG de análisis de datos
Explora el DAG de ejemplo
El DAG usa múltiples operadores para transformar y unificar los datos:
AzureBlobStorageToGCSOperator
transfiere el archivo holidays.csv de tu objeto blob de bloque de Azure a tu bucket de Cloud Storage.El
GCSToBigQueryOperator
transfiere el archivo holidays.csv de Cloud Storage a una nueva tabla en BigQuery Conjunto de datosholidays_weather
que creaste antes.El
DataprocCreateBatchOperator
crea y ejecuta un trabajo por lotes de PySpark Dataproc sin servidores.El
BigQueryInsertJobOperator
une los datos de holidays.csv en el "Fecha" Columna con datos meteorológicos del conjunto de datos públicos de BigQuery ghcn_d. Las tareasBigQueryInsertJobOperator
se generan de forma dinámica con un bucle for y se encuentran en unTaskGroup
para mejorar la legibilidad en la vista de gráfico de la IU de Airflow.
Usa la IU de Airflow para agregar variables
En Airflow, las variables son una forma universal de almacenar y recuperar parámetros de configuración arbitrarios como un almacén de pares clave-valor simple. Este DAG usa variables de Airflow para almacenar valores comunes. Para agregarlas a tu entorno, haz lo siguiente:
Accede a la IU de Airflow desde la consola de Cloud Composer.
Ve a Administrador > Variables.
Agrega las siguientes variables:
gcp_project
: el ID de tu proyectogcs_bucket
: Es el nombre del bucket que creaste antes (sin el prefijogs://
).gce_region
: Es la región en la que deseas que se ejecute tu trabajo de Dataproc que cumpla con los requisitos de redes de Dataproc sin servidores. Esta es la región en la que habilitaste el acceso privado a Google antes.dataproc_service_account
: La cuenta de servicio de tu ambiente de Cloud Composer. Puedes encontrar esta cuenta de servicio en la pestaña de configuración del entorno de Cloud Composer.azure_blob_name
: Es el nombre del blob que creaste antes.azure_container_name
: Es el nombre del contenedor que creaste antes.
Sube el DAG al bucket de tu entorno
Cloud Composer programa los DAG que se encuentran en la
carpeta /dags
del bucket de tu entorno. Para subir el DAG con la consola de Google Cloud, sigue estos pasos:
En tu máquina local, guarda azureblobstoretogcsoperator_tutorial.py.
En la consola de Google Cloud, ve a la página Entornos.
En la lista de entornos, en la columna Carpeta de DAG, haz clic en el vínculo de los DAG. Se abrirá la carpeta DAG de tu entorno.
Haz clic en Subir archivos.
Selecciona
azureblobstoretogcsoperator_tutorial.py
en tu máquina local y Haz clic en Open.
Activa el DAG
En tu entorno de Cloud Composer, haz clic en la pestaña DAGs.
Haz clic en el ID del DAG
azure_blob_to_gcs_dag
.Haz clic en Activar DAG.
Espera entre cinco y diez minutos hasta que veas una marca de verificación verde que indique tareas se hayan completado correctamente.
Valida el éxito del DAG
En la consola de Google Cloud, ve a la página de BigQuery.
En el panel Explorador, haz clic en el nombre de tu proyecto.
Haz clic en
holidays_weather_joined
.Haz clic en Vista previa para ver la tabla resultante. Ten en cuenta que los números de la columna de valor están en décimas de grado Celsius.
Haz clic en
holidays_weather_normalized
.Haz clic en la vista previa para ver la tabla resultante. Ten en cuenta que los números de la columna de valor están en grados Celsius.
Limpieza
Borra los recursos individuales que creaste para este instructivo:
Borra el bucket de Cloud Storage que para este instructivo.
Borra el entorno de Cloud Composer, incluido lo siguiente: borrar manualmente el bucket del entorno.
¿Qué sigue?
- Ejecuta un DAG de estadísticas de datos en Google Cloud.
- Ejecuta un DAG de análisis de datos en AWS.