Airflow administrado (gen. 3) | Airflow administrado (gen. 2) | Airflow administrado (gen. 1 heredada)
En esta página, se explica cómo migrar DAG, datos y configuración de tu entorno existente de Managed Airflow (gen. 2) a un nuevo entorno de Managed Airflow (gen. 3) con el secuencia de comandos de migración.
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 paralela | Guía de migración manual |
| Managed Airflow (2ª gen.) | Managed Airflow (3ª gen.) | En paralelo, con la secuencia de comandos de migración | esta guía |
| Managed Airflow (2ª gen.) | Managed Airflow (3ª gen.) | Comparación, con instantáneas | Guía de migración de instantáneas |
| Managed Airflow (1ª gen. heredada), Airflow 2 | Managed Airflow (3ª gen.) | Comparación, con instantáneas | Guía de migración de instantáneas |
| Managed Airflow (1ª gen. heredada), Airflow 2 | Managed Airflow (2ª gen.) | Comparación, con instantáneas | Guía de migración de instantáneas |
| Managed Airflow (1ª gen. heredada), Airflow 2 | Managed Airflow (2ª gen.) | Transferencia manual paralela | Guía de migración manual |
| Managed Airflow (1ª gen. heredada), Airflow 1 | Managed Airflow (2ª gen.), Airflow 2 | Comparación, con instantáneas | Guía de migración de instantáneas |
| Managed Airflow (1ª gen. heredada), Airflow 1 | Airflow administrado (2ª gen.), Airflow 2 | Transferencia manual paralela | Guía de migración manual |
| Managed Airflow (1ª gen. heredada), Airflow 1 | Managed Airflow (1ª gen. heredada), Airflow 2 | Transferencia manual paralela | Guía de migración manual |
Acerca de la secuencia de comandos de migración
La secuencia de comandos de migración es una secuencia de comandos de Python para migraciones paralelas que automatiza el proceso de migración de Managed Airflow (gen. 2) a Managed Airflow (gen. 3). Utiliza instantáneas del entorno para transferir la configuración del entorno al entorno nuevo.
La secuencia de comandos realiza las siguientes acciones:
Obtiene la configuración del entorno de Managed Airflow (2ª gen.).
Crea un entorno de Airflow administrado (3ª gen.) con una configuración que coincida con la configuración obtenida.
Debido a que los entornos de Managed Airflow (Gen 3) tienen una arquitectura diferente, es posible que algunos parámetros se ajusten para que coincidan con las diferencias. También puedes ajustar la mayoría de los parámetros del entorno más adelante.
Pausa todos los DAGs en el entorno de Managed Airflow (gen. 2) uno por uno. Solo se reactivarán los DAGs que se hayan reactivado en el entorno de Managed Airflow (gen. 2) más adelante.
Guarda una instantánea del entorno de Managed Airflow (2ª gen.) de origen. La instantánea se guarda en la ubicación predeterminada para las instantáneas, el bucket del entorno de Managed Airflow (2ª gen.).
Carga la instantánea en el entorno de Managed Airflow (3ª gen.).
La secuencia de comandos no verifica la compatibilidad de los paquetes de PyPI personalizados, las variables de entorno ni las anulaciones de opciones de configuración de Airflow con el entorno de Managed Airflow (Gen 3).
En caso de conflictos, la migración falla después de que se crea el entorno de Managed Airflow (3ª gen.), durante el proceso de carga de la instantánea. En este caso, puedes ajustar la configuración de tu entorno de Managed Airflow (Gen 2) para resolver el conflicto o migrar sin la secuencia de comandos de migración y omitir la carga de paquetes PyPI personalizados, variables de entorno o anulaciones de configuración de Airflow cuando cargues la instantánea.
Reanuda los DAGs en el entorno de Managed Airflow (3ª gen.). Si algunos DAG ya estaban detenidos antes de que ejecutaras la secuencia de comandos, permanecerán detenidos.
La secuencia de comandos tiene las siguientes limitaciones:
La secuencia de comandos siempre crea un entorno nuevo de Airflow administrado (3ª gen.). No es posible cargar la instantánea en un entorno de Managed Airflow (3ª gen.) existente. Para ello, puedes migrar con instantáneas, sin usar la secuencia de comandos de migración.
La secuencia de comandos crea un entorno de Airflow administrado (2ª gen.) solo en la misma región y el mismo proyecto que el entorno de Airflow administrado (3ª gen.).
Solo puedes cargar instantáneas en la misma versión o en una versión posterior de Airflow. Por ejemplo, no puedes cargar una instantánea de Airflow 2.10.2 en Airflow 2.9.3.
Solo los entornos de Managed Airflow (2ª gen.) se pueden migrar con la secuencia de comandos de migración.
Antes de comenzar
Debido a que la secuencia de comandos de migración crea un entorno y, luego, guarda y carga una instantánea, el proceso de migración puede tardar más de una hora.
La secuencia de comandos usa instantáneas. Se admiten instantáneas
en la versión 2.0.9 y versiones posteriores de Managed Airflow (Gen 2)
Tu cuenta requiere un rol de IAM que pueda crear entornos, guardar instantáneas y cargar instantáneas.
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 usarlo 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 errores al cargar instantáneas o actualizar tu entorno. Considera usar alternativas como Cloud Storage para transferir grandes volúmenes de datos.
Migra a Managed Airflow (3ª gen.)
En esta sección, se describe el proceso de migración con la secuencia de comandos de migración.
Comprueba las diferencias entre Airflow administrado (2ª gen.) y Airflow administrado (3ª gen.)
Consulta la lista de diferencias entre Airflow administrado (gen. 2) y Airflow administrado (gen. 3).
Asegúrate de que tu entorno no use funciones que aún no estén disponibles en Managed Airflow (3ª gen.) y de que sepas cómo usar y configurar las funciones específicas de Managed Airflow (3ª gen.).
Asegúrate de que tus DAG sean compatibles con Managed Airflow (3ª gen.)
Para asegurarte de que tus DAG sean compatibles con Managed Airflow (Gen 3), sigue estas sugerencias:
La lista de paquetes en el entorno de Managed Airflow (Gen 3) puede ser diferente de la de tu entorno de Managed Airflow (Gen 2). Esto podría afectar la compatibilidad de tus DAG con Airflow administrado (3ª gen.).
En Airflow administrado (3ª gen.), el clúster del entorno se encuentra en el proyecto de usuario. Asegúrate de que tus DAG sean compatibles con este cambio. En particular, las cargas de trabajo de
KubernetesPodOperatorahora se escalan de forma independiente de tu entorno y no es posible usar configuraciones de afinidad de Pods.
Comprueba la compatibilidad de la configuración
Puedes realizar una verificación de actualización para ver si la configuración de tu entorno de Airflow administrado (gen. 2) es compatible con Airflow administrado (gen. 3). Te recomendamos que resuelvas todos los conflictos de bloqueo que se informen en esta verificación antes de iniciar la migración.
Instala las dependencias de la secuencia de comandos de instalación
La secuencia de comandos requiere la versión 3.8 de Python y versiones posteriores.
La secuencia de comandos de migración usa utilidades de gcloud CLI y de
curl. Asegúrate de que ambas utilidades estén instaladas en tu computadora.
Descarga la secuencia de comandos
Descarga la secuencia de comandos de migración (composer_migrate.py) desde su repositorio en GitHub.
Autoriza en gcloud CLI
Autoriza en gcloud CLI:
gcloud auth login
Obtén una vista previa de los parámetros del nuevo entorno
Puedes obtener una vista previa de los parámetros del entorno de Managed Airflow (Gen 3) antes de realizar la migración. Puedes usarlo para ver cómo la configuración del entorno de Airflow administrado (gen. 2) se corresponde con la de Airflow administrado (gen. 3).
Las anulaciones de opciones de configuración de Airflow, los paquetes de PyPI personalizados y las variables de entorno se cargan desde la instantánea del entorno y no se muestran en la vista previa.
Expandir
Ejecuta el comando siguiente:
python3 composer_migrate.py \
--project PROJECT_ID \
--location LOCATION \
--source_environment COMPOSER_2_ENV \
--target_environment COMPOSER_3_ENV \
--target_airflow_version COMPOSER_3_AIRFLOW_VERSION \
--dry_run
Reemplaza lo siguiente:
PROJECT_ID: Es el ID del proyecto.COMPOSER_2_ENV: Es el nombre de tu entorno de Airflow administrado (2ª gen.).LOCATION: Es la región en la que se encuentra el entorno de Airflow administrado (2ª gen.). El entorno de Airflow administrado (3ª gen.) se creará en la misma región.COMPOSER_3_AIRFLOW_VERSION: Es la versión de Airflow del entorno de Airflow administrado (Gen 3). Esta versión debe ser igual o posterior a la del entorno de Managed Airflow (Gen 2) y debe ser una de las versiones disponibles en Managed Airflow (Gen 3).
Ejemplo:
python3 composer_migrate.py \
--project example-project \
--location us-central1 \
--source_environment example-composer-2-environment \
--target_environment example-composer-3-environment \
--target_airflow_version 2.10.2
Verifica el estado del entorno
Asegúrate de que el entorno de Managed Airflow (2ª gen.) que deseas migrar esté en buen estado.
Si tu entorno no es saludable, el proceso de migración fallará después de crear un nuevo entorno de Airflow administrado (3ª gen.) porque no será posible crear una instantánea.
Consulta Usa el panel de supervisión para obtener más información sobre las formas de verificar el estado del entorno y de la base de datos.
Ejecuta la secuencia de comandos de migración
Ejecuta el comando siguiente:
python3 composer_migrate.py \
--project PROJECT_ID \
--location LOCATION \
--source_environment COMPOSER_2_ENV \
--target_environment COMPOSER_3_ENV \
--target_airflow_version COMPOSER_3_AIRFLOW_VERSION
Reemplaza lo siguiente:
PROJECT_ID: Es el ID del proyecto.COMPOSER_2_ENV: Es el nombre de tu entorno de Airflow administrado (2ª gen.).LOCATION: Es la región en la que se encuentra el entorno de Airflow administrado (2ª gen.). El entorno de Airflow administrado (3ª gen.) se creará en la misma región.COMPOSER_3_AIRFLOW_VERSION: Es la versión de Airflow del entorno de Airflow administrado (Gen 3). Esta versión debe ser igual o posterior a la del entorno de Airflow administrado (gen. 2) y debe ser una de las versiones disponibles en Airflow administrado (gen. 3).
Verifica si hay errores en el DAG
En la interfaz web de Airflow, ve a DAGs y busca los errores de sintaxis del DAG que se hayan informado.
Verifica que las ejecuciones del DAG estén programadas para el momento correcto.
Espera a que se ejecuten los DAG en el entorno de Managed Airflow (3ª gen.) y verifica si se completaron correctamente. Si una ejecución del DAG se realizó correctamente, no la reactives en el entorno de Managed Airflow (2ª gen.). Si lo haces, se producirá una ejecución del DAG para la misma fecha y hora en tu entorno de Managed Airflow (2ª gen.).
Si falla una ejecución de DAG específica, intenta solucionar los problemas del DAG hasta que se ejecute correctamente en Managed Airflow (Gen 3).
Supervisa tu entorno de Managed Airflow (3ª gen.)
Supervisa tu entorno de Managed Airflow (3ª gen.) para detectar posibles problemas, ejecuciones de DAG fallidas y el estado general del entorno.
Si el entorno de Airflow administrado (3ª gen.) se ejecuta sin problemas durante un período suficiente, considera borrar el entorno de Airflow administrado (2ª gen.).