Puntos de control
Create Cloud Composer environment.
/ 25
Create two Cloud Storage buckets.
/ 25
Create a dataset.
/ 25
Uploading the DAG and dependencies to Cloud Storage
/ 25
Cloud Composer: Cómo copiar tablas de BigQuery en diferentes ubicaciones
- GSP283
- Descripción general
- Configuración
- Tarea 1: Crea el entorno de Cloud Composer
- Tarea 2. Crea buckets de Cloud Storage
- Tarea 3: Conjunto de datos de destino de BigQuery
- Tarea 4: Airflow y conceptos básicos: una breve introducción
- Tarea 5: Define el flujo de trabajo
- Tarea 6. Consulta información del entorno
- Tarea 7. Configura el bucket de DAG de Cloud Storage
- Tarea 8. Configura variables de Airflow
- Tarea 9: Sube el DAG y las dependencias a Cloud Storage
- Tarea 10. Usa la IU de Airflow
- Tarea 11. Valida los resultados
- Borre el entorno de Cloud Composer
- ¡Felicitaciones!
- Próximos pasos
GSP283
Descripción general
Imagina que tienes conjuntos de datos en diferentes ubicaciones del mundo, y que estos datos están en buckets de Google Cloud Storage o en tablas de BigQuery. ¿Cómo puedes organizarlos para que se consoliden y analicen, y te brinden estadísticas sobre tu negocio?
Cloud Composer puede ayudarte a crear flujos de trabajo y trasladar tus datos entre regiones y sistemas de almacenamiento con una vista gráfica intuitiva. Entre otras funciones, cuenta con plantillas para trasladar datos entre BigQuery y Cloud Storage de forma sencilla y confiable.
En este lab avanzado, explorarás ejercicios sobre este tema. Aprenderás a crear y ejecutar un flujo de trabajo de Apache Airflow en Cloud Composer que completará las siguientes tareas:
- Leer la lista de tablas de un archivo de configuración para copiarla
- Exportar a Cloud Storage la lista de tablas de un conjunto de datos de BigQuery ubicado en EE.UU.
- Copiar las tablas exportadas de buckets de Cloud Storage ubicados en EE.UU. en otros de la UE
- Importar la lista de tablas al conjunto de datos de destino de BigQuery de la UE
Configuración
Antes de hacer clic en el botón Comenzar lab
Lee estas instrucciones. Los labs son cronometrados y no se pueden pausar. El cronómetro, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.
Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.
Para completar este lab, necesitarás lo siguiente:
- Acceso a un navegador de Internet estándar (se recomienda el navegador Chrome)
- Tiempo para completar el lab: Recuerda que, una vez que comienzas un lab, no puedes pausarlo.
Cómo iniciar su lab y acceder a la consola de Google Cloud
-
Haga clic en el botón Comenzar lab. Si debe pagar por el lab, se abrirá una ventana emergente para que seleccione su forma de pago. A la izquierda, se encuentra el panel Detalles del lab que tiene estos elementos:
- El botón Abrir la consola de Google
- Tiempo restante
- Las credenciales temporales que debe usar para el lab
- Otra información para completar el lab, si es necesaria
-
Haga clic en Abrir la consola de Google. El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.
Sugerencia: Ordene las pestañas en ventanas separadas, una junto a la otra.
Nota: Si ve el diálogo Elegir una cuenta, haga clic en Usar otra cuenta. -
Si es necesario, copie el nombre de usuario del panel Detalles del lab y péguelo en el cuadro de diálogo Acceder. Haga clic en Siguiente.
-
Copie la contraseña del panel Detalles del lab y péguela en el cuadro de diálogo de bienvenida. Haga clic en Siguiente.
Importante: Debe usar las credenciales del panel de la izquierda. No use sus credenciales de Google Cloud Skills Boost. Nota: Usar su propia Cuenta de Google podría generar cargos adicionales. -
Haga clic para avanzar por las páginas siguientes:
- Acepte los términos y condiciones.
- No agregue opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
- No se registre para obtener pruebas gratuitas.
Después de un momento, se abrirá la consola de Cloud en esta pestaña.
Activa Cloud Shell
Cloud Shell es una máquina virtual que cuenta con herramientas para desarrolladores. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud. Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.
- Haz clic en Activar Cloud Shell en la parte superior de la consola de Google Cloud.
Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu PROJECT_ID. El resultado contiene una línea que declara el PROJECT_ID para esta sesión:
gcloud
es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con la función de autocompletado con tabulador.
- Puedes solicitar el nombre de la cuenta activa con este comando (opcional):
-
Haz clic en Autorizar.
-
Ahora, el resultado debería verse de la siguiente manera:
Resultado:
- Puedes solicitar el ID del proyecto con este comando (opcional):
Resultado:
Resultado de ejemplo:
gcloud
, consulta la guía con la descripción general de gcloud CLI en Google Cloud.
Tarea 1: Crea el entorno de Cloud Composer
- En primer lugar, para crear un entorno de Cloud Composer, haz clic en la opción Composer del Menú de navegación:
-
Luego, haz clic en Crear entorno.
-
En el menú desplegable, selecciona Composer 1.
-
Configura los siguientes parámetros para tu entorno:
- Nombre: composer-advanced-lab
-
Ubicación:
- Versión de la imagen: composer-1.20.12-airflow-2.4.3
-
Zona:
Deja el resto de la configuración con sus valores predeterminados.
- Haz clic en Crear.
El proceso de creación del entorno se completa cuando, en la página Entornos de la consola de Cloud, la marca de verificación verde aparece a la izquierda del nombre del entorno.
Crea buckets de Cloud Storage y conjuntos de datos de destino de BigQuery
.Haz clic en Revisar mi progreso para verificar el objetivo.
Tarea 2. Crea buckets de Cloud Storage
- Crea dos buckets multirregionales de Cloud Storage.
- Ve a Cloud Storage > Bucket y haz clic en Crear.
- Asígnale al bucket un nombre único que incluya el ID del proyecto (p. ej.,
-bucket). - Para el Tipo de ubicación, selecciona us (varias regiones en Estados Unidos).
- Deja las demás opciones con sus valores predeterminados y haz clic en Crear.
- Marca la casilla
Aplicar la prevención de acceso público a este bucket
y haz clic en Confirmar en la ventana emergenteSe impedirá el acceso público
si se solicita. - Repite los pasos para crear otro bucket en la región
EU
con un nombre único que incluya la ubicación como sufijo del bucket (p. ej., 6552634-ue).
Se utilizarán estos buckets para copiar las tablas exportadas entre las distintas ubicaciones (es decir, de EE.UU. a la UE).
Haz clic en Revisar mi progreso para verificar el objetivo.
Tarea 3: Conjunto de datos de destino de BigQuery
-
Crea el conjunto de datos de destino de BigQuery en la UE desde la nueva IU web de BigQuery.
-
Ve a Menú de navegación > BigQuery.
Se abrirá el cuadro de mensaje Te damos la bienvenida a BigQuery en la consola de Cloud, que contiene un vínculo a la guía de inicio rápido y enumera las actualizaciones de la IU.
-
Haz clic en Listo.
-
Luego, haz clic en los tres puntos junto al ID del proyecto de Qwiklabs y selecciona Crear conjunto de datos.
- Usa el ID del conjunto de datos nyc_tlc_EU, para el tipo de ubicación, elige Multirregional y selecciona UE en el menú desplegable.
- Haz clic en CREAR CONJUNTO DE DATOS.
Haz clic en Revisar mi progreso para verificar el objetivo.
Tarea 4: Airflow y conceptos básicos: una breve introducción
- Mientras desarrollas tu entorno, consulta el archivo de muestra que utilizarás en este lab.
Airflow es una plataforma para crear, programar y supervisar flujos de trabajo de forma programática.
Utiliza Airflow para crear flujos de trabajo como grafos acíclicos dirigidos (DAG) de tareas. El programador de Airflow ejecuta tus tareas en un array de trabajadores mientras sigue las dependencias especificadas.
Conceptos básicos
DAG: Un grafo acíclico dirigido es una colección de tareas organizadas para reflejar sus relaciones y dependencias.
Operador: Es la descripción de una sola tarea; suele ser atómico. Por ejemplo, BashOperator se usa para ejecutar el comando Bash.
Tarea: Es una instancia con parámetros de un operador; un nodo en el DAG.
Instancia de tarea: Es la ejecución específica de una tarea, caracterizada como un DAG, una tarea y un momento determinado. Tiene un estado indicativo: running, success, failed, skipped, …
Obtén más información sobre los conceptos de Airflow en la documentación de los conceptos.
Tarea 5: Define el flujo de trabajo
Los flujos de trabajo de Cloud Composer constan de DAG (grafos acíclicos dirigidos). El código que aparece en bq_copy_across_locations.py es el código del flujo de trabajo, también conocido como DAG. Abre el archivo para ver cómo se conforma. Luego, podrás conocer algunos de los componentes clave del archivo.
Para organizar todas las tareas del flujo de trabajo, el DAG importa los siguientes operadores:
-
DummyOperator
: Crea tareas iniciales y finales ficticias para una mejor representación visual del DAG. -
BigQueryToCloudStorageOperator
: Exporta tablas de BigQuery a buckets de Cloud Storage con el formato Avro. -
GoogleCloudStorageToGoogleCloudStorageOperator
: Copia los archivos entre los buckets de Cloud Storage. -
GoogleCloudStorageToBigQueryOperator
: Importa tablas desde archivos Avro al bucket de Cloud Storage.
- En este ejemplo, se define la función
read_master_file()
de modo que se pueda leer el archivo de configuración y crear la lista de tablas para copiarla:
- El nombre del DAG es
bq_copy_us_to_eu_01
. No se programó el DAG de forma predeterminada, de modo que se lo debe activar manualmente.
- Para definir el complemento de Cloud Storage, se define la clase
Cloud StoragePlugin(AirflowPlugin)
y se asignan el hook y el operador descargados desde la rama 1.10-stable de Airflow.
Tarea 6. Consulta información del entorno
-
Vuelve a Composer para comprobar el estado de tu entorno.
-
Una vez que se haya creado tu entorno, haz clic en el nombre para ver sus detalles.
La página Detalles del entorno brinda información como la URL de la IU web de Airflow, el ID de clúster de Google Kubernetes Engine y el nombre del bucket de Cloud Storage conectado a la carpeta de DAG.
Se deben completar los siguientes pasos en Cloud Shell.
Crea un entorno virtual
Se utilizan entornos virtuales de Python para aislar del sistema la instalación de paquetes.
- Instala el entorno
virtualenv
:
- Crea el entorno virtual:
- Activa el entorno virtual.
Tarea 7. Configura el bucket de DAG de Cloud Storage
- En Cloud Shell, ejecuta lo siguiente para copiar el nombre del bucket de DAG que se encuentra en tu página Detalles del entorno y establecer una variable para hacer referencia a ella en Cloud Shell:
us-east1-composer-advanced-YOURDAGSBUCKET-bucket
(YOURDAGSBUCKET es el nombre de tu bucket de DAG).En este lab, deberás utilizar esta variable algunas veces.
Tarea 8. Configura variables de Airflow
Las variables de Airflow son un concepto específico de Airflow que difiere de las variables de entorno. En este paso, establecerás las siguientes tres variables de Airflow que utiliza el DAG que implementaremos: table_list_file_path
, gcs_source_bucket
y gcs_dest_bucket
.
Clave | Valor | Detalles |
---|---|---|
table_list_file_path |
/home/airflow/gcs/dags/bq_copy_eu_to_us_sample.csv | Archivo CSV que indica las tablas de origen y destino, incluido el conjunto de datos |
gcs_source_bucket |
{ID ÚNICO}-us | Bucket de Cloud Storage para exportar tabledest_bbucks de BigQuery desde el origen |
gcs_dest_bucket |
{ID ÚNICO}-eu | Bucket de Cloud Storage para importar tablas de BigQuery en el destino |
El siguiente comando de gcloud composer
ejecuta las variables del subcomando de la CLI de Airflow. El subcomando pasa los argumentos a la herramienta de línea de comandos de gcloud
.
Para establecer las tres variables, ejecutarás composer command
una vez por cada fila de la tabla anterior. Esta es la forma del comando:
(ERROR: gcloud crashed (TypeError): 'NoneType' object is not callable)
. Este es un problema conocido relacionado con el uso de entornos de Composer de gcloud que se ejecutaron
con la versión 410.0.0 de gcloud. Tus variables se definirán según corresponda así te aparezca este mensaje de error.
-
ENVIRONMENT_NAME
es el nombre del entorno. -
LOCATION
es la región de Compute Engine en la que se encuentra el entorno. Para el comando de gcloud composer, debes incluir la marca--location
o configurar la ubicación predeterminada antes de ejecutar el comando de gcloud. -
KEY
yVALUE
especifican la variable y su valor para configurarla. Incluye un espacio, dos guiones y un espacio (--
) entre los argumentos relacionados con el comando degcloud
a la izquierda y los argumentos relacionados con el subcomando de Airflow a la derecha. Además, incluye un espacio entre los argumentos deKEY
yVALUE
; usa el comandogcloud composer environments run
con el subcomando de las variables.
Ejecuta estos comandos en Cloud Shell. Para ello, reemplaza gcs_source_bucket
y gcs_dest_bucket
por los nombres de los buckets que creaste en la tarea 2.
Para ver el valor de una variable, ejecuta las variables de subcomando de la CLI de Airflow con el argumento get
o usa la IU de Airflow.
Por ejemplo, ejecuta lo siguiente:
Tarea 9: Sube el DAG y las dependencias a Cloud Storage
- Copia los archivos de muestra de los documentos de Python de Google Cloud en Cloud Shell:
- Sube una copia del hook y del operador de terceros a la carpeta de complementos de tu bucket de DAG de Composer perteneciente a Cloud Storage:
- Luego, sube el DAG y el archivo de configuración al bucket de DAG de Cloud Storage de tu entorno:
Cloud Composer registra automáticamente el DAG en tu entorno de Airflow, y los cambios en el DAG tardan de 3 a 5 minutos. Puedes ver el estado de la tarea en la interfaz web de Airflow y confirmar que el DAG no esté programado según la configuración.
Tarea 10. Usa la IU de Airflow
Realiza lo siguiente para acceder a la interfaz web de Airflow con la consola de Cloud:
- Regresa a la página Entornos de Composer.
- En la columna Webserver de Airflow del entorno, haz clic en el vínculo Airflow.
- Haz clic en tus credenciales del lab.
- Se abrirá la IU web de Airflow en una nueva ventana del navegador. Seguirán cargándose los datos cuando llegues a este punto. Mientras tanto, puedes continuar con el lab.
Visualiza las variables
Las variables que configuraste anteriormente se conservan en tu entorno.
- Para visualizar las variables, selecciona Administrador > Variables en la barra de menú de Airflow.
Cómo activar el DAG para que se ejecute de forma manual
-
Haz clic en la pestaña DAG y espera a que se terminen de cargar los vínculos.
-
Para activar el DAG de forma manual, haz clic en el botón de reproducción de
composer_sample_bq_copy_across_locations
:
- Haz clic en Activar DAG para confirmar esta acción.
Haz clic en Revisar mi progreso para verificar el objetivo.
Cómo explorar las ejecuciones del DAG
Cuando subas tu archivo DAG a la carpeta de DAG en Cloud Storage, Cloud Composer analizará el archivo. Si no se detectan errores, aparecerá el nombre del flujo de trabajo en la lista de DAG, y se pondrá el flujo de trabajo en cola para que se lo ejecute inmediatamente, siempre y cuando se cumplan las condiciones del programa (en este caso, la configuración debe ser “Ninguna”).
El estado de las ejecuciones se pondrá verde cuando presiones el botón de reproducción:
- Haz clic en el nombre del DAG para abrir su página de detalles. En esta página, se incluye una representación gráfica de las dependencias y tareas del flujo de trabajo.
- En la barra de herramientas, haz clic en Grafo y desplaza el mouse sobre el gráfico de cada tarea para conocer su estado. Ten en cuenta que el borde de cada tarea también indica el estado (borde verde: en ejecución; rojo: con errores; etcétera).
Para volver a ejecutar el flujo de trabajo desde la vista del Grafo, haz lo siguiente:
- En la Vista de gráfico de la IU de Airflow, haz clic en el gráfico de inicio.
- Haz clic en Borrar para restablecer todas las tareas y, luego, en Aceptar para confirmar.
Actualiza el navegador mientras se ejecuta el proceso para ver la información más reciente.
Tarea 11. Valida los resultados
Para comprobar el estado y los resultados del flujo de trabajo, dirígete a estas páginas de la consola de Cloud:
- Se copiaron las tablas exportadas del bucket de EE.UU. al de Cloud Storage de la UE. Haz clic en Cloud Storage para ver los archivos Avro intermedios en los buckets de origen (EE.UU.) y destino (UE).
- Se importó la lista de tablas al conjunto de datos de destino de BigQuery. Haz clic en BigQuery y, luego, en el nombre de tu proyecto y en el conjunto de datos nyc_tlc_EU para asegurarte de poder acceder a las tablas desde el conjunto de datos que creaste.
Borre el entorno de Cloud Composer
- Vuelva a la página de Entornos en Compositor.
- Seleccione la casilla junto a su entorno de Compositor.
- Haga clic en BORRAR.
- Confirme la ventana emergente haciendo clic en BORRAR otra vez.
¡Felicitaciones!
Completaste este lab avanzado y copiaste 2 tablas de EE.UU. a la UE de manera programática. Este lab se basa en esta entrada de blog de David Sabater Dinter.
Próximos pasos
- Obtén más información para usar Airflow en el sitio web de Airflow o en el proyecto de GitHub de Airflow.
- Existen muchos otros recursos disponibles para Airflow, como el grupo de discusión.
- Suscríbete a las listas de distribución de confirmaciones y desarrolladores de Apache (envía correos electrónicos a dev-subscribe@airflow.incubator.Apache.org y commits-subscribe@airflow.incubator.Apache.org para suscribirte a ambas).
- Regístrate para crear una cuenta de JIRA para Apache y reabre cualquier problema que sea de tu interés en el proyecto de JIRA de Apache Airflow.
- Para obtener información sobre la IU de Airflow, consulta Cómo acceder a la interfaz web.
Capacitación y certificación de Google Cloud
Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.
Última actualización del manual: 13 de diciembre de 2023
Prueba más reciente del lab: 13 de diciembre de 2023
Copyright 2024 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.