Migra entornos a Managed Airflow (2ª gen.) (desde Airflow 2) con instantáneas

Managed Airflow (Gen 3) | Managed Airflow (Gen 2) | Managed Airflow (Legacy Gen 1)

En esta página, se explica cómo transferir DAG, datos y configuración de tus entornos existentes de Managed Airflow (Gen 1 heredada) y Airflow 2 a Managed Airflow (Gen 2) y Airflow 2.

En esta guía de migración, se usa la función Snapshots.

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 Guía de migración de secuencias de comandos
Managed Airflow (2ª gen.) Managed Airflow (3ª gen.) Comparación, con instantáneas Guía de migración de instantáneas
Managed Airflow (Legacy Gen 1), Airflow 2 Managed Airflow (3ª gen.) Comparación, con instantáneas Guía de migración de instantáneas
Managed Airflow (Legacy Gen 1), Airflow 2 Managed Airflow (2ª gen.) Comparación, con instantáneas esta guía
Managed Airflow (Legacy Gen 1), Airflow 2 Managed Airflow (2ª gen.) Transferencia manual paralela Guía de migración manual
Managed Airflow (Legacy Gen 1), Airflow 1 Managed Airflow (2ª gen.), Airflow 2 Comparación, con instantáneas Guía de migración de instantáneas
Managed Airflow (Legacy Gen 1), Airflow 1 Managed Airflow (2ª gen.), Airflow 2 Transferencia manual paralela Guía de migración manual
Managed Airflow (Legacy Gen 1), Airflow 1 Managed Airflow (Legacy Gen 1), Airflow 2 Transferencia manual paralela Guía de migración manual

