Amazon Web Services (AWS) Glue ETL (via Apache Spark) - Import
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 | Amazon |
Nom de l'outil | AWS Glue ETL (via Apache Spark) |
Version de l'outil | Spark 2.x à 3.x |
Site Web de l'outil | https://aws.amazon.com/glue/ |
Méthodologie supportée | [Intégration de données] Multimodèle, Data Store (Modèle de données physique), (Data Stores sources et cibles, Lignage de transformation, Parsage d'expressions) via Spark avec Python ou un fichier Scala |
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 : Amazon/AWS Glue ETL (via Apache Spark) version de Spark 2.x à 3.x via Spark avec fichier Python ou Scala
Consultez https://aws.amazon.com/glue/
Métadonnées : [Intégration de données] Multimodèle, Data Store (Modèle de données physique), (Data Stores sources et cibles, Lignage de transformation, Parsage d'expressions)
Composant : ApacheSparkImport.AmazonGlueETL 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 plus de sites pour d'autres logiciels tiers, comme les pilotes JDBC spécifiques pour les bases de données.
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 -j 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
L'objectif de ce pont d'import Apache Spark est de détecter et parser toutes les instructions Spark des scripts Python ou Scala
afin de générer le périmètre exact (modèles de données) des data stores sources et cibles,
ainsi que le lignage et l'analyse d'impact du flux de données (modèle d'intégration de données ETL/ELT) entre eux.
PRÉREQUIS
Dans Amazon AWS Glue Console, accédez à la zone ETL/Jobs où trouver les scripts ETL.
Chacun d'entre eux est marqué d'un type (par exemple Spark), un langage ETL (par exemple Python),
et un emplacement de script affichant leur emplacement de stockage (par défaut sur S3).
Ce pont peut importer ces scripts téléchargés depuis S3. Saisissez l'URL S3 dans le paramètre 'Répertoire'.
Pour vous connecter à S3 et télécharger les scripts, ce pont supporte les types d'identité Cloud suivants :
Amazon Web Services
Microsoft Azure
Google Cloud
Utiliser une identité Cloud nécessite d'avoir un rôle dont la politique permet d'accéder à S3. Par exemple : AmazonS3ReadOnlyAccess.
FOIRE AUX QUESTIONS
Q : Comment puis-je spécifier les fichiers des jobs Amazon Glue S3 Spark ?
R : Le paramètre 'Répertoire' peut être utilisé pour spécifier une URL dans Amazon S3, utilisée par Amazon Glue pour stocker les scripts.
Pour obtenir la bonne URL S3, vous pouvez utiliser l'interface de la console S3, naviguer jusqu'à l'un des objets à importer
, aller dans le champ URL de l'objet, copier l'URL et supprimer le nom et le type du fichier, pour importer le dossier complet.
Par ex. https://eu-west-2.console.aws.amazon.com/s3/object/aws-glue-assets-11223344556677-eu-west-2/scripts/MySQL_2_Snowflake.py
Modifiez l'URL pour supprimer le nom et le type du fichier, comme suit :
https://eu-west-2.console.aws.amazon.com/s3/object/aws-glue-assets-259024176822-eu-west-2/scripts/
LIMITATIONS
Consultez les limitations générales connues à l'adresse https://metaintegration.com/Products/MIMB/Help/#!Documents/mimbknownlimitations.html
SUPPORT
Fournissez un package de dépannage avec :
- le log de débogage (peut être défini dans l'UI ou dans conf/conf.properties avec MIR_LOG_LEVEL=6)
- la sauvegarde des métadonnées si disponible (peut être configurée dans le paramètre Divers avec l'option -backup, même si cette option commune n'est pas implémentée pour tous les ponts pour des raisons techniques).
Paramètres du pont
Nom du paramètre | Description | Type | Valeurs | Défaut | Périmètre | ||
Directory | Spécifiez un répertoire contenant les fichiers de code source (texte) Apache Spark. Pour les jobs Amazon Glue ETL Spark, vous pouvez spécifier ici l'emplacement de l'URL Amazon S3 utilisée par Amazon Glue, sans le nom et le type du fichier. Consultez la section FAQ pour plus d'informations. |
RÉPERTOIRE | Éléments obligatoires | ||||
Code de langage | Sélectionnez le langage. | ÉNUMÉRATION |
|
Python | |||
Filtre sur les répertoires | Spécifiez un filtre de recherche pour les sous-répertoires. Utilisez des expressions régulières au format Java si nécessaire (par ex. '.*_script'). Plusieurs conditions peuvent être définies en utilisant un espace comme séparateur (par ex. 'directory1 directory2'). La condition doit être échappée avec des guillemets doubles si elle contient des espaces (par ex. \"my directory\"). Une négation peut être définie en faisant précéder la condition d'un tiret (par ex. '-bin'). | Chaîne de caractères | |||||
Filtre sur les fichiers | Spécifiez un filtre de recherche pour les fichiers. Utilisez des expressions régulières au format Java si nécessaire (par ex. '.*\\.py'). Plusieurs conditions peuvent être définies en utilisant un espace comme séparateur (par ex. 'file1 file2'). La condition doit être échappée avec des guillemets doubles si elle contient des espaces (par ex. \"my file.py\"). Une négation peut être définie en faisant précéder la condition d'un tiret (par ex. '-\.tar\.gz'). | Chaîne de caractères | |||||
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. OPTIONS APACHE SPARK -e <encoding> Cette valeur est utilisée pour charger du texte depuis les fichiers de script spécifiés. Par défaut, UTF-8 est utilisé. Par ex. -e UTF-16 -e UTF-16BE -e US-ASCII -p <path name> Chemin complet vers le fichier YAML définissant tous les paramètres d'entrée des scripts de parsage et leurs paramètres d'entrée. Le nouveau modèle sera généré automatiquement si le fichier n'existe pas. Utilisez des guillemets doubles d'échappement pour le chemin qui contient des espaces. |
Chaîne de caractères |
Mapping du pont
Les informations de mapping ne sont pas disponibles