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

Base de données NoSQL MongodDB - 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 MongoDB
Nom de l'outil Base de données NoSQL
Version de l'outil 3.2
Site Web de l'outil https://www.mongodb.org/
Méthodologie supportée [Base de données NoSQL] Multimodèle, Data Store (NoSQL/Hiérarchique, Modèle de données physique) via une API Java
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 : MongoDB/Base de données NoSQL version 3.2 via une API Java
Consultez https://www.mongodb.org/
Métadonnées : [Base de données NoSQL] Multimodèle, Data Store (NoSQL/Hiérarchique, Modèle de données physique)
Composant : MongoDB version 11.2.0

AVERTISSEMENT
Ce pont d'import requiert un accès à Internet pour télécharger les bibliothèques tierces :
- par exemple https://repo.maven.apache.org/maven2/ pour télécharger les bibliothèques tierces open source,
- 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
Ce pont d'import établit une connexion au serveur MongoDB à l'aide d'un pilote Java natif, afin d'extraire les métadonnées physiques.

PRÉREQUIS
Le pont attribue un type de données à chaque attribut JSON selon les exemples suivants :
'_id'
{ "$oid": "50a9c951300493f64fbffdb6" } STRING (SQL_VARCHAR)

'dateExample'
{ "$date" : "2014-01-01T05:00:00.000Z"} DATE_8 (SQL_DATE)

'isoDateExample'
{ "$date" : 1491461103897 } DATE_8 (SQL_DATE)

'timestampExample'
{ "$timestamp" : { "t" : 1412180887, "i" : 1 } } TIMESTAMP (SQL_TIMESTAMP)

'stringDateExample'
"Thu Apr 06 2017 09:41:51 GMT+0300 (FLE Standard Time)" STRING (SQL_VARCHAR)

'numberLongExample'
{ "$numberLong": "7494814965" } LONG_8 (SQL_BIGINT)

'booleanSample'
true BOOLEAN_1 (SQL_BOOLEAN)

'stringSample'
"some text" STRING (SQL_VARCHAR)

'expNumberSample'
2.99792458e8 DOUBLE_10_5 (SQL_DOUBLE)

'smallNumberSample'
-1 LONG_8 (SQL_BIGINT)

'numberSample'
3 LONG_8 (SQL_BIGINT)

'floatSample'
3.141592653589793238462643383279 DOUBLE_10_5 (SQL_DOUBLE)

'rfc7493bignumber'
"9007199254740992" STRING (SQL_VARCHAR)

'expStringSample'
"2.99792458e8" STRING (SQL_VARCHAR)

'arraySample'
[1, 2, 3] array (SQL_ARRAY)

'objectEmptySample'
{} STRING (SQL_VARCHAR)

'nullSample'
null undefined

