GSP283
Descripción general
Imagina que tienes conjuntos de datos en diferentes ubicaciones del mundo y
que estos datos se encuentran en buckets de Google Cloud Storage o en tablas
de BigQuery. ¿Cómo puedes organizarlos para que se consoliden y analicen para
proporcionar estadísticas sobre tu negocio?
Managed Service para Apache Airflow te ayuda a crear, programar y supervisar
flujos de trabajo para mover y procesar datos en diferentes regiones y
sistemas de almacenamiento con una interfaz gráfica intuitiva. Proporciona un
framework flexible con operadores e integraciones que permiten la
transferencia confiable de datos entre servicios como BigQuery y Cloud
Storage.
En este lab, crearás y ejecutarás un flujo de trabajo de
Apache Airflow con
Managed Service para Apache Airflow
que completará las siguientes tareas:
-
Leer un archivo de configuración que proporciona una lista de tablas para
copiar
-
Exportar a
Cloud Storage la lista
de tablas de un conjunto de datos de
BigQuery ubicado en
EE.UU.
-
Copiar las tablas exportadas del bucket de Cloud Storage de EE.UU. a la UE
-
Importar la lista de tablas al conjunto de datos de destino de BigQuery de
la UE

Actividades
En este lab, aprenderás a realizar las siguientes tareas:
- Crear un entorno de Airflow administrado
- Crear buckets de Cloud Storage
- Crear conjuntos de datos de BigQuery
-
Crear y ejecutar flujos de trabajo de Apache Airflow en Managed Airflow para
mover datos entre Cloud Storage y BigQuery
Configuración y requisitos
Antes de hacer clic en el botón Comenzar lab
Lee estas instrucciones. Los labs cuentan con un temporizador que no se puede pausar. El temporizador, 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.
Nota: Usa una ventana del navegador privada o de incógnito (opción recomendada) para ejecutar el lab. Así evitarás conflictos entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.
- Tiempo para completar el lab (recuerda que, una vez que comienzas un lab, no puedes pausarlo).
Nota: Usa solo la cuenta de estudiante para este lab. Si usas otra cuenta de Google Cloud, es posible que se apliquen cargos a esa cuenta.
Cómo iniciar tu lab y acceder a la consola de Google Cloud
-
Haz clic en el botón Comenzar lab. Si debes pagar por el lab, se abrirá un diálogo para que selecciones la forma de pago.
A la izquierda, se encuentra el panel Detalles del lab, que tiene estos elementos:
- El botón para abrir la consola de Google Cloud
- El tiempo restante
- Las credenciales temporales que debes usar para el lab
- Otra información para completar el lab, si es necesaria
-
Haz clic en Abrir la consola de Google Cloud (o haz clic con el botón derecho y selecciona Abrir el vínculo en una ventana de incógnito si ejecutas el navegador Chrome).
El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.
Sugerencia: Ordena las pestañas en ventanas separadas, una junto a la otra.
Nota: Si ves el diálogo Elegir una cuenta, haz clic en Usar otra cuenta.
-
De ser necesario, copia el nombre de usuario a continuación y pégalo en el diálogo Acceder.
{{{user_0.username | "Username"}}}
También puedes encontrar el nombre de usuario en el panel Detalles del lab.
-
Haz clic en Siguiente.
-
Copia la contraseña que aparece a continuación y pégala en el diálogo Te damos la bienvenida.
{{{user_0.password | "Password"}}}
También puedes encontrar la contraseña en el panel Detalles del lab.
-
Haz clic en Siguiente.
Importante: Debes usar las credenciales que te proporciona el lab. No uses las credenciales de tu cuenta de Google Cloud.
Nota: Usar tu propia cuenta de Google Cloud para este lab podría generar cargos adicionales.
-
Haz clic para avanzar por las páginas siguientes:
- Acepta los Términos y Condiciones.
- No agregues opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
- No te registres para obtener pruebas gratuitas.
Después de un momento, se abrirá la consola de Google Cloud en esta pestaña.
Nota: Para acceder a los productos y servicios de Google Cloud, haz clic en el menú de navegación o escribe el nombre del servicio o producto en el campo Buscar.
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.
-
Haz clic para avanzar por las siguientes ventanas:
- Continúa en la ventana de información de Cloud Shell.
- Autoriza a Cloud Shell para que use tus credenciales para realizar llamadas a la API 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:
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
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):
gcloud auth list
- Haz clic en Autorizar.
Resultado:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- Puedes solicitar el ID del proyecto con este comando (opcional):
gcloud config list project
Resultado:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Nota: Para obtener toda la documentación de gcloud, en Google Cloud, consulta la guía con la descripción general de gcloud CLI.
Tarea 1: Crea un entorno de Managed Airflow
-
En la barra del título de la consola de Google Cloud, escribe
Managed Airflow en el campo de búsqueda y, luego, haz
clic en Managed Airflow en la sección Productos y páginas
para crear un entorno de Managed Airflow.
-
Luego, haz clic en Crear entorno.
-
En el menú desplegable, selecciona Managed Airflow Gen 3.
-
Configura los siguientes parámetros para tu entorno:
-
Nombre: airflow-advanced-lab
-
Ubicación:
-
Versión de la imagen:
composer-3-airflow-2.n.n-build.n
(selecciona la imagen con el número más alto que esté
disponible)
-
Cuenta de servicio: Cuenta de servicio predeterminada
de Compute Engine
-
Modo de resiliencia: Selecciona
Resiliencia estándar y, para
Zona de la base de datos de Airflow, selecciona
.
-
En Recursos del entorno, selecciona
Pequeño.
-
En Control de acceso a la red del servidor web,
selecciona
Permitir acceso a todas las direcciones IP.
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.
Nota: El entorno puede demorar hasta
20 minutos en completar el proceso de configuración. Continúa
con la siguiente sección:
Crea buckets de Cloud Storage y conjuntos de datos de destino de
BigQuery.
Haz clic en Revisar mi progreso para verificar el objetivo.
Crear un entorno de Managed Airflow
Tarea 2: Crea buckets de Cloud Storage
En esta tarea, crearás dos buckets multirregionales de Cloud Storage. Estos
buckets se usarán para copiar las tablas exportadas entre las distintas
ubicaciones; p. ej., de EE.UU. a la UE.
Crea un bucket en EE.UU.
-
Ve a Cloud Storage > Buckets y haz clic en
Crear.
-
Asígnale al bucket un nombre único que incluya el ID del proyecto (p. ej.,
-us).
-
Para el Tipo de ubicación, selecciona
us (múltiples 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 emergente
Se impedirá el acceso público si se solicita.
Crea un bucket en la UE
Repite los pasos para crear otro bucket en la región EU. El
nombre único debe incluir la ubicación como sufijo de tu bucket (p. ej.,
-eu).
Haz clic en Revisar mi progreso para verificar el objetivo.
Crear dos buckets de Cloud Storage
Tarea 3: Crea el 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 un conjunto de datos.
-
En ID de conjunto de datos, escribe
nyc_tlc_EU. En Ubicación de los datos,
selecciona EU en el menú desplegable en
Multirregiones.
- Haz clic en Crear conjunto de datos.
Haz clic en Revisar mi progreso para verificar el objetivo.
Crear un conjunto de datos de BigQuery
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 en Apache Airflow se componen de
DAG (grafos acíclicos dirigidos). El código en
bq_copy_across_locations.py
representa el flujo de trabajo, también conocido como DAG. Abre el archivo
para comprender cómo se construye el DAG. En la siguiente sección, se
proporciona un análisis detallado de sus componentes clave.
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:
#
--------------------------------------------------------------------------------
# Funciones #
--------------------------------------------------------------------------------
def read_table_list(table_list_file): """ Lee el archivo CSV principal que
servirá para crear tareas de Airflow en el DAG de forma dinámica. :param
table_list_file: (Cadena) La ubicación del archivo principal, p. ej.,
'/home/airflow/framework/master.csv' :return master_record_all: (Lista) Lista
de los diccionarios de Python que contienen la información de una sola fila
del archivo CSV principal. """ master_record_all = [] logger.info('Reading
table_list_file from : %s' % str(table_list_file)) try: with
open(table_list_file, 'rb') as csv_file: csv_reader = csv.reader(csv_file)
next(csv_reader) # Omite los encabezados for row in csv_reader:
logger.info(row) master_record = { 'table_source': row[0], 'table_dest':
row[1] } master_record_all.append(master_record) return master_record_all
except IOError as e: logger.error('Error opening table_list_file %s: ' % str(
table_list_file), e)
-
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.
default_args = { 'owner': 'airflow', 'start_date': datetime.today(),
'depends_on_past': False, 'email': [''], 'email_on_failure': False,
'email_on_retry': False, 'retries': 1, 'retry_delay': timedelta(minutes=5), }
# Objeto DAG. with models.DAG('bq_copy_us_to_eu_01',
default_args=default_args, schedule_interval=None) as dag:
-
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.
# Importa el operador desde plugins from gcs_plugin.operators import
gcs_to_gcs
Tarea 6. Ve la información del entorno
-
Vuelve a Managed Airflow 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.
Nota: Los servicios administrados de Apache Airflow usan
Cloud Storage
para almacenar DAG, también conocidos como flujos de trabajo. Cada
entorno tiene un bucket de Cloud Storage asociado, y Airflow solo programa los
DAG presentes en ese bucket.
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:
sudo apt-get install -y virtualenv
- Crea el entorno virtual:
python3 -m venv venv
- Activa el entorno virtual:
source venv/bin/activate
Tarea 7: Crea una variable para 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:
Nota: Asegúrate de reemplazar el nombre de tu bucket de DAG
en el siguiente comando. Ve al menú de navegación >
Cloud Storage > Buckets. Verás algo similar
a
-airflow-advance-YOURDAGSBUCKET-bucket
(YOURDAGSBUCKET-bucket).
DAGS_BUCKET=<your DAGs bucket name>
En este lab, deberás usar 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 tablas 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:
gcloud composer environments run ENVIRONMENT_NAME \ --location LOCATION
variables -- \ set KEY VALUE
Puedes ignorar de forma segura este error de gcloud:
(ERROR: gcloud crashed (TypeError): 'NoneType' object is not
callable). Este es un
problema conocido
relacionado con el uso de
entornos de Managed Service for Airflow 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 y VALUE especifican la variable y su valor
para configurarla. Incluye un espacio, dos guiones y un espacio (
-- ) entre los argumentos relacionados con el comando de
gcloud a la izquierda y los argumentos relacionados con el
subcomando de Airflow a la derecha. Además, incluye un espacio entre los
argumentos de KEY y VALUE; usa el comando
gcloud 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.
gcloud composer environments run airflow-advanced-lab \ --location {{{
project_0.default_region | "REGION" }}} variables -- \ set
table_list_file_path /home/airflow/gcs/dags/bq_copy_eu_to_us_sample.csv gcloud
composer environments run airflow-advanced-lab \ --location {{{
project_0.default_region | "REGION" }}} variables -- \ set gcs_source_bucket
{UNIQUE ID}-us gcloud composer environments run airflow-advanced-lab \
--location {{{ project_0.default_region | "REGION" }}} variables -- \ set
gcs_dest_bucket {UNIQUE_ID}-eu
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:
gcloud composer environments run airflow-advanced-lab \ --location {{{
project_0.default_region | "REGION" }}} variables -- \ get gcs_source_bucket
Nota: Asegúrate de definir las tres variables de Airflow que
usa el DAG.
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:
cd ~ gcloud storage cp -r gs://spls/gsp283/python-docs-samples .
-
Sube una copia del hook y del operador de terceros a la carpeta de
complementos de tu bucket de DAG de Airflow perteneciente a Cloud Storage:
gcloud storage cp -r python-docs-samples/third_party/apache-airflow/plugins/*
gs://$DAGS_BUCKET/plugins
-
Luego, sube el DAG y el archivo de configuración al bucket de DAG de Cloud
Storage de tu entorno:
gcloud storage cp
python-docs-samples/composer/workflows/bq_copy_across_locations.py
gs://$DAGS_BUCKET/dags gcloud storage cp
python-docs-samples/composer/workflows/bq_copy_eu_to_us_sample.csv
gs://$DAGS_BUCKET/dags
Los servicios administrados de Apache Airflow detectan y registran
automáticamente los DAG en el entorno de Airflow, y las actualizaciones suelen
reflejarse en pocos minutos. Puedes supervisar el estado de la tarea a través
de la interfaz web de Airflow y verificar que el comportamiento de
programación del DAG coincida con su configuración definida.
Tarea 10: Explora la IU de Airflow
Sigue estos pasos para acceder a la interfaz web de Airflow con la consola de
Cloud:
- Regresa a la página Entornos en Managed Airflow.
-
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.
Subir el DAG y las dependencias a Cloud Storage
Cómo explorar las ejecuciones del DAG
Cuando subes tu archivo DAG a la carpeta de DAGs (ubicación de almacenamiento
configurada), Apache Airflow lo analiza. Si no se detectan errores, el flujo
de trabajo aparecerá en la lista de DAG y se pondrá en cola para que se
ejecute según la configuración de su programación. Si el programa se establece
en Ninguno, el flujo de trabajo no se ejecutará automáticamente y debe
activarse de forma manual.
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 Graph 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:
running; rojo: failed; etcétera).

Para volver a ejecutar el flujo de trabajo desde la vista
Graph, haz lo siguiente:
-
En la vista de grafo de la IU de Airflow, haz clic en el gráfico de
inicio.
-
Haz clic en Clear > Clear existing task para restablecer
todas las tareas y, luego, en Clear DAG run 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.
Borra el entorno de Cloud Composer
-
Regresa a la página Entornos en Cloud Composer.
-
Selecciona tu entorno de Cloud Composer.
-
Haz clic en Borrar.
-
En el cuadro de diálogo que se abre, haz clic en Borrar para confirmar que deseas continuar borrando el entorno de Cloud Composer.
¡Felicitaciones!
Copiaste las tablas de forma programática de EE.UU. a la UE. Este lab se basa
en esta
entrada de blog
de David Sabater Dinter.
Próximos pasos
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: 20 de abril de 2026
Prueba más reciente del lab: 20 de abril de 2026
Copyright 2026 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.