Accéder au contenu principal Passer au contenu complémentaire

Apache Airflow - Import

Availability-note AWS

Prérequis du pont

Ce pont :
  • nécessite un accès à Internet vers https://repo.maven.apache.org/maven2/ et/ou d'autres sites d'outils permettant de télécharger des pilotes dans <TDC_HOME>/data/download/MIMB/.

Spécifications du pont

Fournisseur Apache
Nom de l'outil Airflow
Version de l'outil Current
Site Web de l'outil http://airflow.apache.org/
Méthodologie supportée [Intégration de données] Multimodèle, Référentiel de métadonnées, ETL (Data Stores sources et cibles) via une API REST sur un fichier JSON
Profiling de données
Collecte incrémentale
Collecte multi-modèle
Navigation dans le référentiel distant pour sélectionner un modèle

SPÉCIFICATIONS
Outil : Apache/Atlas version courante via l'API REST Java
Consultez https://atlas.apache.org/
Métadonnées : [Gestion des métadonnées] Multimodèle, Référentiel de métadonnées, Data Store (Modèle de données physique), ETL (Data stores sources et cibles, Lignage de transformation, Parsage d'expressions)
Composant : ApacheAtlas version 11.2.0

AVERTISSEMENT
Ce pont d'import nécessite un accès à Internet pour télécharger les bibliothèques tierces :
- comme https://repo.maven.apache.org/maven2/ pour télécharger les bibliothèques open source tierces,
- et d'autres sites pour plus de logiciels tiers, comme des pilotes de bases de données spécifiques à JDBC.

Les bibliothèques tierces téléchargées sont stockées dans $HOME/data/download/MIMB/
- Si le protocole HTTPS échoue, le pont d'import essaye ensuite avec HTTP.
- Si un proxy est utilisé pour accéder à Internet, vous devez configurer ce proxy dans l'environnement JRE (voir l'option -java.parameters dans le paramètre Divers).
- Si le pont d'import n'a pas d'accès à Internet, le répertoire $HOME/data/download/MIMB/ peut être copié depuis un autre serveur qui a accès à Internet, où la commande $HOME/bin/MIMB.sh (ou .bat) -d peut être utilisée pour télécharger en une fois toutes les bibliothèques tierces utilisées par tous les ponts.

En exécutant ce pont d'import, vous reconnaissez être responsable des conditions d'utilisation et de toute autre faille de sécurité potentielle liées au téléchargement de ces bibliothèques logicielles tierces.

VUE D'ENSEMBLE
OpenLineage https://openlineage.io/ est une plateforme ouverte pour la collecte et l'analyse de lignages de données. Elle suit les métadonnées des jeux de données, jobs et exécutions, offrant une manière unifiée de capturer et partager des flux de données à travers différentes étapes de pipelines de données. La documentation se trouve sur le site https://openlineage.io/docs/

L'écosystème OpenLineage supporte l'intégration avec les outils les plus populaires, comme Apache Airflow, Spark ou encore DBT. La liste des intégrations supportées se trouve à l'adresse https://openlineage.io/docs/integrations/about

Parmi ces intégrations, ce pont OpenLineage ne supporte qu'Apache Airflow et DBT

- APACHE AIRFLOW :
Apache Airflow https://airflow.apache.org/ est une plateforme Open source utilisée pour écrire, planifier et monitorer des workflows de manière programmatique. Airflow représente les workflows comme des graphes acycliques dirigés (DAG), dans lesquels les tâches sont connectées aux dépendances et flux de données.Les tâches et les dépendances sont définies en Python et Airflow en gère la planification et l'exécution. Les DAG peuvent être exécutés en fonction d'un planning défini (chaque heure ou jour par ex.) ou en fonction d'événements déclencheurs externes (par ex. un fichier ajouté à Hive).

Apache Airflow utilise OpenLineage pour fournir un lignage de données complet pour les pipelines de données orchestrés par Airflow. OpenLineage offre un fournisseur Apache Airflow dédié (apache-airflow-providers-openlineage) simplifiant le processus d'intégration. Ce fournisseur permet à Airflow d'émettre des événements OpenLineage automatiquement lorsque les DAG et les tâches s'exécutent.

Vous pouvez trouver la documentation OpenLineage pour Airflow à l'adress
https://openlineage.io/docs/integrations/airflow/
https://airflow.apache.org/docs/apache-airflow-providers-openlineage/stable/index.html