'nullStringSample'
"null" STRING (SQL_VARCHAR)

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 (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
Chaîne de caractères de connexion Ce paramètre écrase tous les autres paramètres de connexion. Il fonctionne conjointement avec le paramètre Mot de passe. Cinq astérisques d'affilée (*****) sont utilisés comme valeur factice pour le mot de passe. Le véritable mot de passe sera fourni directement au pilote.

Exemple : mongodb+srv://testuser:*****@gettingstarted.kyuw2.azure.mongodb.net/admin

Consultez la documentation ici
https://docs.mongodb.com/manual/reference/connection-string/
Chaîne de caractères      
Host URI de serveurs séparés par une virgule. Si le port n'est pas spécifié avec le caractère deux-points, le port par défaut est utilisé.
Vous pouvez spécifier le type de connexion - mongodb:// ou mongodb+srv://. Par défaut, le pont essaye d'abord de se connecter avec le protocole mongodb://.

- Exemples :
lolly.jess:3999,lolly-backup
localhost:8887
mongodb+srv://testhost
mongodb://testhost:27017
Chaîne de caractères      
User (Utilisateur) Le nom de l'utilisateur MongoDB au nom duquel la connexion est effectuée.
S'il n'est pas spécifié, une session anonyme est utilisée.
Chaîne de caractères      
Password Mot de passe d'utilisateur MongoDB au nom duquel la connexion est établie. MOT DE PASSE      
Jeu de répliques Nom du jeu de répliques Chaîne de caractères      
Base de données d'authentification Spécifiez la base de données d'authentification de l'utilisateur. Chaîne de caractères   admin  
Bases de données Spécifiez une liste de bases de données MongoDB à importer.

La liste peut contenir un ou plusieurs noms de bases de données, séparés par un point-virgule,
par ex. database1; database2
Si la valeur est "*", toutes les bases de données accessibles sont importées.

Nom de la base de données avec des caractères spéciaux :

- S'il y a un guillemet simple dans le nom de l'entité, assurez-vous de l'échapper par un autre guillemet simple :
data'base -> data''base

- S'il y a l'un des caractères spéciaux suivants [ * , ; . ] dans le nom ou l'espace de l'entité, assurez-vous de mettre ce nom entre guillemets simples :
data;base -> 'data;base'
data*base -> 'data*base'
data.base -> 'data.base'
database -> ' database '
Tous les caractères entre guillemets simples seront littéralement reconnus.
REPOSITORY_SUBSET      
Collections Sous-ensemble de collections à importer représenté par une liste de collections séparées par un point-virgule.

Pour spécifier une seule base de données dans le paramètre "Bases de données", saisissez un ensemble de collections sans spécifier de nom de base de données, par ex.
collection1;collection2

Pour spécifier plusieurs bases de données, le nom entièrement qualifié de la collection doit être spécifié, par ex.
database1.collection1;database2.collection2;database1.collection2

Lorsque la valeur est "*", toutes les collections accessibles sont importées.

Modèles de noms de schémas utilisant les règles de syntaxe utilisées par l'opérateur LIKE en SQL :

- Syntaxe d'inclusion :
utilisant %, par ex.
A%; %B; %C%; D
- commençant par A ou
- finissant par B ou
- contenant C ou
- égal à D

- Syntaxe d'exclusion :
utilisant NOT, par exemple :
A%; %B; NOT %SYS; NOT 'SYS%'
- où (nom comme A% ou %B)
- et (nom différent de %SYS)
- et (nom différent de 'SYS%')

- Caractères spéciaux :
utilisant les guillemets simples, par ex.
OneWord%; 'Two Words%'

- S'il y a une marque de pourcentage dans un nom de collection, échappez-le :
name%name = name%%name

Nom du schéma avec des caractères spéciaux :

- S'il y a un guillemet simple dans le nom de l'entité, assurez-vous de l'échapper par un autre guillemet simple :
col'lection -> col''lection

- S'il y a l'un des caractères spéciaux suivants [ * , ; . ] dans le nom ou l'espace de l'entité, assurez-vous de mettre ce nom entre guillemets simples :
col;lection -> 'col;lection'
database.col*lection -> database.'col*lection'
data,base. collection ->'data,base'.' collection '
Tous les caractères entre guillemets simples seront littéralement reconnus.

- L'expression de début (Start-expression) signifie un import complet (ALL) depuis le niveau d'intégration courant :
db.* signifie que toutes les collections de la base de données seront importées.
*.coll signifie que toutes les collections nommées "coll" seront importées depuis toutes les bases de données.
REPOSITORY_SUBSET      
Nombre de fichiers échantillons Nombre de documents échantillons à tirer aléatoirement de chaque collection. La valeur par défaut est 10. NUMERIC   10  
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 MONGODB

-samples.number <nombre>[:even|order|top]

Nombre de documents échantillons à tirer aléatoirement de chaque collection. La valeur par défaut pour le nombre d'échantillons est de 10. Le mode par défaut est 'top (haut)'.
Pour plus d'informations concernant les modes d'import, consultez la documentation des options '-samples' (pour les échantillons).
Utilisation :
1. -samples.number 15
Le pont importe 15 échantillons de chaque collection.

2. -samples.number 15:order
Le pont importe 15 échantillons de chaque collection en utilisant le mode 'order (tri)'.

-samples.mode <even|order|top>

Mode d'import. La valeur par défaut est 'top (haut)'.
Supporte trois modes d'import :
- Top Algorithm (Algorithme pour le haut)
* Description : L'algorithme pour le haut sélectionne les N premiers documents de la collection, où N est le nombre d'échantillons demandé.
* Note : Les premiers documents dans une base de données ne sont pas toujours les plus récents.

- Even Algorithm (Algorithme de répartition équitable)
* Description : Cet algorithme divise le nombre total de documents dans la collection par le nombre d'échantillons demandé afin de déterminer des intervalles équitables pour la sélection des échantillons. Par exemple, s'il y a 100 documents et que 10 échantillons ont été demandés, l'algorithme sélectionne chaque dixième document (positions 1, 10, 20, etc.).
* Note concernant les performances : Cette méthode nécessite que la base de données dénombre tous les documents d'une collection, ce qui peut prendre un long moment, surtout dans le cas de collections volumineuses

- Order Algorithm (Algorithme de tri)
* Description : Cet algorithme sélectionne des documents occupant des positions en augmentation exponentielle afin de s'adapter aux collections de toutes tailles. Par exemple, il peut essayer de sélectionner des documents aux positions 10, 100, 1000, etc. Si une position demandée dépasse le nombre de documents dans la collection (par ex. le 1 000ème document dans une collection qui en contient 999), l'algorithme exécute l'étape de manière récursive (10, 5, etc.) jusqu'à obtenir le nombre d'échantillons demandé.
* Gestion des erreurs : L'algorithme effectue automatiquement des ajustements lorsque les positions calculées se trouvent hors des intervalles, afin de s'assurer que l'échantillon final ne dépasse pas le nombre de documents disponibles.
* Note relative aux performances : Cet algorithme fonctionne mieux avec les collections volumineuses.

-zip <chemin d'accès au fichier>

Dossier dans lequel stocker des documents MongoDB en tant que fichiers JSON.

-hadoop

key1=val1;key2=val2 pour définir manuellement les options de configuration Hadoop.

-mask

Utilisez cette option lorsque vous ne souhaitez pas fournir de valeur de données mais uniquement des métadonnées.

-validator.description

Capturer le modèle du schéma fixe en se basant sur la structure d'un validateur de collection avec des descriptions de champs.
À partir de la version 3.6, MongoDB supporte le Validateur de schéma JSON. Il consiste en un schéma fixe et des règles de validation utilisé·es pour la validation. Le comportement par défaut est d'ignorer les validateurs.

-validator.all

Capturer le modèle du schéma fixe en se basant sur la structure d'un validateur de collection avec les métadonnées complètes fournies (et non juste les descriptions de champs).
À partir de la version 3.6, MongoDB supporte le Validateur de schéma JSON. Il consiste en un schéma fixe et des règles de validation utilisé·es pour la validation. Le comportement par défaut est d'ignorer les validateurs.

-validator.collectiondescription

Capturer les descriptions de champ du validateur depuis le validateur vers la collection JSON de descriptions.
À partir de la version 3.6, MongoDB supporte le Validateur de schéma JSON. Il consiste en un schéma fixe et des règles de validation utilisé·es pour la validation. Le comportement par défaut est d'ignorer les validateurs.

-debug.usesystem

Importe les collections système. Importe les collections système. MongoDB stocke les informations système dans des collections utilisant l'espace de noms <database>.system.* namespace, que MongoDB réserve pour un usage interne.
Par défaut, ces collections, la base de données locale et la base de données de configuration sont ignorées.

-connection.retries <valeur>

Nombre de tentatives lors de la connexion au serveur.

-backup.data

Enregistre le fichier JSON avec les données importées dans le dossier de sauvegarde.
Chaîne de caractères      

 

Mapping du pont

Meta Integration Repository (MIR)
Métamodèle
(se base sur le standard OMG CWM)
"Base de données MongoDB NoSQL"
Métamodèle
Système de fichiers (Base de données JSON)
Mapping des commentaires
     
DirectoryStructureModel Serveur  
Name (Nom) Name (Nom)  
SystemType Type  
Folder Périmètre, Bucket, Base de données, Dossier  
Name (Nom) Name (Nom)  
StoreContent Conteneur, Documents, Collection, Fichier, Vue  
Name (Nom) Name (Nom)  
NativeType Type  

Meta Integration Repository (MIR)
Métamodèle
(se base sur le standard OMG CWM)
"Base de données MongoDB NoSQL"
Métamodèle
Système de fichiers (Fichier JSON)
Mapping des commentaires
     
Attribut Tableau, Objet, Propriété  
Description Description  
Name (Nom) Name (Nom)  
StoreModel Fichier JSON  
Nom Name (Nom)  
NativeType File type  

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 !