Importar operadores desde paquetes de proveedores de portabilidad a versiones anteriores

Cloud Composer 1 | Cloud Composer 2

En esta página, se explica qué son los paquetes de proveedores de portabilidad a versiones anteriores de Airflow y cómo puedes usarlos en tus DAG.

Los paquetes de proveedores de portabilidad a versiones anteriores son versiones de operadores,, transferencias, sensores y hooks de Airflow 2, que se empaquetan como módulos de PyPI.

Para simplificar las cosas, este documento se centra solo en los operadores. Puedes usar todo el resto del contenido de un paquete de portabilidad a versiones anteriores de la misma manera que se muestra para los operadores.

Los paquetes de proveedores de portabilidad a versiones anteriores resuelven un problema importante: puedes obtener nuevas funciones y actualizaciones de seguridad para operadores, transferencias, sensores y hooks sin actualizar tu entorno de Airflow a una versión posterior. Por ejemplo, el paquete del proveedor para Google está disponible en Airflow 2. Puedes importar operadores desde la versión de portabilidad a versiones anteriores de este paquete en tu entorno de Airflow 1.10.*.

Antes de que Apache Airflow presentase el concepto de paquetes de proveedores de portabilidad a versiones anteriores, los operadores eran una parte integral de Airflow. Para obtener versiones nuevas de operadores, necesitas una versión más reciente de Airflow. Esto requirió actualizar tu entorno de Cloud Composer a una versión posterior. Airflow 2 se aleja de este modelo y presenta paquetes de proveedores. Un paquete de proveedores para Airflow 2 es un módulo de PyPI que contiene operadores, transferencias, sensores, hooks y secrets de un proveedor específico (por ejemplo, Google). Si usas Airflow 1.10.*, puedes beneficiarte de este cambio y usar versiones anteriores de paquetes de proveedores.

Usa paquetes de portabilidad a versiones anteriores preinstalados

Algunos paquetes de portabilidad a versiones anteriores ya están instalados en las imágenes de Cloud Composer. No necesitas instalar estos paquetes de portabilidad a versiones anteriores en tu entorno. Solo asegúrate de importar los operadores desde un paquete de portabilidad a versiones anteriores en tu código de DAG, como se describe más adelante en esta página.

Para verificar qué paquetes de backport están disponibles en tu entorno, consulta la lista de paquetes en la imagen de Cloud Composer para tu entorno.

Cada paquete de portabilidad a versiones anteriores preinstalado en tu entorno tiene una versión específica. Si deseas usar una versión diferente, actualiza tu entorno y especifica la versión requerida. No recomendamos cambiar a una versión inferior los paquetes de portabilidad a versiones anteriores preinstalados. Instala una versión anterior solo si descubres un problema en una versión posterior. No puedes desinstalar paquetes de portabilidad a versiones anteriores preinstalados, solo cambia las versiones instaladas.

Instalación y actualización de paquetes de portabilidad a versiones anteriores

Para instalar o actualizar un paquete de portabilidad a versiones anteriores, haz lo siguiente:

  1. Encuentra el paquete de portabilidad a versiones anteriores requerido en PyPI.org.

  2. Instala o actualiza el paquete como cualquier otro paquete de PyPI.

  3. Si es necesario, instala las dependencias de paquetes de proveedores cruzados. Estas son dependencias adicionales que tal vez necesites para usar todas las características del paquete de portabilidad a versiones anteriores.

    Por ejemplo, para usar SalesforceToGcsOperator desde apache-airflow-backport-providers-google, necesitas el [salesforce] adicional. Instala apache-airflow-backport-providers-google y especifica el elemento [salesforce] adicional en el campo Extras y versión.

Importación de operadores de paquetes de proveedores de portabilidad a versiones anteriores en DAG

Para ver una lista del contenido en un paquete de portabilidad a versiones anteriores, ve a la página del paquete en PyPI.org. Por ejemplo, la página para apache-airflow-backport-providers-google enumera los operadores, las transferencias, los sensores, los hooks y los secrets de este paquete.

Los paquetes de proveedores de portabilidad a versiones anteriores presentan operadores nuevos y movidos y otro contenido. Existe una diferencia entre estos dos tipos de contenido, como se explicará más adelante.

Importación de operadores nuevos

Los operadores nuevos son aquellos que no existen en Airflow 1.10.*. Si intentas importar ese operador sin su paquete de portabilidad a versiones anteriores, recibirás un error de importación.

Para usar operadores nuevos de un paquete de portabilidad a versiones anteriores, impórtalos desde su paquete airflow.providers.* correspondiente, como se describe en la página de este paquete de portabilidad a versiones anteriores en PyPI.org.

En el siguiente ejemplo, se importan operadores nuevos del paquete apache-airflow-backport-providers-google:

from airflow.providers.google.cloud.operators.bigquery_dts import (
    BigQueryCreateDataTransferOperator,
    BigQueryDeleteDataTransferConfigOperator,
    )

Importación de los operadores movidos

Los operadores movidos son aquellos que ya existen en Airflow 1.10.*. Después de instalar un paquete de operador de portabilidad a versiones anteriores, puedes importar dos versiones diferentes de un operador. Una versión se incluye con Airflow y la otra es un operador transferido. Para usar un operador movido, impórtalo mediante una ruta de importación nueva.

Para usar operadores movidos de un paquete de portabilidad a versiones anteriores, impórtalos desde un paquete airflow.contrib.* correspondiente, como se describe en la página para este paquete de portabilidad a versiones anteriores en PyPI.org.

En el siguiente ejemplo, se importan los operadores movidos del paquete apache-airflow-backport-providers-google:

from airflow.contrib.operators.bigquery_operator import (
    BigQueryCreateEmptyDatasetOperator,
    BigQueryOperator,
    )

¿Qué sigue?