Importer des opérateurs provenant de packages de fournisseurs de rétroportages

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Cette page explique ce que sont les packages de fournisseurs de rétroportage Airflow et comment les utiliser dans les DAG.

Les packages de fournisseur de rétroportages sont des versions Airflow 2 d'opérateurs, de transferts, de capteurs, de hooks et de secrets empaquetés sous forme de modules PyPI.

Pour simplifier les choses, ce document se concentre uniquement sur les opérateurs. Vous pouvez utiliser tout le contenu d'un package rétroportage de la même manière que pour les opérateurs.

Les packages de fournisseur de rétroportages résolvent un problème important : vous pouvez obtenir de nouvelles fonctionnalités et des mises à jour de sécurité pour les opérateurs, les transferts, les capteurs et les hooks sans mettre à niveau votre environnement Airflow vers une version ultérieure. Par exemple, le package de fournisseurs pour Google est disponible dans Airflow 2. Vous pouvez importer des opérateurs à partir de la version rétroportée de ce package dans votre environnement Airflow 1.10.*.

Avant qu'Apache Airflow n'introduise le concept de packages de fournisseur de rétroportages, les opérateurs faisaient partie intégrante d'Airflow. Pour obtenir de nouvelles versions d'opérateurs, vous avez besoin d'une version plus récente d'Airflow. Cela nécessite la mise à niveau de votre environnement Cloud Composer vers une version ultérieure. Airflow 2 s'écarte de ce modèle et introduit des packages de fournisseurs. Un package fournisseur pour Airflow 2 est un module PyPI qui contient des opérateurs, des transferts, des capteurs, des hooks et des secrets pour un fournisseur spécifique (par exemple, Google). Si vous utilisez Airflow 1.10.*, vous pouvez bénéficier de cette modification et utiliser des versions rétroportées des packages du fournisseur.

Utiliser des packages de rétroportage préinstallés

Certains packages de rétroportage sont déjà installés dans les images Cloud Composer. Vous n'avez pas besoin d'installer ces packages de rétroportage dans votre environnement. Veillez simplement à importer des opérateurs à partir d'un package de rétroportage dans votre code DAG, comme décrit plus loin sur cette page.

Pour vérifier les packages de rétroportage disponibles dans votre environnement, consultez la liste des packages dans l'image Cloud Composer de votre environnement.

Chaque package de rétroportage préinstallé dans votre environnement possède une version spécifique. Si vous souhaitez utiliser une version différente, mettez à jour votre environnement et spécifiez la version requise. Nous vous déconseillons de revenir à une version antérieure des packages de rétroportage. Installez une version antérieure uniquement si vous détectez un problème avec une version ultérieure. Vous ne pouvez pas désinstaller les packages de rétroportage préinstallés. Ne modifiez que les versions installées.

Installer et mettre à niveau des packages de rétroportage

Pour installer ou mettre à niveau un package de rétroportage, procédez comme suit :

  1. Recherchez le package de rétroportage requis sur PyPI.org.

  2. Installez ou mettez à niveau le package comme n'importe quel autre package PyPI.

  3. Si nécessaire, installez les dépendances de package de plusieurs fournisseurs. Il s'agit de dépendances supplémentaires dont vous devrez peut-être utiliser toutes les fonctionnalités du package de rétroportage.

    Par exemple, pour utiliser la fonction SalesforceToGcsOperator de apache-airflow-backport-providers-google, vous avez besoin des [salesforce] supplémentaires. Installez apache-airflow-backport-providers-google et spécifiez le supplément [salesforce] dans le champ Extras et version.

Importer des opérateurs provenant de packages de fournisseurs de rétroportages dans les DAG

Pour afficher une liste de contenus dans un package de rétroportage, accédez à la page du package de rétroportage sur PyPI.org. Par exemple, la page de apache-airflow-backport-providers-google répertorie les opérateurs, les transferts, les capteurs, les hooks et les secrets pour ce package.

Les packages de fournisseur de rétroportages introduisent des opérateurs nouveaux et déplacés, ainsi que d'autres contenus. Il existe une différence entre ces deux types de contenu, comme expliqué ultérieurement.

Importer de nouveaux opérateurs

Les nouveaux opérateurs sont ceux qui n'existent pas dans Airflow 1.10*. Si vous essayez d'importer un tel opérateur sans son package de rétroportage, vous obtenez une erreur d'importation.

Pour utiliser de nouveaux opérateurs à partir d'un package de rétroportage, importez-les à partir de leur package airflow.providers.* correspondant, comme décrit sur la page de ce package de rétroportage sur PyPI.org.

L'exemple suivant importe de nouveaux opérateurs à partir du apache-airflow-backport-providers-google package:

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

Importer des opérateurs déplacés

Les opérateurs déplacés sont ceux qui existent déjà dans Airflow 1.10*. Après avoir installé un package d'opérateur de rétroportage, vous pouvez importer deux versions différentes d'un opérateur. Une version est fournie avec Airflow et une autre est un opérateur déplacé. Pour utiliser un opérateur déplacé, importez-le à l'aide d'un nouveau chemin d'importation.

Pour utiliser des opérateurs déplacés à partir d'un package de rétroportage, importez-les depuis un package airflow.contrib.* correspondant, comme décrit sur la page de ce package de rétroportage sur PyPI.org.

L'exemple suivant importe les opérateurs déplacés à partir du package apache-airflow-backport-providers-google :

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

Étape suivante