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

Script de base de données SQL DML (DI/ETL) - Import

Availability-note AWS

Spécifications du pont

Fournisseur ISO
Nom de l'outil Base de données
Version de l'outil SQL-92 à SQL-2011
Site Web de l'outil http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=53681
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 un fichier TXT SQL
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 : ISO/Base de données version SQL-92 à SQL-2011 via un fichier SQL TXT
Consultez http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=53681
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 : SqlScript version 11.2.0

VUE D'ENSEMBLE
Ce pont d'import parse un répertoire de scripts SQL Data Manipulation Language (SQL DML) de base de données pour extraire :
- Les modèles de données de la connexion de données de leurs data stores sources et cibles (par ex. schémas, tables, colonnes de base de données).
- Les modèles d'intégration de données (DI/ETL/ELT/CDC) pour le lignage des flux de données entre ces data stores.

PRÉREQUIS
- DML vs DDL :
Ce pont d'import parse le langage SQL Data Manipulation Language (DML) complet, y compris les instructions pour insérer, mettre à jour et supprimer des données dans les tables, créant ainsi un modèle d'intégration de données (DI/ETL/ELT). Si les scripts SQL ne contiennent que des instructions pour créer un schéma, des tables, des vues, des procédures stockées, etc. vous devez alors utiliser le pont d'import qui importe du SQL Data Definition Language (DDL) créant uniquement un modèle de données de la base de données.

- DML vs JDBC :
Comme expliqué précédemment, si les scripts SQL DML se trouvent être uniquement des scripts DDL SQL (qui sont généralement compilés dans la base de données). Ces scripts DDL SQL peuvent être incomplets et peuvent ne pas être synchronisés avec la base de données actuelle. Pour cette raison, préférez toujours le pont d'import important des métadonnées de la base de données active via JDBC, plutôt que ce pont d'import analysant le DDL SQL (voir les limitations ci-dessous).

FOIRE AUX QUESTIONS
n/a

LIMITATIONS
Consultez les limitations générales connues à l'adresse MIMB Known Limitations ou dans Documentation/ReadMe/MIMBKnownLimitations.html où elles sont regroupées