Antes de comenzar

  • Las instantáneas son compatibles con la versión 2.0.9 y versiones posteriores de Managed Airflow (Gen 2). Managed Airflow (1ª gen. heredada) admite el guardado de instantáneas del entorno en la versión 1.18.5.

  • Managed Airflow admite la migración en paralelo de Managed Airflow (Gen 1 heredada) a Managed Airflow (Gen 2). No es posible actualizar de Managed Airflow (Legacy Gen 1) a Managed Airflow (Gen 2) en la misma instalación.

  • Consulta la lista de diferencias entre Managed Airflow (1ª gen. heredada) y Managed Airflow (2ª 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, /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 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.

Paso 1: Pausa los DAGs en tu entorno de Managed Airflow (1ª gen. heredada)

Para evitar ejecuciones duplicadas de DAG, pausa todos los DAG de tu entorno de Managed Airflow (Legacy Gen 1) antes de guardar su instantánea.

Puedes usar cualquiera de las siguientes opciones:

  • En la interfaz web de Airflow, ve a DAGs 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 pause
    

    Reemplaza lo siguiente:

    • COMPOSER_1_ENV por el nombre de tu entorno de Managed Airflow (Legacy Gen 1).
    • PROJECT_ID por el ID del proyecto.
    • COMPOSER_1_LOCATION por la región en la que se encuentra el entorno.
  • (Versiones de Airflow 2.9.1 y posteriores) Si hay errores de cuota mientras se pausa una gran cantidad de DAGs, puedes usar los siguientes comandos de la CLI de Airflow para pausar todos los DAGs 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 se producen errores de cuota al pausar 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.

Paso 2: Guarda la instantánea de tu entorno de Managed Airflow (1ª gen. heredada)

Console

Crea una instantánea de tu entorno:

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

    Ir a Entornos

  2. En la lista de entornos, haz clic en el nombre de tu entorno de Managed Airflow (Legacy Gen 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, guardarás la instantánea en el bucket del entorno de Managed Airflow (Legacy Gen 1), pero puedes seleccionar una ubicación diferente si lo deseas.

  5. Espera hasta que Managed Airflow cree la instantánea.

gcloud

  1. Obtén el URI del bucket de tu entorno de Managed Airflow (1ª gen. heredada):

    1. Ejecuta el comando siguiente:

      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 Managed Airflow (Legacy Gen 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 Managed Airflow (1ª gen. heredada).

      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 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_ENV por el nombre de tu entorno de Managed Airflow (Legacy Gen 1).
    • COMPOSER_1_LOCATION con la región en la que se encuentra el entorno de Managed Airflow (1ª gen. heredada).
    • COMPOSER_1_SNAPSHOTS_FOLDER con el URI del bucket de tu entorno de Managed Airflow (Gen 1 heredada). En esta guía, guardarás la instantánea en el bucket del entorno de Managed Airflow (Legacy Gen 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 la ubicación especificada.

Paso 3: Crea un entorno de Managed Airflow (2ª gen.)

Crea un entorno de Managed Airflow (2ª gen.). Puedes comenzar con un ajuste predeterminado del entorno que coincida con las demandas de recursos esperadas y, luego, escalar 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 (Legacy Gen 1).

Paso 4: Carga la instantánea en tu entorno de Managed Airflow (2ª gen.)

Console

Para cargar la instantánea en tu entorno de Managed Airflow (Gen 2), haz lo siguiente:

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

    Ir a Entornos

  2. En la lista de entornos, haz clic en el nombre de tu entorno de Managed Airflow (gen. 2). Se abrirá la página Detalles del entorno.

  3. Haz clic en Cargar instantánea.

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

  5. Selecciona la carpeta con la instantánea. Si usas la ubicación predeterminada de esta guía, esta carpeta se encuentra en el bucket de tu entorno de Managed Airflow (Legacy Gen 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 Load 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 (2ª gen.):

gcloud composer environments snapshots load \
  COMPOSER_2_ENV \
  --location COMPOSER_2_LOCATION \
  --snapshot-path "SNAPSHOT_PATH"

Reemplaza lo siguiente:

  • COMPOSER_2_ENV por el nombre de tu entorno de Managed Airflow (2ª gen.).
  • COMPOSER_2_LOCATION con la región en la que se encuentra el entorno de Managed Airflow (2ª gen.).
  • SNAPSHOT_PATH con 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.

Paso 5: Reanuda los DAGs en el entorno de Managed Airflow (2ª gen.)

Puedes usar cualquiera de las siguientes opciones:

  • En la interfaz web de Airflow, ve a DAGs y reanuda todos los DAG de forma manual uno por uno.

  • Usa la secuencia de comandos composer_dags para reanudar todos los DAGs:

    python3 composer_dags.py --environment COMPOSER_2_ENV \
      --project PROJECT_ID \
      --location COMPOSER_2_LOCATION \
      --operation unpause
    

    Reemplaza lo siguiente:

    • COMPOSER_2_ENV por el nombre de tu entorno de Managed Airflow (2ª gen.).
    • PROJECT_ID por el ID del proyecto.
    • COMPOSER_2_LOCATION por la región en la que se encuentra el entorno.
  • (Versiones de Airflow 2.9.1 y posteriores) Si se producen errores de cuota al reactivar una gran cantidad de DAGs, puedes usar los siguientes comandos de la CLI de Airflow para reactivar todos los DAGs a la vez:

    gcloud composer environments run COMPOSER_2_ENV dags unpause \
      --project PROJECT_ID \
      --location COMPOSER_2_LOCATION \
      -- -y --treat-dag-id-as-regex ".*"
    
  • (Versiones de Airflow anteriores a la 2.9.1) Si se producen errores de cuota al reanudar 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.

Paso 6: Comprueba si hay errores en el DAG

  1. En la interfaz web de Airflow, ve a DAGs y busca los errores de sintaxis del DAG que se hayan informado.

  2. Verifica que las ejecuciones del DAG estén programadas para el momento correcto.

  3. Espera a que se ejecuten los DAG en el entorno de Managed Airflow (Gen 2) y verifica si se completaron correctamente. Si una ejecución del DAG se realizó correctamente, no la reanudes en el entorno de Managed Airflow (Legacy Gen 1). Si lo haces, se producirá una ejecución del DAG para la misma fecha y hora en tu entorno de Managed Airflow (Legacy Gen 1).

  4. Si falla una ejecución de DAG específica, intenta solucionar el DAG hasta que se ejecute correctamente en Managed Airflow (gen. 2).

Paso 7: Supervisa tu entorno de Managed Airflow (2ª gen.)

Después de transferir todos los DAG y la configuración al entorno de Managed Airflow (Gen 2), supervisa si hay problemas potenciales, ejecuciones de DAG fallidas y el estado general del entorno.

Si el entorno de Managed Airflow (Gen 2) se ejecuta sin problemas durante un período suficiente, considera borrar el entorno de Managed Airflow (Legacy Gen 1).

¿Qué sigue?