Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
En esta página, se explica cómo transferir DAG, datos y configuración desde tu entornos existentes de Cloud Composer 1 y Airflow 1 a Cloud Composer 2, Airflow 2.
Otras guías de migración
Desde | Hasta | Método | Guía |
---|---|---|---|
Cloud Composer 1, Airflow 2 | Cloud Composer 2, Airflow 2 | Comparación en paralelo con instantáneas | Guía de migración (instantáneas) |
Cloud Composer 1, Airflow 1 | Cloud Composer 2, Airflow 2 | En paralelo, con instantáneas | Guía de migración (instantáneas) |
Cloud Composer 1, Airflow 2 | Cloud Composer 2, Airflow 2 | Transferencia manual en paralelo | Guía de migración manual |
Cloud Composer 1, Airflow 1 | Cloud Composer 2, Airflow 2 | Transferencia manual en paralelo | Esta guía (migración manual) |
Airflow 1 | Airflow 2 | Transferencia manual en paralelo | Guía de migración manual |
Antes de comenzar
- Cloud Composer admite la migración en paralelo desde de Cloud Composer 1 a Cloud Composer 2. No es posible actualizar Cloud Composer 1 a Cloud Composer 2 in situ
- Consulta la lista de diferencias entre Cloud Composer 1 y Cloud Composer 2
Dado que Cloud Composer 2 usa Airflow 2, la migración incluye lo siguiente: cambiar tus DAG y la configuración del entorno a Airflow 2. Cheque la guía de migración de Airflow 1 a Airflow 2 para información sobre los cambios rotundos entre Airflow 1 y Airflow 2 en Cloud Composer
En esta guía, se combina la migración a Airflow 2 y la migración a Cloud Composer 2 en un procedimiento de migración. De esta manera, no necesitas migrar a un entorno de Cloud Composer 1 con Airflow 2 antes migrar a Cloud Composer 2.
Paso 1: Actualiza a Airflow 1.10.15
Si tu entorno usa una versión de Airflow anterior a la 1.10.15, actualízalo a una versión de Cloud Composer que use Airflow 1.10.15.
Paso 2: Verifica la compatibilidad con Airflow 2
Para comprobar posibles conflictos con Airflow 2, usa secuencias de comandos de verificación de actualización que ofrece Airflow en tu entorno existente de Airflow 1.10.15.
gcloud
Ejecuta verificaciones de actualización a través del
gcloud composer environments run
. Algunas verificaciones de actualización que son relevantes para Airflow independiente Las versiones 1.10.15 no son relevantes para Cloud Composer. Lo siguiente excluye estas verificaciones.gcloud composer environments run \ COMPOSER_1_ENV \ --location=COMPOSER_1_LOCATION \ upgrade_check \ -- --ignore VersionCheckRule --ignore LoggingConfigurationRule \ --ignore PodTemplateFileRule --ignore SendGridEmailerMovedRule
Reemplaza lo siguiente:
COMPOSER_1_ENV
por el nombre de tu entorno de Airflow 1.10.15COMPOSER_1_LOCATION
por la región en la que se encuentra el entorno
Verifica el resultado del comando. Actualizar el potencial de informes de secuencias de comandos de verificación problemas de compatibilidad en entornos existentes.
Implementa otros cambios en los DAG, como se describe en el artículo de la guía de Airflow 2.0+, en la sección sobre actualizar DAG.
Paso 3: Obtén la lista de anulaciones de configuración, paquetes de PyPI personalizados y variables de entorno
Console
Obtén la lista de anulaciones de configuración, paquetes de PyPI personalizados y variables de entorno de tu entorno de Cloud Composer 1:
Ve a la página Entornos en la consola de Google Cloud:
Selecciona tu entorno de Cloud Composer 1.
Consulta las variables de entorno en la pestaña Variables de entorno.
Visualiza anulaciones de configuración en la Pestañas Anulaciones de configuración de Airflow.
Visualiza los paquetes de PyPI personalizados en la pestaña Paquetes de PyPI.
gcloud
Para obtener la lista de variables de entorno, ejecuta lo siguiente:
gcloud composer environments describe \
COMPOSER_1_ENV \
--location COMPOSER_1_LOCATION \
--format="value(config.softwareConfig.envVariables)"
Para obtener la lista de anulaciones de configuración de Airflow del entorno, ejecuta lo siguiente:
gcloud composer environments describe \
COMPOSER_1_ENV \
--location COMPOSER_1_LOCATION \
--format="value(config.softwareConfig.airflowConfigOverrides)"
Para obtener la lista de paquetes personalizados de PyPI, ejecuta lo siguiente:
gcloud composer environments describe \
COMPOSER_1_ENV \
--location COMPOSER_1_LOCATION \
--format="value(config.softwareConfig.pypiPackages)"
Reemplaza lo siguiente:
COMPOSER_1_ENV
por el nombre de tu entorno de Cloud Composer 1COMPOSER_1_LOCATION
es la región en la que se encuentra el entorno de Cloud Composer 1.
Terraform
Omite este paso. La configuración de tu entorno de Cloud Composer 1 ya enumera anulaciones de configuración, paquetes de PyPI personalizados y parámetros variables para tu entorno.
Paso 4: Crea un entorno de Cloud Composer 2
En este paso, crea un entorno de Cloud Composer 2. Puedes comienza con un ajuste predeterminado de entorno que coincida las demandas de recursos esperadas y, luego, escalar y optimizar tu entorno un poco más lejos.
Console
Crea un entorno de Cloud Composer 2 y especificar las anulaciones de configuración y las variables de entorno.
Como alternativa, puedes anular Airflow. parámetros de configuración y variables de entorno después de crear un entorno.
Algunas opciones de configuración de Airflow 1 usan un nombre y en Airflow 2. Para obtener más información, consulta Cambios de configuración.
gcloud
Crea un entorno de Cloud Composer 2 y especificar las anulaciones de configuración y las variables de entorno.
Como alternativa, puedes anular Airflow. parámetros de configuración y variables de entorno después de crear un entorno.
Algunas opciones de configuración de Airflow 1 usan un nombre y una sección diferentes en Airflow 2. Para obtener más información, consulta Cambios de configuración.
Terraform
Crea un entorno de Cloud Composer 2 basado en la configuración de la Entorno de Cloud Composer 1:
- Copia la configuración de tu entorno de Cloud Composer 1.
- Cambia el nombre de tu entorno.
Usa el proveedor
google-beta
:resource "google_composer_environment" "example_environment_composer_2" { provider = google-beta # ... }
Especifica una imagen de Cloud Composer 2 en el bloque
config.software_config
:software_config { image_version = "composer-2.9.3-airflow-2.9.1" # ... }
Si no es así, especifica las anulaciones de configuración y las variables de entorno.
Especifica paquetes de PyPI personalizados en el bloque
config.software_config.pypi_packages
:software_config { # ... pypi_packages = { numpy = "" scipy = ">=1.1.0" } }
Paso 5: Instala paquetes de PyPI en el entorno de Cloud Composer 2
Después de crear tu entorno de Cloud Composer 2, instala PyPI personalizado paquetes nuevos.
Console
Ve a la página Entornos en la consola de Google Cloud:
Selecciona tu entorno de Cloud Composer 2.
Ve a la pestaña Paquetes de PyPI y haz clic en Editar.
Copia los requisitos de los paquetes de PyPI de tu entorno de Cloud Composer 1. Haz clic en Guardar y espera hasta que se actualice el entorno.
gcloud
Crea un archivo
requirements.txt
con la lista de paquetes de PyPI personalizados:numpy scipy>=1.1.0
Actualiza tu entorno y pasa el archivo
requirements.txt
al comando--update-pypi-packages-from-file
:gcloud composer environments update COMPOSER_2_ENV \ --location COMPOSER_2_LOCATION \ --update-pypi-packages-from-file requirements.txt
Reemplaza lo siguiente:
COMPOSER_2_ENV
por el nombre de tu entorno de Cloud Composer 2.COMPOSER_2_LOCATION
por la región en la que se encuentra el entorno de Cloud Composer 2.
Terraform
Omite este paso. Ya instalaste paquetes personalizados de PyPI cuando creaste el entorno.
Paso 6: Transfiere variables y grupos
Airflow admite la exportación de variables y grupos a archivos JSON. Puedes y, luego, importarlos a tu entorno de Cloud Composer 2.
Los comandos de la CLI de Airflow que se usan en este paso operan en archivos locales en Airflow
trabajadores. Para subir o descargar los archivos, usa la carpeta /data
que se encuentra en
bucket de Cloud Storage de tu entorno. Esta carpeta se sincroniza con el
Directorio /home/airflow/gcs/data/
en los trabajadores de Airflow. En la CLI de Airflow
de comandos, especifica /home/airflow/gcs/data/
en el parámetro FILEPATH
.
gcloud
Exporta variables desde tu entorno de Cloud Composer 1:
gcloud composer environments run \ COMPOSER_1_ENV \ --location COMPOSER_1_LOCATION \ variables -- -e /home/airflow/gcs/data/variables.json
Reemplaza lo siguiente:
COMPOSER_1_ENV
por el nombre de tu entorno de Cloud Composer 1COMPOSER_1_LOCATION
es la región en la que se encuentra el entorno de Cloud Composer 1.
Exporta grupos desde tu entorno de Cloud Composer 1:
gcloud composer environments run COMPOSER_1_ENV \ --location COMPOSER_1_LOCATION \ pool -- -e /home/airflow/gcs/data/pools.json
Reemplaza lo siguiente:
COMPOSER_1_ENV
por el nombre de tu entorno de Cloud Composer 1COMPOSER_1_LOCATION
es la región en la que se encuentra el entorno de Cloud Composer 1.
Obtén el URI del bucket de tu entorno de Cloud Composer 2.
Ejecuta el siguiente comando:
gcloud composer environments describe COMPOSER_2_ENV \ --location COMPOSER_2_LOCATION \ --format="value(config.dagGcsPrefix)"
Reemplaza lo siguiente:
COMPOSER_2_ENV
por el nombre de Cloud Composer 2 en un entorno de nube.COMPOSER_2_LOCATION
por la región en la que se encuentra el entorno.
En el resultado, quita la carpeta
/dags
. El resultado es el URI de desde el bucket de tu entorno de Cloud Composer 2.Por ejemplo, cambia
gs://us-central1-example-916807e1-bucket/dags
ags://us-central1-example-916807e1-bucket
.
Transfiere archivos JSON con variables y grupos a tu entorno de Cloud Composer 2:
gcloud composer environments storage data export \ --destination=COMPOSER_2_BUCKET/data \ --environment=COMPOSER_1_ENV \ --location=COMPOSER_1_LOCATION \ --source=variables.json
gcloud composer environments storage data export \ --destination=COMPOSER_2_BUCKET/data \ --environment=COMPOSER_1_ENV \ --location=COMPOSER_1_LOCATION \ --source=pools.json
Reemplaza lo siguiente:
COMPOSER_2_BUCKET
por el URI del bucket de tu entorno de Cloud Composer 2, que obtuviste en el paso anterior.COMPOSER_1_ENV
por el nombre de tu entorno de Cloud Composer 1COMPOSER_1_LOCATION
es la región en la que se encuentra el entorno de Cloud Composer 1.
Importa variables y grupos a Cloud Composer 2:
gcloud composer environments run \ COMPOSER_2_ENV \ --location COMPOSER_2_LOCATION \ variables import \ -- /home/airflow/gcs/data/variables.json
gcloud composer environments run \ COMPOSER_2_ENV \ --location COMPOSER_2_LOCATION \ pools import \ -- /home/airflow/gcs/data/pools.json
Verifica que se hayan importado las variables y los grupos:
gcloud composer environments run \ COMPOSER_2_ENV \ --location COMPOSER_2_LOCATION \ variables list
gcloud composer environments run \ COMPOSER_2_ENV \ --location COMPOSER_2_LOCATION \ pools list
Quita los archivos JSON de los buckets:
gcloud composer environments storage data delete \ variables.json \ --environment=COMPOSER_2_ENV \ --location=COMPOSER_2_LOCATION
gcloud composer environments storage data delete \ pools.json \ --environment=COMPOSER_2_ENV \ --location=COMPOSER_2_LOCATION
gcloud composer environments storage data delete \ variables.json \ --environment=COMPOSER_1_ENV \ --location=COMPOSER_1_LOCATION
gcloud composer environments storage data delete \ pools.json \ --environment=COMPOSER_1_ENV \ --location=COMPOSER_1_LOCATION
Paso 7: Transfiere otros datos del bucket de tu entorno de Cloud Composer 1
Transfiere complementos y otros datos desde el bucket del entorno de Cloud Composer 1.
gcloud
Transfiere los complementos a tu entorno de Cloud Composer 2. Para hacerlo, exporta los complementos de tu el bucket del entorno de Cloud Composer 1 a la carpeta
/plugins
de tu Bucket del entorno de Cloud Composer 2:gcloud composer environments storage plugins export \ --destination=COMPOSER_2_BUCKET/plugins \ --environment=COMPOSER_1_ENV \ --location=COMPOSER_1_LOCATION
Verifica que la carpeta
/plugins
se haya importado correctamente:gcloud composer environments storage plugins list \ --environment=COMPOSER_2_ENV \ --location=COMPOSER_2_LOCATION
Exporta la carpeta
/data
de tu entorno de Cloud Composer 1 a la Entorno de Airflow 2:gcloud composer environments storage data export \ --destination=COMPOSER_2_BUCKET/data \ --environment=COMPOSER_1_ENV \ --location=COMPOSER_1_LOCATION
Verifica que la carpeta
/data
se haya importado correctamente:gcloud composer environments storage data list \ --environment=COMPOSER_2_ENV \ --location=COMPOSER_2_LOCATION
Paso 8: Transferencia de conexiones
Airflow 1.10.15 no admite la exportación de conexiones. Para transferir conexiones, crear conexiones manualmente en tu entorno de Cloud Composer 2 desde la entorno de Cloud Composer 1.
gcloud
Para obtener una lista de conexiones en tu entorno de Cloud Composer 1, ejecuta el siguiente comando:
gcloud composer environments run COMPOSER_1_ENV \ --location COMPOSER_1_LOCATION \ connections -- --list
Para crear una conexión nueva en tu entorno de Cloud Composer 2, ejecuta el siguiente comando: Comando
connections
de la CLI de Airflow a través degcloud
. Por ejemplo:gcloud composer environments run \ COMPOSER_2_ENV \ --location COMPOSER_2_LOCATION \ connections add \ -- --conn-host postgres.example.com \ --conn-port 5432 \ --conn-type postgres \ --conn-login example_user \ --conn-password example_password \ --conn-description "Example connection" \ example_connection
Paso 9: Transfiere las cuentas de usuario
En este paso, se explica cómo crear usuarios de forma manual para transferirlos.
Airflow 1.10.15 no admite la exportación de usuarios. Para transferir usuarios y conexiones, crea cuentas de usuario nuevas de forma manual en tu entorno de Airflow 2 del entorno de Cloud Composer 1.
IU de Airflow
Para ver una lista de usuarios en tu entorno de Cloud Composer 1, sigue estos pasos:
Abre la interfaz web de Airflow para tu entorno de Cloud Composer 1.
Ve a Administrador > Usuarios.
Para crear un usuario en tu entorno de Cloud Composer 2, sigue estos pasos:
Abre la interfaz web de Airflow para tu entorno de Cloud Composer 2.
Ve a Seguridad > Enumera los usuarios.
Haz clic en Add a new record.
gcloud
-
No es posible ver una lista de usuarios a través de
gcloud
en Airflow 1. Usa la IU de Airflow. Para crear una cuenta de usuario nueva en tu entorno de Cloud Composer 2, ejecuta el siguiente comando: Comando
users create
de la CLI de Airflow a través degcloud
. Por ejemplo:gcloud composer environments run \ COMPOSER_2_ENV \ --location COMPOSER_2_LOCATION \ users create \ -- --username example_username \ --firstname Example-Name \ --lastname Example-Surname \ --email example-user@example.com \ --use-random-password \ --role Op
Reemplaza lo siguiente:
COMPOSER_2_ENV
por el nombre de tu entorno de Cloud Composer 2.COMPOSER_2_LOCATION
con la región en la que se encuentra el entorno de Cloud Composer 2.- Todos los parámetros de configuración del usuario con sus valores del entorno de Cloud Composer 1, incluido el rol del usuario.
Paso 10: Asegúrate de que tus DAG estén listos para Airflow 2
Antes de transferir DAG a tu entorno de Cloud Composer 1, asegúrate de que se cumplan las siguientes condiciones:
Las secuencias de comandos de verificación de actualización de tus DAG se ejecutan correctamente y no hay problemas de compatibilidad restantes.
Tus DAG usan sentencias de importación correctas.
Por ejemplo, la nueva sentencia de importación para
BigQueryCreateDataTransferOperator
puede verse de la siguiente manera:from airflow.providers.google.cloud.operators.bigquery_dts \ import BigQueryCreateDataTransferOperator
Tus DAG son se actualizó para Airflow 2. Este cambio es compatible con Airflow 1.10.14 y versiones posteriores.
Paso 11: Transfiere los DAG al entorno de Cloud Composer 2
Los siguientes problemas potenciales podrían ocurrir cuando transfieres DAG entornos:
Si un DAG está habilitado (no pausado) en ambos entornos, cada uno se ejecutará su propia copia del DAG, según lo programado. Esto podría generar un DAG duplicado se ejecutan con los mismos datos y tiempo de ejecución.
Debido a Actualización sobre DAG, Airflow programa ejecuciones adicionales de DAG a partir de la fecha de inicio especificada en tus DAG. Esto sucede porque la nueva instancia de Airflow no tarda en cuenta el historial de ejecuciones de DAG desde Cloud Composer 1 en un entorno de nube. Esto puede generar una gran cantidad de ejecuciones de DAG programadas a partir de la fecha de inicio especificada.
Evita ejecuciones de DAG duplicadas
En tu entorno de Airflow 2, agrega una anulación de opción de configuración de Airflow para la opción dags_are_paused_at_creation
. Después de realizar este cambio, todos los DAG nuevos
están detenidos de forma predeterminada.
Sección | Clave | Valor |
---|---|---|
core |
dags_are_paused_at_creation |
True |
Evita las ejecuciones de DAG adicionales o faltantes
Para evitar brechas y superposiciones en
Inhabilitar fechas de ejecución
ponerte al día con Cloud Composer 2. De esta manera, después de subir los DAG
entorno de Cloud Composer 2, Airflow no programa ejecuciones de DAG que se hayan
ya se ejecuta en el entorno de Cloud Composer 1. Agrega
una anulación de la opción de configuración de Airflow para el
Opción catchup_by_default
:
Sección | Clave | Valor |
---|---|---|
scheduler |
catchup_by_default |
False |
Transfiere tus DAG al entorno de Cloud Composer 2
Para transferir tus DAG al entorno de Cloud Composer 2, sigue estos pasos:
Sube el DAG desde Cloud Composer 1 al entorno de Cloud Composer 2. Omitir el DAG de
airflow_monitoring.py
Los DAG se detienen en el entorno de Cloud Composer 2 debido a la anulación de configuración, por lo que no se programan ejecuciones de DAG.
En la interfaz web de Airflow, Ve a los DAG y verifica si hay errores de sintaxis del DAG informados.
En el momento en que planeas transferir el DAG, haz lo siguiente:
Detén los DAG en tu entorno de Cloud Composer 1.
Reanuda los DAG en tu entorno de Cloud Composer 2.
Comprueba que las nuevas ejecuciones de DAG estén programadas en el momento correcto.
Espera a que las ejecuciones del DAG se produzcan en el entorno de Cloud Composer 2 y para verificar si tuvieron éxito. Si una ejecución de DAG tuvo éxito, no reactivarla en el entorno de Cloud Composer 1. Si lo haces, se generará un ejecutada con la misma hora y fecha en Cloud Composer 1 en un entorno de nube.
Si una ejecución de DAG específico falla, intenta solucionar problemas del DAG hasta que se ejecute correctamente Cloud Composer 2.
Si es necesario, puedes recurrir a la versión de Cloud Composer 1 del DAG y ejecutar las ejecuciones de DAG que fallaron en Cloud Composer 2 desde tu entorno de Cloud Composer 1:
Pausa el DAG en tu entorno de Cloud Composer 2.
Reanuda el DAG en tu entorno de Cloud Composer 1. Esta programa las ejecuciones de DAG para el momento en que el DAG se detuvo en entorno de Cloud Composer 1.
Paso 12: Supervisa tu entorno de Cloud Composer 2
Después de transferir todos los DAG y la configuración a Cloud Composer 2 entorno, supervísalo en busca de posibles problemas, ejecuciones fallidas de DAG y, en general, y el estado del entorno. Si el entorno de Cloud Composer 2 se ejecuta sin problemas durante un período suficiente, considera borrar Cloud Composer 1 en un entorno de nube.
¿Qué sigue?
- Soluciona problemas de los DAG
- Solución de problemas de creación de entornos
- Soluciona problemas de actualizaciones del entorno
- Cómo usar paquetes de portabilidad a versiones anteriores