Ce pont d'import importe les DAG et tâches Airflow depuis les fichiers de métadonnées OpenLineage. Ainsi, les limitations de la population Airflow d'OpenLineage et les limitations du standard OpenLineage vont transférer ce que le pont arrive à capturer.

- DBT :
Dbt (data build tool) https://www.getdbt.com/ est un moteur de transformation. Il opère sur des données au sein d'un data warehouse, pour que les ingénieurs de données puissent construire des pipelines complexes. Même s'il n'effectue pas l'extraction et le chargement des données, il est très puissant sur les transformations.

Vous pouvez trouver la documentation OpenLineage pour dbt à l'adresse suivante
https://openlineage.io/docs/integrations/dbt

LIMITATIONS
Consultez les limitations générales connues actuellement sur MIMB Known Limitations

- OpenLineage pour Airflow fournit un lignage au niveau des colonnes avec certains opérateurs comme SQLExecuteQueryOperator, GCSToBigQueryOperator, BigQueryToGCSOperator, PythonOperator et BashOperator. Utiliser GenericOperator ou un autre opérateur pour le transfert des données entre des bases de données (par ex., de SQL Server vers Snowflake) ne génère aucun lignage.
- OpenLineage pour Airflow ne fournit pas de comparaison entre les données et les détails du flux de contrôle.
- OpenLineage pour Airflow ne fournit pas les détails de lignage pour les opérateurs SQL comme WHERE, FILTER, HAVING, etc.
- OpenLineage pour Airflow ne spécifie pas si les noms des bases de données, schémas, tables et colonnes sont sensibles à la casse.
- OpenLineage pour Airflow ne fournit pas d'expression pour les colonnes.


Paramètres du pont

Nom du paramètre Description Type Valeurs Défaut Scope
HTTP Namespace (Espace de noms HTTP) Spécifiez ici l'espace de noms OpenLineage du client (Airflow, DBT) passant les événements à l'écouteur MIMBWebServices OpenLineage utilisant le transport HTTP OpenLineage. L'option 'Répertoire de fichiers' sera ignorée et n'aura aucun effet. REPOSITORY_MODEL      
File Directory (Répertoire de fichiers) Spécifiez ici le répertoire contenant les fichiers des événements OpenLineage créés par le transport de fichiers OpenLineage. Utilisez l'option 'File Directory (Répertoire de fichiers)' si vous avez enregistré les métadonnées dans des fichiers, de manière séparée. RÉPERTOIRE      
Miscellaneous INTRODUCTION
Spécifiez les options Divers, commençant par un tiret et suivies éventuellement par des paramètres, par exemple :
-connection.cast MyDatabase1="MICROSOFT SQL SERVER"
Certaines options peuvent être utilisées plusieurs fois, si applicable, par exemple :
-connection.rename NewConnection1=OldConnection1 -connection.rename NewConnection2=OldConnection2;
La liste d'options pouvant être une longue chaîne, il est possible de la charger à partir d'un fichier qui doit être situé dans ${MODEL_BRIDGE_HOME}\data\MIMB\parameters et avoir l'extension .txt. Dans ce cas, toutes les options doivent être définies au sein de ce fichier comme seule valeur de ce paramètre, par exemple
ETL/Miscellaneous.txt

OPTIONS DE L'ENVIRONNEMENT JAVA
-java.memory <taille maximale de la mémoire Java> (anciennement -m)

1 Go par défaut sur un JRE de 64 bits ou tel que défini dans conf/conf.properties, par exemple
-java.memory 8G
-java.memory 8000M

-java.parameters <options de ligne de commande de Java Runtime Environment> (anciennement -j)

