Importer des opérateurs à partir d'un fournisseur de rétroportages

Cette page explique en quoi consistent les packages de fournisseurs de solutions de relais Airflow et comment les utiliser dans vos DAG.

Les packages de fournisseurs rétro sont des versions Airflow 2 des opérateurs, transferts, capteurs, hooks et secrets fournis en tant que modules PyPI.

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

Les packages de fournisseurs rétroportent un problème important: vous pouvez obtenir de nouvelles fonctionnalités et 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 Provider 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 ait introduit le concept de packages de fournisseurs rétroportés, les opérateurs faisaient partie intégrante d'Airflow. Pour obtenir de nouvelles versions des opérateurs, vous avez besoin d'une version plus récente d'Airflow. Pour cela, vous devez mettre à niveau votre environnement Cloud Composer vers une version ultérieure. Airflow 2 quitte 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 rétroportés préinstallés

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

Pour connaître les packages de rétroportages disponibles dans votre environnement, consultez la liste des packages dans l'image Cloud Composer correspondant à votre environnement.

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

Installer et mettre à niveau des packages de rétroportages

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

  1. Trouvez le package de rétroporteur requis sur PyPI.org.

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

  3. Si nécessaire, installez des dépendances de package auprès de différents fournisseurs. Il s'agit de dépendances supplémentaires dont vous pourriez avoir besoin pour utiliser toutes les fonctionnalités du package de rétroportage.

    Par exemple, pour utiliser SalesforceToGcsOperator depuis apache-airflow-backport-providers-google, vous avez besoin du préfixe [salesforce]. Installez apache-airflow-backport-providers-google et spécifiez le paramètre [salesforce] supplémentaire dans le champ Extras and version.

Opérateurs d'importation à partir de packages des fournisseurs de services de rétroportage dans les DAG

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

Les packages de fournisseurs rétroportent 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é plus loin.

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 rétroportage, vous obtenez une erreur d'importation.

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

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

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*. Une fois que vous avez installé un package d'opérateur backport, vous pouvez importer deux versions différentes d'un opérateur. Une version est fournie avec Airflow, tandis qu'une autre est un opérateur déplacé. Si vous souhaitez utiliser un opérateur déplacé, importez-le en utilisant un nouveau chemin d'importation.

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

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

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

Étape suivante