SUPPORT
Fournissez un package de dépannage avec :
- le log de débogage (configurable dans l'interface ou dans conf/conf.properties avec MIR_LOG_LEVEL=6)
- la sauvegarde des métadonnées si disponible (configurable 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 Répertoire des scripts à importer. RÉPERTOIRE     Éléments obligatoires
Langage de script Langage des scripts SQL DML de base de données à importer. ÉNUMÉRATION
Teradata BTEQ
Teradata FastLoad
Teradata FastExport
IBM DB2 SQL
Oracle PL/SQL
Apache HiveQL
PostgreSQL
Snowflake
Teradata BTEQ  
Filtre par inclusion Modèle "Inclure un dossier et un filtre sur les fichiers" relatif au répertoire racine, basé sur la syntaxe d'expression étendue Glob UNIX sensible à la casse, par exemple :
*.* - inclut tout fichier au niveau racine
*.sql - inclut uniquement les fichiers SQL au niveau racine
**.sql - inclut uniquement les fichiers SQL à tous les niveaux
*.{sql,gz} - inclut uniquement les fichiers SQL ou GZ au niveau racine
dir/*.sql - inclut uniquement les fichiers SQL dans le dossier "dir"
dir/**.sql - inclut uniquement les fichiers SQL dans le dossier "dir" à tous les niveaux
dir/**.* - inclut tout fichier dans le dossier "dir" à tous les niveaux
f.sql - inclut uniquement f.sql sous le niveau racine
**/f.sql - inclut uniquement f.sql à tous les niveaux
**dir/** - inclut tout fichier dans le dossier "dir" à tous les niveaux
**dir1/dir2/** - inclut tous les fichiers dans n'importe quel dossier "dir2", sous n'importe quel dossier "dir1" à tous les niveaux

Si les filtres par inclusion et par exclusion sont vides, tous les dossiers et fichiers sous le répertoire racine sont inclus.
Chaîne de caractères      
Filtre par exclusion Modèle "Exclure un dossier et un filtre sur les fichiers" relatif au répertoire racine, exprimé à l'aide de la syntaxe d'expression étendue Glob UNIX sensible à la casse, par exemple :
*.* - exclut tout fichier au niveau racine
*.txt - exclut uniquement les fichiers TXT au niveau racine
**.txt - exclut uniquement les fichiers TXT à tous les niveaux
*.{txt,gz} - exclut uniquement les fichiers TXT ou GZ au niveau racine
dir/*.txt - exclut uniquement les fichiers TXT dans le dossier "dir"
dir/**.txt - exclut uniquement les fichiers TXT dans le dossier "dir" à tous les niveaux
dir/**.* - exclut tout fichier dans le dossier "dir" à tous les niveaux
f.txt - exclut uniquement f.txt sous le niveau racine
**/f.txt - exclut uniquement f.txt à tous les niveaux
**dir/** - exclut tout fichier dans le dossier "dir" à tous les niveaux
**dir1/dir2/** - exclut tous les fichiers dans n'importe quel dossier "dir2", sous n'importe quel dossier "dir1" à tous les niveaux

Si le filtre par inclusion est vide et le filtre par exclusion ne l'est pas, tous les dossiers et fichiers sous le répertoire racine sont inclus, sauf ceux correspondant au filtre d'exclusion.
Si les filtres par inclusion et par exclusion sont vides, tous les dossiers et fichiers sous le répertoire racine sont inclus.
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>

Cette option permet de sauvegarder les métadonnées d'entrée du pont à des fins de débogage. Le <répertoire> fourni doit être vide.

L'utilisation principale de cette option concerne les ponts d'import des data stores, en particulier les ponts d'import basés sur des bases de données JDBC.

Notez que cette option n'est pas opérationnelle sur certains ponts, notamment :
- les ponts d'import basés sur des fichiers (car des fichiers d'entrée peuvent être utilisés à la place)
- les ponts d'import de référentiels d'intégration de données/BI (car les outils natifs de sauvegarde du référentiel peuvent être utilisés à la place)
- Certains ponts d'import basés sur des API (par ex. basés sur COM) pour des raisons techniques.

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.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 DU SCRIPT
-parameter.file <filepath> (précédemment -s)

Chemin vers un fichier résolvant des paramètres shell au format Windows (%param%) ou Linux (${param}, $1). Ce paramètre peut être utilisé pour définir un chemin d'accès au fichier YAML de paire clé/valeur. Le chemin peut être placé entre guillemets doubles d'échappement s'il contient des espaces ou des caractères spéciaux. Les enregistrements provenant de ce fichier sont utilisés pour effectuer le prétraitement des scripts et remplacer les paramètres Shell correspondant par les valeurs réelles. Les littéraux de clé ne doivent pas être agrémentés de caractères d'échappement et les règles correspondantes sont sensibles à la casse. Le caractère "deux points" (:) est utilisé comme séparateur de paires clé/valeur et doit être placé entre des barres obliques inversées "\" d'échappement dans le cas d'un nom de paramètre. Par exemple pour le script "INSERT INTO %SCHEMA1%.t1(c1) SELECT a from %SCHEMA2%.t2;", le fichier contenant les paramètres peut être organisé comme suit : Par ex.
# map de paramètre Shell courant
SCHÉMA1 : actual_schema1
SCHÉMA2 : actual_schema2
# maps de scripts individuels
"D:\\MIMB\\hive_001.hql":
${table_name}: actual_table
"D:\\MIMB\\hive_002.hql":
${year_var}: 1993

Le fichier YAML contient une section "map de paramètre Shell courant" et une section "maps de scripts individuels". Le pont prend les paires clé/valeur de la section "map de paramètre Shell courant" pour substituer les paramètres Shell dans TOUS les scripts par les valeurs spécifiées dans le fichier YAML. La section "maps de scripts individuels" contient des paires pour les scripts individuels.

Si le pont ne détecte pas de fichier YAML avec un nom de chemin d'accès spécifié, il
- génère un fichier YAML modèle et le remplit avec les paires de valeurs clé/défaut pouvant être utilisées pour modification manuelle avec les valeurs appropriées
- invoque l'option -cache.clear, sinon il prendrait les métadonnées du cache et ne consulterait pas le script. Il n'aurait donc aucune information pour produire un fichier modèle.

-schema.default <name> (précédemment -d)

Nom du schéma par défaut Permet de spécifier un nom de schéma pour les objets qui ne l'ont pas défini explicitement.

-encoding <valeur> (précédemment -e)

Encodage 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.
-encoding UTF-16
-encoding UTF-16BE
-encoding US-ASCII
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 – dites-nous comment nous améliorer !