Migra a Cloud Composer 3 desde Cloud Composer 1 (Airflow 2)

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

En esta página, se explica cómo transferir DAG, datos y configuración de tus entornos existentes de Cloud Composer 1 y Airflow 2 a Cloud Composer 3 y Airflow 2 con instantáneas.

De To Método Guía
Cloud Composer 2 Cloud Composer 3 En paralelo, con la secuencia de comandos de migración Guía de migración de secuencias de comandos
Cloud Composer 2 Cloud Composer 3 Comparación en paralelo con instantáneas Guía de migración de instantáneas
Cloud Composer 1, Airflow 2 Cloud Composer 3 Comparación en paralelo con instantáneas Esta guía
Cloud Composer 1, Airflow 2 Cloud Composer 2 Comparación en paralelo con instantáneas Guía de migración de instantáneas
Cloud Composer 1, Airflow 2 Cloud Composer 2 Transferencia manual en paralelo Guía de migración manual
Cloud Composer 1 y Airflow 1 Cloud Composer 2, Airflow 2 Comparación en paralelo con instantáneas Guía de migración de instantáneas
Cloud Composer 1 y Airflow 1 Cloud Composer 2, Airflow 2 Transferencia manual en paralelo Guía de migración manual
Cloud Composer 1 y Airflow 1 Cloud Composer 1, Airflow 2 Transferencia manual en paralelo Guía de migración manual

Antes de comenzar

  • Cloud Composer admite la migración en paralelo de Cloud Composer 1 a Cloud Composer 3. No es posible actualizar de Cloud Composer 1 a Cloud Composer 3 sin mover los datos.

  • Consulta la lista de diferencias entre Cloud Composer 1, Cloud Composer 2 y Cloud Composer 3.

  • 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, /plugins y /data del bucket del entorno debe ser inferior a 100,000 para crear instantáneas.

  • Si usas el mecanismo XCom para transferir archivos, asegúrate de seguirlo 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 generar fallas cuando se cargan instantáneas o se actualiza el entorno. Considera usar alternativas como Cloud Storage para transferir grandes volúmenes de datos.

Asegúrate de que tus DAG sean compatibles con Cloud Composer 3

Para asegurarte de que tus DAG sean compatibles con Cloud Composer 3, sigue estas sugerencias:

  • La [lista de paquetes][cc-versions] en el entorno de Cloud Composer 3 puede ser diferente de la de tu entorno de Cloud Composer 1. Esto podría afectar la compatibilidad de tus DAG con Cloud Composer 3.

  • Cloud Composer carga las anulaciones de configuración, las variables de entorno y los paquetes de PyPI de la instantánea del entorno de Cloud Composer 1 a Cloud Composer 3 sin cambiarlas ni ajustarlas para la compatibilidad. Si los paquetes de PyPI personalizados causan conflictos de dependencias, puedes omitir su instalación cuando cargues la instantánea.

  • En Cloud Composer 3, 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 KubernetesPodOperator ahora se escalan de forma independiente de tu entorno y no es posible usar configuraciones de afinidad de pod.

  • En Cloud Composer 3, no se puede acceder directamente a la base de datos de Airflow. Asegúrate de que tus DAG sean compatibles con este cambio.

Cómo pausar DAG en tu entorno de Cloud Composer 1

Para evitar ejecuciones de DAG duplicadas, pausa todos los DAG en tu entorno de Cloud Composer 1 antes de guardar su instantánea. Omite el DAG de supervisión de estado activo (airflow_monitoring), que se usa con 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 DAGs y pausa todos los DAGs 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 pause
    

    Reemplaza lo siguiente:

    • COMPOSER_1_ENV por el nombre de tu entorno de Cloud Composer 1.
    • PROJECT_ID por el ID del proyecto.
    • COMPOSER_1_LOCATION por la región en la que se encuentra el entorno.
  • (Airflow versiones 2.9.1 y posteriores) Si hay errores de cuota mientras se pausa 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 se pausa una gran cantidad de DAG, es posible pausarlos con la API de REST de Airflow. Consulta también Cómo probar la API en la documentación de Airflow.

Cómo guardar la instantánea de tu entorno de Cloud Composer 1

Console

Crea una instantánea de tu entorno:

  1. En la Google Cloud consola, ve a la página Entornos.

    Ir a Entornos

  2. En la lista de entornos, haz clic en el nombre de tu entorno de Cloud Composer 1. Se abrirá la página Detalles del entorno.

  3. Haz clic en Crear instantánea.

  4. En el cuadro de diálogo Crear instantánea, haz clic en Enviar. En esta guía, guardas la instantánea en el bucket del entorno de Cloud Composer 1, pero puedes seleccionar una ubicación diferente si lo deseas.

  5. Espera a que Cloud Composer cree la instantánea.