Cette option doit être la dernière dans le paramètre Divers car tout le texte après -java.parameters est passé tel quel à la JRE. Par ex.
-java.parameters -Dname=value -Xms1G
L'option suivante doit être définie lorsqu'un proxy est utilisé pour accéder à Internet (cela est essentiel pour accéder à https://repo.maven.apache.org/maven2/ et exceptionnellement à quelques autres sites d'outils) afin de télécharger les bibliothèques logicielles tierces nécessaires.
Note : La majorité des proxys sont relatifs au chiffrement (HTTPS) du trafic extérieur (à l'entreprise) et à la confiance en le trafic intérieur pouvant accéder au proxy via HTTP. Dans ce cas, une requête HTTPS atteint le proxy via HTTP où le proxy la chiffre en HTTPS.
-java.parameters -java.parameters -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=3128 -Dhttp.proxyUser=user -Dhttp.proxyPassword=pass

OPTIONS D'IMPORT DU MODÈLE
-model.name <nom modèle>

Écrase le nom du modèle, par ex.
-model.name "My Model Name"

-prescript <nom script>

Cette option permet d'exécuter un script avant l'exécution du pont.
Le script doit se situer dans le répertoire bin (ou comme spécifié dans M_SCRIPT_PATH dans conf/conf.properties) et avoir une extension .bat ou .sh.
Le chemin d'accès au script ne doit pas inclure de symbole relatif au répertoire parent (..).
Le script doit retourner le code de sortie 0 pour indiquer un succès ou une autre valeur pour indiquer un échec.
Par exemple :
-prescript "script.bat arg1 arg2"

-postscript <nom script>

Cette option permet d'exécuter un script après l'exécution réussie du pont.
Le script doit se situer dans le répertoire bin (ou comme spécifié dans M_SCRIPT_PATH dans conf/conf.properties) et avoir une extension .bat ou .sh.
Le chemin d'accès au script ne doit pas inclure de symbole relatif au répertoire parent (..).
Le script doit retourner le code de sortie 0 pour indiquer un succès ou une autre valeur pour indiquer un échec.
Par exemple :
-postscript "script.bat arg1 arg2"

-cache.clear

Vide le cache avant l'import et va exécuter un import complet avec collecte incrémentale.

Si le modèle n'a pas été modifié et que le paramètre -cache.clear n'est pas utilisé (collecte incrémentale), une nouvelle version ne sera pas créée.
Si le modèle n'a pas été modifié et que le paramètre -cache.clear n'est pas utilisé (collecte incrémentale), une nouvelle version ne sera pas créée.

-backup <répertoire>

Permet d'enregistrer les métadonnées d'entrée à des fins de débogage. Le <répertoire> fourni doit être vide.

-restore <répertoire>

Spécifiez le <répertoire> de sauvegarde à restaurer.

OPTIONS DES CONNEXIONS DE DONNÉES
Les connexions de données sont produites par les ponts d'import, généralement à partir des outils ETL/DI et BI pour faire référence aux data stores sources et cibles qu'elles utilisent. Ces connexions de données sont ensuite utilisées par les outils de gestion des métadonnées pour connecter ces dernières (connexion des métadonnées) à leurs data stores réels (par exemple, bases de données, système de fichiers, etc.) afin de produire le lignage complet de flux de données et de l'analyse d'impact de bout en bout. Le nom des connexions de données doit être unique dans chaque modèle d'import. Les noms de connexion de données utilisés dans les outils de conception DI/BI sont utilisés quand cela est possible, sinon ils sont générés en étant courts mais significatifs, comme le nom de la base de données/du schéma, le chemin d'accès au système de fichiers ou l'URI (Uniform Resource Identifier). L'option suivante vous permet de manipuler les connexions. Ces options remplacent les options héritées -c, -cd et -cs.

-connection.cast ConnectionName=ConnectionType

Lance une connexion à une base de données générique (par exemple ODBC/JDBC) pour un type de base de données précis (par exemple ORACLE) pour une analyse SQL, par exemple
-connection.cast "My Database"="MICROSOFT SQL SERVER".
La liste des types de connexions aux data stores comprend :
ACCESS
APACHE CASSANDRA
DB2/UDB
DENODO
GOOGLE BIGQUERY
HIVE
MYSQL
NETEZZA
ORACLE
POSTGRESQL
PRESTO
REDSHIFT
SALESFORCE
SAP HANA
SNOWFLAKE
MICROSOFT SQL AZURE
MICROSOFT SQL SERVER
SYBASE SQL SERVER
SYBASE AS ENTERPRISE
TERADATA
VECTORWISE
HP VERTICA

-connection.rename OldConnection=NewConnection

Renomme une connexion existante, par exemple, par ex.
-connection.rename OldConnectionName=NewConnectionName
Plusieurs connexions de bases de données existantes peuvent être renommées et fusionnées en une nouvelle connexion de base de données, par exemple :
-connection.rename MySchema1=MyDatabase -connection.rename MySchema2=MyDatabase

-connection.split oldConnection.Schema1=newConnection

Scinde une connexion de base de données en une ou plusieurs connexions de base de données.
Une connexion de base de données peut être scindée en une connexion par schéma, par exemple :
-connection.split MyDatabase
Toutes les connexions de base de données peuvent être fractionnées en une connexion par schéma, par exemple :
-connection.split *
Une connexion de base de données peut être explicitement fractionnée en une nouvelle connexion de base de données en ajoutant un nom de schéma à une base de données, par exemple :
-connection.split MyDatabase.schema1=MySchema1

-connection.map SourcePath=DestinationPath

Mappe un chemin d'accès source à un chemin d'accès de destination. Cela est utile pour les connexions aux systèmes de fichiers lorsque différents chemins d'accès pointent vers le même objet (répertoire ou fichier).
Sur Hadoop, un processus peut écrire dans un fichier CSV spécifié avec le chemin d'accès complet HDFS, tandis qu'un autre processus lit d'une table Hive implémentée (externe) par le même fichier spécifié à l'aide d'un chemin d'accès relatif avec un nom et une extension de fichier par défaut, par exemple :
-connection.map /user1/folder=hdfs://host:8020/users/user1/folder/file.csv
Sous Linux, il peut être fait référence à un répertoire (ou à un fichier) donné tel que /data par plusieurs liens symboliques tels que /users/john et /users/paul, par exemple :
-connection.map /data=/users/John -connection.map /data=/users/paul
Sous Windows, il peut être fait référence à un répertoire donné tel que C:\data par plusieurs lecteurs réseau tels que M: et N:, par exemple :
-connection.map C:\data=M:\ -connection.map C:\data=N:\

-connection.casesensitive ConnectionName...

Écrase les règles de rapprochement insensibles à la casse par défaut pour les identifiants d'objets dans la connexion spécifiée, si le type du data store détecté supporte cette configuration (par ex. Microsoft SQL Server, MySQL etc.), par exemple :
-connection.casesensitive "My Database"

-connection.caseinsensitive ConnectionName...

Écrase les règles de rapprochement sensibles à la casse par défaut pour les identifiants d'objets dans la connexion spécifiée, si le type du data store détecté supporte cette configuration (par ex. Microsoft SQL Server, MySQL etc.), par exemple :
-connection.caseinsensitive "My Database"

-connection.level AggregationLevel

Spécifie le niveau d'agrégation pour les connexions externes, par exemple -connection.level catalog
Liste des valeurs supportées :
server (serveur)
catalog (catalogue)
schema (schéma) (par défaut)

OPTIONS ETL
Ces options sont disponibles dans tous les ponts d'import de scrit et d'outils d'intégration de données/d'ETL afin de :
- traiter tous les parsages SQL
- construire des modèles au moment de l'exécution à partir de modèles de conception et de variables d'exécution,
- calculer un lignage de synthèse au moment de l'exécution.

-etl.summary.add.ultimate (anciennement -ppus)

Ajoute la dernière synthèse de lignage d'exécution (peut générer un modèle très volumineux).

-etl.summary.only.ultimate (précédemment -ppsp)

Produit uniquement la dernière synthèse de lignage d'exécution (peut générer un modèle très volumineux).

-etl.connections.add.internal.design (précédemment -pppd)

Ajoute les connecteurs internes de données de conception ETL (requis pour la conversion ETL).

-etl.connections.remove.input (anciennement -ri)

Supprime toutes les connexions de données d'entrée (source), afin de réduire la taille du modèle généré.

-etl.transformations.enable.xml

Cette option permet le parsage et le support des transformations XML dans des ponts d'import d'intégration de données/ETL comme Informatica PowerCenter, Informatica Developer, Microsoft SSIS, IBM DataStage et Talend Data Integration.
Dans le cas d'Informatica, de telles transformations XML correspondent aux fonctionnalités suivantes de PowerCenter
https://docs.informatica.com/data-integration/powercenter/10-5/xml-guide/midstream-xml-transformations.html
https://docs.informatica.com/data-integration/powercenter/10-5/xml-guide/xml-source-qualifier-transformation.html
Notez que cette option peut ralentir l'import de manière considérable.

-model.merge

Fusionne tous les états des tâches dans un seul modèle, avec le lignage qui en résulte.
Chaîne de caractères      

 

Mapping du pont

Les informations de mapping ne sont pas disponibles

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.