Managed Airflow (3ª gen.) | Managed Airflow (2ª gen.) | Managed Airflow (1ª gen. heredada)
En esta página, se explica cómo transferir DAG, datos y configuración de tus entornos existentes de Managed Airflow (1ª gen. heredada) y Airflow 2 a Managed Airflow (3ª gen.) y Airflow 2 con instantáneas.
Otras guías de migración
| De | A | Método | Guía |
|---|---|---|---|
| Managed Airflow (3ª gen.), Airflow 2 | Managed Airflow (3ª gen.), Airflow 3 | Transferencia manual en paralelo | Guía de migración manual |
| Managed Airflow (2ª gen.) | Managed Airflow (3ª gen.) | En paralelo, con la secuencia de comandos de migración | Guía de migración de secuencias de comandos |
| Managed Airflow (2ª gen.) | Managed Airflow (3ª gen.) | En paralelo, con instantáneas | Guía de migración de instantáneas |
| Managed Airflow (1ª gen. heredada), Airflow 2 | Managed Airflow (3ª gen.) | En paralelo, con instantáneas | Esta guía |
| Managed Airflow (1ª gen. heredada), Airflow 2 | Managed Airflow (2ª gen.) | En paralelo, con instantáneas | Guía de migración de instantáneas |
| Managed Airflow (1ª gen. heredada), Airflow 2 | Managed Airflow (2ª gen.) | Transferencia manual en paralelo | Guía de migración manual |
| Managed Airflow (1ª gen. heredada), Airflow 1 | Managed Airflow (2ª gen.), Airflow 2 | En paralelo, con instantáneas | Guía de migración de instantáneas |
| Managed Airflow (1ª gen. heredada), Airflow 1 | Managed Airflow (2ª gen.), Airflow 2 | Transferencia manual en paralelo | Guía de migración manual |
| Managed Airflow (1ª gen. heredada), Airflow 1 | Managed Airflow (1ª gen. heredada), Airflow 2 | Transferencia manual en paralelo | Guía de migración manual |
Antes de comenzar
Managed Airflow admite la migración en paralelo de Managed Airflow (1ª gen. heredada) a Managed Airflow (3ª gen.). No es posible actualizar de Managed Airflow (1ª gen. heredada) a Managed Airflow (3ª gen.) en el lugar.
Consulta la lista de diferencias entre Managed Airflow (1ª gen. heredada), Managed Airflow (2ª gen.) y Managed Airflow (3ª gen.).
El tamaño máximo de la base de datos de Airflow que admite instantáneas es de 20 GB. Si la base de datos de tu entorno ocupa más de 20 GB, reduce el tamaño de la base de datos de Airflow.
La cantidad total de objetos en las carpetas
/dags,/pluginsy/datadel bucket del entorno debe ser inferior a 100,000 para crear instantáneas.Si usas el mecanismo XCom para transferir archivos, asegúrate de que lo usas según los lineamientos de Airflow. La transferencia de archivos grandes o una gran cantidad de archivos con XCom afecta el rendimiento de la base de datos de Airflow y puede provocar fallas cuando se cargan instantáneas o se actualiza tu entorno. Considera usar alternativas como Cloud Storage para transferir grandes volúmenes de datos.
Asegúrate de que tus DAG sean compatibles con Managed Airflow (3ª gen.)
Para asegurarte de que tus DAG sean compatibles con Managed Airflow (3ª gen.), sigue estas sugerencias:
La [lista de paquetes][cc-versions] en el entorno de Managed Airflow (3ª gen.) puede ser diferente a la de tu entorno de Managed Airflow (1ª gen. heredada). Esto podría afectar la compatibilidad de tus DAG con Managed Airflow (3ª gen.).
Airflow administrado carga las anulaciones de configuración, las variables de entorno y los paquetes de PyPI desde la instantánea de tu entorno de Airflow administrado (1ª gen. heredada) a Airflow administrado (3ª gen.) sin cambiarlos ni ajustarlos para la compatibilidad. Si los paquetes de PyPI personalizados causan conflictos de dependencias, puedes omitir su instalación cuando cargues la instantánea.
En Airflow administrado (3ª gen.), el clúster del entorno se encuentra en el proyecto del arrendatario. Asegúrate de que tus DAG sean compatibles con este cambio. En particular,
KubernetesPodOperatorlas cargas de trabajo ahora se ajustan de forma independiente de tu entorno y no es posible usar configuraciones de afinidad de Pod.En Managed Airflow (3ª gen.), no se puede acceder directamente a la base de datos de Airflow. Asegúrate de que tus DAG sean compatibles con este cambio.
Pausa los DAG en tu entorno de Managed Airflow (1ª gen. heredada)
Para evitar ejecuciones duplicadas de DAG, pausa todos los DAG en tu entorno de Managed Airflow (1ª gen. heredada) antes de guardar su instantánea. Omite el DAG de supervisión de actividad (airflow_monitoring), que se usa para fines de supervisión y no se incluye en las instantáneas del entorno.
Puedes usar cualquiera de las siguientes opciones:
En la interfaz web de Airflow, ve a DAG y pausa todos los DAG de forma manual.
Usa la secuencia de comandos composer_dags para pausar todos los DAG:
python3 composer_dags.py --environment COMPOSER_1_ENV \ --project PROJECT_ID \ --location COMPOSER_1_LOCATION \ --operation pauseReemplaza lo siguiente:
COMPOSER_1_ENVcon el nombre de tu entorno de Managed Airflow (1ª gen. heredada).PROJECT_IDpor el ID del proyecto.COMPOSER_1_LOCATIONpor la región en la que se encuentra el entorno.
(Versiones de Airflow 2.9.1 y posteriores) Si hay errores de cuota mientras pausas una gran cantidad de DAG, puedes usar los siguientes comandos de la CLI de Airflow para pausar todos los DAG a la vez:
gcloud composer environments run COMPOSER_1_ENV dags pause \ --project PROJECT_ID \ --location COMPOSER_1_LOCATION \ -- -y --treat-dag-id-as-regex ".*"(Versiones de Airflow anteriores a la 2.9.1) Si hay errores de cuota mientras pausas una gran cantidad de DAG, es posible pausar los DAG con la API de REST de Airflow. Consulta también Cómo probar la API en la documentación de Airflow.
Guarda la instantánea de tu entorno de Managed Airflow (1ª gen. heredada)
Console
Crea una instantánea de tu entorno:
En Google Cloud console, ve a la página Entornos.
En la lista de entornos, haz clic en el nombre de tu entorno de Managed Airflow (1ª gen. heredada). Se abrirá la página Detalles del entorno.
Haz clic en Crear instantánea.
En el cuadro de diálogo Crear instantánea, haz clic en Enviar. En esta guía, guardarás la instantánea en el bucket del entorno de Managed Airflow (1ª gen. heredada), pero puedes seleccionar una ubicación diferente si lo deseas.
Espera hasta que Managed Airflow cree la instantánea.
gcloud
Obtén el URI del bucket de tu entorno de Managed Airflow (1ª gen. heredada):
Ejecuta el siguiente comando:
gcloud composer environments describe COMPOSER_1_ENV \ --location COMPOSER_1_LOCATION \ --format="value(config.dagGcsPrefix)"Reemplaza lo siguiente:
COMPOSER_1_ENVcon el nombre de tu entorno de Managed Airflow (1ª gen. heredada).COMPOSER_1_LOCATIONpor la región en la que se encuentra el entorno.
En el resultado, quita la carpeta
/dags. El resultado es el URI del bucket de tu entorno de Managed Airflow (1ª gen. heredada).Por ejemplo, cambia
gs://us-central1-example-916807e1-bucket/dagsags://us-central1-example-916807e1-bucket.
Crea una instantánea de tu entorno de Managed Airflow (1ª gen. heredada):
gcloud composer environments snapshots save \ COMPOSER_1_ENV \ --location COMPOSER_1_LOCATION \ --snapshot-location "COMPOSER_1_SNAPSHOTS_FOLDER"Reemplaza lo siguiente:
COMPOSER_1_ENVcon el nombre de tu entorno de Managed Airflow (1ª gen. heredada).COMPOSER_1_LOCATIONcon la región en la que se encuentra el entorno de Managed Airflow (1ª gen. heredada).COMPOSER_1_SNAPSHOTS_FOLDERpor el URI del bucket de tu entorno de Managed Airflow (1ª gen. heredada). En esta guía, guardarás la instantánea en el bucket del entorno de Managed Airflow (1ª gen. heredada), pero puedes seleccionar una ubicación diferente si lo deseas. Si especificas una ubicación personalizada, las cuentas de servicio de ambos entornos deben tener permisos de lectura y escritura para cualquier ubicación disponible para las cuentas de servicio de ambos entornos.
Crea un entorno de Managed Airflow (3ª gen.)
Crea un entorno de Managed Airflow (3ª gen.). Puedes comenzar con un ajuste preestablecido del entorno que coincida con las demandas de recursos esperadas y, luego, ajustar y optimizar aún más tu entorno.
No es necesario que especifiques anulaciones de configuración ni variables de entorno, ya que las reemplazarás más adelante cuando cargues la instantánea de tu entorno de Managed Airflow (1ª gen. heredada).
Carga la instantánea en tu entorno de Managed Airflow (3ª gen.)
Console
Para cargar la instantánea en tu entorno de Managed Airflow (3ª gen.), haz lo siguiente:
En Google Cloud console, ve a la página Entornos.
En la lista de entornos, haz clic en el nombre de tu entorno de Managed Airflow (3ª gen.). Se abrirá la página Detalles del entorno.
Haz clic en Cargar instantánea.
En el cuadro de diálogo Cargar instantánea, haz clic en Navegar.
Selecciona la carpeta con la instantánea. Si usas la ubicación predeterminada para esta guía, esta carpeta se encuentra en el bucket de tu entorno de Managed Airflow (1ª gen. heredada) en la carpeta
/snapshots, y su nombre es la marca de tiempo de la operación de guardado de la instantánea. Por ejemplo,us-central1-example-916807e1-bucket/snapshots_example-project_us-central1_example-environment/2022-01-05T18-59-00.Haz clic en Cargar y espera hasta que Managed Airflow cargue la instantánea.
gcloud
Carga la instantánea de tu entorno de Managed Airflow (1ª gen. heredada) en tu entorno de Managed Airflow (3ª gen.):
gcloud composer environments snapshots load \
COMPOSER_3_ENV \
--location COMPOSER_3_LOCATION \
--snapshot-path "SNAPSHOT_PATH"
Reemplaza lo siguiente:
COMPOSER_3_ENVpor el nombre de tu entorno de Managed Airflow (3ª gen.).COMPOSER_3_LOCATIONcon la región en la que se encuentra el entorno de Managed Airflow (3ª gen.).SNAPSHOT_PATHpor el URI del bucket de tu entorno de Managed Airflow (1ª gen. heredada), seguido de la ruta de acceso a la instantánea. Por ejemplo,gs://us-central1-example-916807e1-bucket/snapshots/example-project_us-central1_example-environment_2022-01-05T18-59-00.
Reanuda los DAG en el entorno de Airflow administrado (3ª gen.)
Puedes usar cualquiera de las siguientes opciones:
En la interfaz web de Airflow, ve a DAG y reactiva todos los DAG de forma manual uno por uno.
Usa la secuencia de comandos composer_dags para reanudar todos los DAG:
python3 composer_dags.py --environment COMPOSER_3_ENV \ --project PROJECT_ID \ --location COMPOSER_3_LOCATION \ --operation unpauseReemplaza lo siguiente:
COMPOSER_3_ENVpor el nombre de tu entorno de Managed Airflow (3ª gen.).PROJECT_IDpor el ID del proyecto.COMPOSER_3_LOCATIONpor la región en la que se encuentra el entorno.
(Versiones de Airflow 2.9.1 y posteriores) Si hay errores de cuota mientras reactivas una gran cantidad de DAG, puedes usar los siguientes comandos de la CLI de Airflow para reactivar todos los DAG a la vez:
gcloud composer environments run COMPOSER_3_ENV dags unpause \ --project PROJECT_ID \ --location COMPOSER_3_LOCATION \ -- -y --treat-dag-id-as-regex ".*"(Versiones de Airflow anteriores a la 2.9.1) Si hay errores de cuota mientras reactivas una gran cantidad de DAG, es posible reactivar los DAG con la API de REST de Airflow. Consulta también Cómo probar la API en la documentación de Airflow.
Verifica si hay errores de DAG
En la interfaz web de Airflow, ve a DAG y verifica si hay errores de sintaxis de DAG informados.
Verifica que las ejecuciones de DAG estén programadas a la hora correcta.
Espera a que se produzcan las ejecuciones de DAG en el entorno de Managed Airflow (3ª gen.) y verifica si se realizaron correctamente. Si una ejecución de DAG se realizó correctamente, no la reanudes en el entorno de Airflow administrado (1ª gen. heredada). Si lo haces, se producirá una ejecución de DAG para la misma hora y fecha en tu entorno de Airflow administrado (1ª gen. heredada).
Si falla una ejecución de DAG específica, intenta solucionar el DAG hasta que se ejecute correctamente en Airflow administrado (3ª gen.).
Supervisa tu entorno de Managed Airflow (3ª gen.)
Después de transferir todos los DAG y la configuración al entorno de Managed Airflow (3ª gen.), supervisa si hay problemas potenciales, ejecuciones de DAG fallidas y el estado general del entorno.
Si el entorno de Managed Airflow (3ª gen.) se ejecuta sin problemas durante un período suficiente, considera borrar el entorno de Managed Airflow (1ª gen. heredada).
¿Qué sigue?
- Soluciona problemas de los DAG
- Solución de problemas de creación de entornos
- Solución de problemas de actualizaciones de entornos