gcloud

  1. Obtén el URI del bucket de tu entorno de Cloud Composer 1:

    1. Ejecuta el siguiente comando:

      gcloud composer environments describe COMPOSER_1_ENV \
          --location COMPOSER_1_LOCATION \
           --format="value(config.dagGcsPrefix)"
      

      Reemplaza lo siguiente:

      • COMPOSER_1_ENV por el nombre de tu entorno de Cloud Composer 1.
      • COMPOSER_1_LOCATION por la región en la que se encuentra el entorno.
    2. En el resultado, quita la carpeta /dags. El resultado es el URI del bucket de tu entorno de Cloud Composer 1.

      Por ejemplo, cambia gs://us-central1-example-916807e1-bucket/dags a gs://us-central1-example-916807e1-bucket.

  2. Crea una instantánea de tu entorno de Cloud Composer 1:

    gcloud composer environments snapshots save \
      COMPOSER_1_ENV \
      --location COMPOSER_1_LOCATION \
      --snapshot-location "COMPOSER_1_SNAPSHOTS_FOLDER"
    

    Reemplaza lo siguiente:

    • COMPOSER_1_ENV por el nombre de tu entorno de Cloud Composer 1.
    • COMPOSER_1_LOCATION con la región en la que se encuentra el entorno de Cloud Composer 1.
    • COMPOSER_1_SNAPSHOTS_FOLDER por el URI del bucket de tu entorno de Cloud Composer 1. En esta guía, guardas la instantánea en el bucket del entorno de Cloud Composer 1, 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 Cloud Composer 3

Crea un entorno de Cloud Composer 3. Puedes comenzar con un entorno preconfigurado que coincida con tus demandas de recursos esperadas y, luego, escalar y optimizar tu entorno más.

No es necesario que especifiques las anulaciones de configuración ni las variables de entorno, ya que las reemplazarás más adelante cuando cargues la instantánea de tu entorno de Cloud Composer 1.

Carga la instantánea en tu entorno de Cloud Composer 3

Console

Para cargar la instantánea en tu entorno de Cloud Composer 3, sigue estos pasos:

  1. En la Google Cloud consola, ve a la página Entornos.

    Ir a Entornos

  2. En la lista de entornos, haz clic en el nombre de tu entorno de Cloud Composer 3. Se abrirá la página Detalles del entorno.

  3. Haz clic en Cargar instantánea.

  4. En el diálogo Carga instantánea, haz clic en Explorar.

  5. 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 Cloud Composer 1 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

  6. Haz clic en Cargar y espera a que Cloud Composer cargue la instantánea.

gcloud

Carga la instantánea de tu entorno de Cloud Composer 1 a tu entorno de Cloud Composer 3:

gcloud composer environments snapshots load \
  COMPOSER_3_ENV \
  --location COMPOSER_3_LOCATION \
  --snapshot-path "SNAPSHOT_PATH"

Reemplaza lo siguiente:

  • COMPOSER_3_ENV por el nombre de tu entorno de Cloud Composer 3.
  • COMPOSER_3_LOCATION con la región en la que se encuentra el entorno de Cloud Composer 3.
  • SNAPSHOT_PATH por el URI del bucket de tu entorno de Cloud Composer 1, 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.

Cómo reanudar los DAG en el entorno de Cloud Composer 3

Puedes usar cualquiera de las siguientes opciones:

  • En la interfaz web de Airflow, ve a DAGs y reanuda todos los DAGs 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 unpause
    

    Reemplaza lo siguiente:

    • COMPOSER_3_ENV por el nombre de tu entorno de Cloud Composer 3.
    • PROJECT_ID por el ID del proyecto.
    • COMPOSER_3_LOCATION por la región en la que se encuentra el entorno.
  • (Airflow versiones 2.9.1 y posteriores) Si hay errores de cuota mientras se reanuda una gran cantidad de DAG, puedes usar los siguientes comandos de la CLI de Airflow para reanudar 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 se reanuda una gran cantidad de DAG, es posible reanudarlos 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

  1. En la interfaz web de Airflow, ve a DAGs y comprueba si hay errores de sintaxis de DAG informados.

  2. Verifica que las ejecuciones de DAG estén programadas a la hora correcta.

  3. Espera a que se ejecuten los DAG en el entorno de Cloud Composer 3 y verifica si se ejecutaron correctamente. Si una ejecución de DAG se realizó correctamente, no la despausas en el entorno de Cloud Composer 1. Si lo haces, se ejecutará un DAG para la misma hora y fecha en tu entorno de Cloud Composer 1.

  4. Si una ejecución de DAG específica falla, intenta solucionar el problema del DAG hasta que se ejecute correctamente en Cloud Composer 3.

Supervisa tu entorno de Cloud Composer 3

Después de transferir todos los DAG y la configuración al entorno de Cloud Composer 3, supervisión para detectar posibles problemas, ejecuciones de DAG fallidas y el estado general del entorno.

Si el entorno de Cloud Composer 3 se ejecuta sin problemas durante un período suficiente, considera borrar el entorno de Cloud Composer 1.

¿Qué sigue?