Importar operadores de pacotes do provedor de backport

Cloud Composer 1 | Cloud Composer 2

Nesta página, explicamos o que são os pacotes de provedores de backport do Airflow (em inglês) e como usá-los nos DAGs.

Os pacotes do provedor de backport são versões do Airflow de operadores, transferências, sensores, hooks e secrets empacotados como módulos PyPI.

Para simplificar, este documento foca apenas em operadores. É possível usar todo o outro conteúdo de um pacote de backport da mesma forma que os operadores.

Os pacotes do provedor de backport resolvem um problema importante: é possível receber novos recursos e atualizações de segurança para operadores, transferências, sensores e hooks sem fazer upgrade do ambiente do Airflow para uma versão mais recente. Por exemplo, o pacote do provedor para o Google está disponível no Airflow 2. É possível importar operadores da versão backport desse pacote no ambiente do Airflow 1.10.*.

Antes de o Apache Airflow introduzir o conceito de pacotes de provedores de backport, os operadores eram parte integrante do Airflow. Para receber novas versões dos operadores, você precisava de uma versão mais recente do Airflow. Isso exigiu o upgrade do ambiente do Cloud Composer para uma versão posterior. O Airflow 2 se afasta desse modelo e introduz pacotes de provedor. Um pacote de provedor para o Airflow 2 é um módulo PyPI que contém operadores, transferências, sensores, hooks e secrets de um provedor específico (por exemplo, o Google). Se você usa o Airflow 1.10.*, pode se beneficiar dessa alteração e usar versões com backport de pacotes de provedores.

Usar pacotes de backport pré-instalados

Alguns pacotes de backport já estão instalados nas imagens do Cloud Composer. Você não precisa instalar esses pacotes de backport no seu ambiente. Basta importar os operadores de um pacote de backport no código do DAG, conforme descrito mais adiante nesta página.

Para verificar quais pacotes de backport estão disponíveis no seu ambiente, consulte a lista de pacotes na imagem do Cloud Composer do seu ambiente.

Cada pacote de backport pré-instalado no ambiente tem uma versão específica. Se quiser usar uma versão diferente, atualize o ambiente e especifique a versão necessária. Não recomendamos fazer downgrade de pacotes de backport pré-instalados. Instale uma versão anterior somente se você descobrir um problema com uma versão mais recente. Não é possível desinstalar pacotes de backport pré-instalados, apenas alterar as versões instaladas.

Instalar e fazer upgrade dos pacotes de backport

Para instalar ou fazer upgrade de um pacote de backport:

  1. Encontre o pacote de backport necessário em PyPI.org.

  2. Instale ou faça upgrade do pacote como qualquer outro pacote PyPI.

  3. Se necessário, instale as dependências de pacotes de vários provedores. Essas são dependências extras que podem ser necessárias para usar todos os recursos do pacote de backport.

    Por exemplo, para usar o SalesforceToGcsOperator do apache-airflow-backport-providers-google, você precisa do [salesforce] extra. Instale apache-airflow-backport-providers-google e especifique o [salesforce] extra no campo Extras e versão.

Importar operadores de pacotes do provedor de backport em DAGs

Para ver um conteúdo de um pacote de backport, acesse a página do pacote de backport em PyPI.org (em inglês). Por exemplo, a página para apache-airflow-backport-providers-google lista operadores, transferências, sensores, hooks e secrets para esse pacote.

Os pacotes do provedor de backport introduzem operadores novos e movidos e outros conteúdos. Há uma diferença entre esses dois tipos de conteúdo, conforme explicado posteriormente.

Importar novos operadores

Novos operadores são aqueles que não existem no Airflow 1.10.*. Se você tentar importar esse operador sem o pacote de backport, ocorrerá um erro de importação.

Para usar novos operadores de um pacote de backport, importe-os do pacote airflow.providers.* correspondente, conforme descrito na página deste pacote de backport em PyPI.org.

O exemplo a seguir importa novos operadores do pacote apache-airflow-backport-providers-google:

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

Importar operadores movidos

Os operadores movidos são aqueles que já existem no Airflow 1.10.*. Depois de instalar um pacote do operador de backport, é possível importar duas versões diferentes de um operador. Uma é empacotada com o Airflow, e a outra é um operador movido. Para usar um operador movido, importe-o usando um novo caminho de importação.

Para usar operadores movidos de um pacote de backport, importe-os de um pacote airflow.contrib.* correspondente, conforme descrito na página desse pacote de backport em PyPI.org.

O exemplo a seguir importa operadores movidos do pacote apache-airflow-backport-providers-google:

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

A seguir