Informations de référence sur l'outil de migration d'Oracle NoSQL Database
Découvrez les paramètres de modèle de configuration de source, de puits et de transformation disponibles pour Oracle NoSQL Database Migrator.
Cet article contient les rubriques suivantes :
Paramètres
NoSQL Database Migrator nécessite un fichier de configuration dans lequel vous définissez tous les paramètres pour effectuer l'activité de migration. Quelques paramètres sont communs à plusieurs sources et puits. Cette rubrique fournit une liste de ces paramètres communs. Pour obtenir la liste des autres paramètres uniques à des sources ou à des puits individuels, consultez les sections de modèle de configuration correspondantes.
Paramètres de configuration communs
Voici les paramètres de configuration courants. Voir les sections du modèle de configuration individuel pour des exemples.
-
Objet : Spécifie le nom du seau de stockage d'objets OCI, qui contient les objets source/évier.
Assurez-vous que le seau requis existe déjà dans l'instance de stockage d'objets OCI et qu'il dispose des autorisations de lecture/écriture.
-
Type de données : Chaîne
-
Obligatoire (O/N) : Y (Oui)
-
Objet : Spécifie la taille maximale d'un
chunkde données de table à stocker dans le puits. La valeur est en Mo. Lors de la migration, une table est fractionnée en fragmentschunkSizeet chaque fragment est écrit en tant que fichier distinct dans le puits. Un nouveau fichier est créé lorsque les données sources en cours de migration dépassent la valeurchunkSize.S'il n'est pas spécifié, la valeur par défaut est 32 Mo. La valeur valide est un nombre entier compris entre 1 et 1024.
Pour plus de détails sur l'amélioration de la vitesse de migration à l'aide du paramètre
chunkSize, voir Meilleures pratiques. -
Type de données : Nombre entier
-
Obligatoire (O/N) : N
-
Objet : Spécifie le chemin absolu d'un fichier contenant les données d'identification OCI. L'outil de migration de base de données NoSQL utilise ce fichier pour se connecter au service OCI, par exemple Oracle NoSQL Database Cloud Service, OCI Object Storage, etc.
La valeur par défaut est
$HOME/.oci/configVoir Exemple de configuration ou un exemple de fichier de données d'identification.
Note : Vous ne pouvez sélectionner qu'une seule des options d'authentification. Par conséquent, spécifiez un seul de ces paramètres :
credentials, useDelegationToken, useSessionToken ou useOKEWorkloadIdentity dans le modèle de configuration. -
Type de données : Chaîne
-
Obligatoire (O/N) : N
-
Objet : Spécifie le nom du profil de configuration à utiliser pour la connexion au service OCI, tel qu'Oracle NoSQL Database Cloud Service, le service de stockage d'objets pour OCI, etc. Les données d'identification du compte d'utilisateur sont référencées en tant que profil.
Si vous ne spécifiez pas cette valeur, NoSQL Database Migrator utilise le profil
DEFAULT.Note : Ce paramètre n'est valide que si le paramètre données d'identification est spécifié.
-
Type de données : Chaîne
-
Obligatoire (O/N) : N
-
Objet : Spécifie l'un des éléments suivants :
-
URL du point d'extrémité du service ou ID région pour le service de stockage d'objets OCI. Pour la liste des points d'extrémité du service de stockage d'objets pour OCI, voir Points d'extrémité du service de stockage d'objets
-
URL du point d'extrémité du service ou ID région pour le service Oracle NoSQL Database Cloud Service. Vous pouvez spécifier l'URL complète ou l'ID région uniquement. For the list of data regions supported for Oracle NoSQL Database Cloud Service, see Data Regions and Associated Service URLs in the Oracle NoSQL Database Cloud Service document.
-
-
Type de données : Chaîne
-
Obligatoire (O/N) : Y (Oui)
-
Objet : Spécifie le format de la source/du dissipateur.
-
Type de données : Chaîne
-
Obligatoire (O/N) : Y (Oui)
-
Objet : Spécifie l'espace de noms du service de stockage d'objets pour OCI. Ce paramètre est facultatif. Si vous ne spécifiez pas ce paramètre, l'utilitaire Migrator utilise l'espace de noms affecté à la location.
Par exemple, le paramètre d'espace de noms est utile lorsque vous voulez utiliser un système d'exploitation OCI à partir d'une location différente de la vôtre. Dans ce cas, l'espace de noms de la location du système d'exploitation OCI est différent de celui de votre location. Lors de la migration, l'utilitaire Migrator prend par défaut l'espace de noms de votre location, sauf indication contraire. Par conséquent, pour demander à l'utilitaire Migrator de choisir l'espace de noms de la location du système d'exploitation OCI, vous devez spécifier le nom de la location du système d'exploitation OCI dans le paramètre d'espace de noms.
-
Type de données : Chaîne
-
Obligatoire (O/N) : N
-
Objet : Le préfixe sert de conteneur ou de répertoire logique pour le stockage des données dans le seau de stockage d'objets OCI.
-
Modèle de configuration source : Si le paramètre
prefixest spécifié, tous les objets du répertoire nommé dans le paramètreprefixsont migrés. Sinon, tous les objets présents dans le seau sont migrés. -
Modèle de configuration de puits : Si le paramètre
prefixest spécifié, un répertoire avec le préfixe indiqué est créé dans le seau et les objets sont migrés dans ce répertoire. Sinon, le nom de table de la source est utilisé comme préfixe. Si un objet portant le même nom existe déjà dans le seau, il est remplacé.
Pour plus d'informations sur les préfixes, voir Attribution de nom aux objets à l'aide des préfixes et des hiérarchies.
-
-
Type de données : Chaîne
-
Obligatoire (O/N) : N
-
Objet : Spécifie le temps d'attente de la fin de chaque opération de lecture/écriture depuis/vers le magasin. Ceci est fourni en millisecondes. La valeur par défaut est 5000. La valeur peut être tout entier positif.
-
Type de données : Nombre entier
-
Obligatoire (O/N) : N
-
Objet : Spécifie le chemin absolu du fichier de connexion de sécurité qui contient vos données d'identification de magasin si votre magasin est un magasin sécurisé. Pour plus d'informations sur le fichier de connexion de sécurité, voir Exécution d'une installation Oracle NoSQL Database sécurisée.
Vous pouvez utiliser l'authentification basée sur un fichier de mots de passe ou l'authentification basée sur un portefeuille. Toutefois, l'authentification basée sur un "wallet" n'est prise en charge que dans Enterprise Edition (EE) d'Oracle NoSQL Database. Pour plus d'informations sur l'authentification basée sur un portefeuille, voir Sécurité de la source et du récepteur.
L'édition Community Edition(CE) prend uniquement en charge l'authentification basée sur un fichier de mots de passe.
-
Type de données : Chaîne
-
Obligatoire (O/N) : O, pour un magasin sécurisé
-
Objet : Identifie le type de source/récepteur.
-
Type de données : Chaîne
-
Obligatoire (O/N) : Y (Oui)
-
Objet : Spécifie si l'outil NoSQL Database Migrator utilise ou non l'authentification par jeton de délégation pour se connecter aux services OCI. Vous devez utiliser l'authentification par jeton de délégation pour exécuter l'utilitaire Migrator à partir de Cloud Shell. Le jeton de délégation est automatiquement créé pour l'utilisateur lorsque Cloud Shell est appelé.
La valeur par défaut est
false.Notez ce qui suit :
-
L'authentification avec jeton de délégation n'est prise en charge que lorsque l'outil NoSQL Database Migrator est exécuté à partir d'un interpréteur de commandes Cloud Shell.
-
Vous ne pouvez sélectionner qu'une seule des options d'authentification. Par conséquent, spécifiez un seul de ces paramètres : données d'identification, useInstancePrincipal,
useDelegationToken, useSessionToken ou useOKEWorkloadIdentity dans le modèle de configuration. -
Cloud Shell prend en charge la migration uniquement entre les sources et les puits suivants :
Type Source valide Évier valide Oracle NoSQL Database Cloud Service ( nosqldb_cloud)Y Y Fichier (fichier JSON dans le répertoire de base) Y Y Stockage d'objets OCI (fichier JSON) ( object_storage_oci)Y Y OCI Object Storage (fichier Parquet) ( object_storage_oci)N Y
-
-
Type de données : booléen
-
Obligatoire (O/N) : N
-
Objet : Spécifie si l'outil NoSQL Database Migrator utilise ou non l'authentification du principal d'instance pour se connecter au service OCI, tel qu'Oracle NoSQL Database Cloud Service, le service de stockage d'objets pour OCI, etc. Pour plus d'informations sur la méthode d'authentification du principal d'instance, voir Sécurité de la source et du récepteur.
La valeur par défaut est
false.Note :
-
L'authentification avec Instance Principals n'est prise en charge que lorsque l'outil NoSQL Database Migrator s'exécute dans une instance de calcul OCI, par exemple, l'outil NoSQL Database Migrator s'exécute dans une machine virtuelle hébergée sur OCI.
-
Vous ne pouvez sélectionner qu'une seule des options d'authentification. Par conséquent, spécifiez un seul de ces paramètres : données d'identification,
useInstancePrincipal, useDelegationToken, useSessionToken ou useOKEWorkloadIdentity dans le modèle de configuration.
-
-
Type de données : booléen
-
Obligatoire (O/N) : N
-
Objet : Spécifie si l'outil de migration de base de données NoSQL utilise ou non l'authentification d'identité de charge de travail pour accéder au service de stockage d'objets OCI et à Oracle NoSQL Database Cloud Service à partir d'un pod Oracle Kubernetes Engine (OKE).
La valeur par défaut est
false. -
Type de données : booléen
-
Obligatoire (O/N) : N
Pour un exemple de cas d'utilisation, voir Migrer du service de stockage d'objets OCI vers Oracle NoSQL Database Cloud Service à l'aide de l'authentification OKE.
Note : Vous ne pouvez sélectionner qu'une seule des options d'authentification. Par conséquent, spécifiez un seul de ces paramètres : données d'identification, useInstancePrincipal, useDelegationToken, useSessionToken ou useOKEWorkloadIdentity dans le modèle de configuration.
-
Objet : Spécifie si l'outil NoSQL Database Migrator utilise ou non l'authentification par jeton de session pour se connecter aux services OCI tels que OCI Object Storage (OCI OS) et Oracle NoSQL Database Cloud Service. La valeur par défaut est
false. -
Type de données : booléen
-
Obligatoire (O/N) : N
Pour utiliser l'authentification basée sur un jeton de session, vous devez générer un jeton de session à l'aide des commandes CLI (OCI Command Line Interface). Pour un exemple de cas d'utilisation, voir Migrer d'Oracle NoSQL Database vers le service de stockage d'objets pour OCI à l'aide de l'authentification par jeton de session.
Note :
-
Lors de l'utilisation de l'authentification par jeton de session, vous devez spécifier le chemin d'accès au fichier de configuration OCI dans le paramètre de données d'identification et le profil utilisé lors de la génération du jeton de session dans le paramètre authenticationProfile. Si vous ne définissez pas le paramètre de données d'identification dans le modèle de configuration, l'utilitaire Migrator recherche le fichier de données d'identification dans le chemin
$HOME/.oci. Si vous ne définissez pas le paramètre identifierProfile dans le modèle de configuration, l'utilitaire Migrator utilise le nom de profil par défaut (DEFAULT) du fichier de configuration OCI.Si l'utilitaire Migrator ne parvient pas à trouver le fichier de données d'identification, la migration échoue avec un message d'erreur indiquant la non-existence du fichier de données d'identification OCI.
-
Vous ne pouvez sélectionner qu'une seule des options d'authentification. Par conséquent, spécifiez un seul de ces paramètres : données d'identification, useInstancePrincipal, useDelegationToken,
useSessionTokenou useOKEWorkloadIdentity dans le modèle de configuration.
Modèles de configuration de source
Découvrez les formats de fichier de configuration source pour chaque source valide et l'objectif de chaque paramètre de configuration.
Pour le modèle de fichier de configuration, voir Fichier de configuration dans Terminologie utilisée avec NoSQL Data Migrator.
Pour plus de détails sur les formats de puits valides pour chaque source, voir Modèles de configuration de puits.
Rubriques
Les rubriques suivantes décrivent les modèles de configuration source référencés par Oracle NoSQL Database Migrator pour copier les données de la source indiquée vers un récepteur valide.
-
Fichier ou répertoire spécifié contenant les données JSON.
-
Fichier JSON dans le seau de stockage d'objets OCI
Fichier JSON spécifié dans le seau de stockage d'objets OCI.
-
Fichier ou répertoire spécifié contenant les données JSON au format MongoDB.
-
Fichier JSON au format MongoDB dans le seau de stockage d'objets OCI
MongoDB spécifié a exporté le fichier JSON stocké dans le seau de stockage d'objets OCI.
-
Fichier JSON au format DynamoDB stocké dans AWS S3
DynamoDB a exporté le fichier JSON stocké dans le stockage AWS S3.
-
Fichier JSON au format DynamoDB
Fichier JSON exporté DynamoDB spécifié à partir d'un système de fichiers.
-
Table spécifiée dans Oracle NoSQL Database.
-
Service Oracle NoSQL Database Cloud
Table spécifiée dans Oracle NoSQL Database Cloud Service.
-
Fichier ou répertoire spécifié contenant les données CSV.
-
Fichier CSV dans le seau de stockage d'objets OCI
Fichier CSV spécifié dans le seau de stockage d'objets OCI.
Source du fichier JSON
Le format de fichier de configuration pour le fichier JSON en tant que source de NoSQL Database Migrator est indiqué ci-dessous.
Vous pouvez migrer un fichier source JSON en spécifiant le chemin d'accès au fichier ou un répertoire dans le modèle de configuration source.
Un exemple de fichier source JSON est le suivant :
{"id":6,"val_json":{"array":["q","r","s"],"date":"2023-02-04T02:38:
57.520Z","nestarray":[[1,2,3],[10,20,30]],"nested":{"arrayofobjects":[{"datefield":"2023-03-04T02:38:57.520Z","numfield":30,"strfield":"foo54"},{"datefield":"2023-02-04T02:38:57.520Z","numfield":56,"strfield":"bar23"}],"nestNum":10,"nestString":"bar"},"num":1,"string":"foo"}}
{"id":3,"val_json":{"array":["g","h","i"],"date":"2023-02-02T02:38:57.520Z","nestarray":[[1,2,3],[10,20,30]],"nested":{"arrayofobjects":[{"datefield":"2023-02-02T02:38:57.520Z","numfield":28,"strfield":"foo3"},{"datefield":"2023-02-02T02:38:57.520Z","numfield":38,"strfield":"bar"}],"nestNum":10,"nestString":"bar"},"num":1,"string":"foo"}}
Modèle de configuration source
"source": {
"type": "file",
"format": "json",
"dataPath": "<path/to/JSON/[file|dir]>",
"schemaInfo": {
"schemaPath": "<path/to/schema/file>"
}
},
Paramètres sources
Paramètres de configuration communs
Paramètres de configuration uniques
-
Objet : Spécifie le chemin absolu d'un fichier ou d'un répertoire contenant les données JSON pour la migration.
Vous devez vous assurer que ces données correspondent au schéma de table NoSQL défini au niveau du récepteur. Si vous spécifiez un répertoire, NoSQL Database Migrator identifie tous les fichiers avec l'extension
.jsondans ce répertoire pour la migration. Les sous-répertoires ne sont pas pris en charge. -
Type de données : Chaîne
-
Obligatoire (O/N) : Y (Oui)
-
Exemple :
-
Spécification d'un fichier JSON
"dataPath" : "/home/user/sample.json" -
Définition d'un répertoire
"dataPath" : "/home/user"
-
-
Objet : Spécifie le schéma des données sources en cours de migration. Ce schéma est transmis au récepteur NoSQL.
-
Type de données : Objet
-
Obligatoire (O/N) : N
-
Objet : Spécifie le chemin absolu du fichier de définition de schéma contenant des énoncés LDD pour la table NoSQL en cours de migration.
-
Type de données : Chaîne
-
Obligatoire (O/N) : Y (Oui)
-
Exemple :
"schemaInfo": { "schemaPath": "<path to the schema file>" }
Fichier JSON dans le seau de stockage d'objets OCI
Le format de fichier de configuration du fichier JSON dans le seau de stockage d'objets OCI en tant que source de NoSQL Database Migrator est indiqué ci-dessous.
Vous pouvez migrer un fichier JSON dans le seau de stockage d'objets OCI en spécifiant le nom du seau dans le modèle de configuration source.
Un exemple de fichier source JSON dans le seau de stockage d'objets OCI est le suivant :
{"id":6,"val_json":{"array":["q","r","s"],"date":"2023-02-04T02:38:57.520Z","nestarray":[[1,2,3],[10,20,30]],"nested":{"arrayofobjects":[{"datefield":"2023-02-04T02:38:57.520Z","numfield":30,"strfield":"foo54"},{"datefield":"2023-02-04T02:38:57.520Z","numfield":56,"strfield":"bar23"}],"nestNum":10,"nestString":"bar"},"num":1,"string":"foo"}}
{"id":3,"val_json":{"array":["g","h","i"],"date":"2023-02-04T02:38:57.520Z","nestarray":[[1,2,3],[10,20,30]],"nested":{"arrayofobjects":[{"datefield":"2023-02-04T02:38:57.520Z","numfield":28,"strfield":"foo3"},{"datefield":"2023-02-04T02:38:57.520Z","numfield":38,"strfield":"bar"}],"nestNum":10,"nestString":"bar"},"num":1,"string":"foo"}}
Note : Les types de récepteur valides pour le type de source du service de stockage d'objets OCI sont nosqldb et nosqldb_cloud.
Modèle de configuration source
"source" : {
"type" : "object_storage_oci",
"format" : "json",
"endpoint" : "<OCI Object Storage service endpoint URL or region ID>",
"namespace" : "<OCI Object Storage namespace>",
"bucket" : "<bucket name>",
"prefix" : "<object prefix>",
"schemaInfo" : {
"schemaObject" : "<object name>"
},
"credentials" : "</path/to/oci/config/file>",
"credentialsProfile" : "<profile name in oci config file>",
"useInstancePrincipal" : <true|false>,
"useDelegationToken" : <true|false>,
"useSessionToken" : <true|false>,
"useOKEWorkloadIdentity" : <true|false>
}
Paramètres sources
Paramètres de configuration communs
-
Utiliser
"type" : "object_storage_oci" -
Utiliser
"format" : "json" -
Exemple :
-
ID région :
"endpoint" : "us-ashburn-1" -
Format d'URL :
"endpoint" : "https://objectstorage.us-ashburn- 1.oraclecloud.com"
-
-
Exemple :
"namespace" : "my-namespace" -
Exemple :
"bucket" : "my-bucket" -
Exemple :
-
"prefix" : "my_table/Data/000000.json"(migre uniquement000000.json) -
"prefix" : "my_table/Data"(migre tous les objets avec le préfixemy_table/Data)
-
-
Exemple :
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
-
Données d'identificationProfil
Exemple :
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Exemple :
"useInstancePrincipal" : true -
Utiliser le jeton de délégation
Exemple :
"useDelegationToken" : trueNote : L'authentification avec jeton de délégation n'est prise en charge que lorsque l'outil de migration de base de données NoSQL est exécuté à partir d'un Cloud Shell.
-
Exemple :
"useOKEWorkloadIdentity" : true -
Exemple :
"useSessionToken" : true
Paramètres de configuration uniques
-
Objet : Spécifie le schéma des données sources en cours de migration. Ce schéma est transmis au récepteur NoSQL.
-
Type de données : Objet
-
Obligatoire (O/N) : N
-
Objet : Spécifie le nom de l'objet dans le seau où sont stockées les définitions de schéma de table NoSQL pour les données en cours de migration.
-
Type de données : Chaîne
-
Obligatoire (O/N) : Y (Oui)
-
Exemple :
"schemaInfo": { "schemaObject": "mytable/Schema/schema.ddl" },
Fichier JSON formaté MongoDB
Le format de fichier de configuration pour le fichier JSON au format MongoDB en tant que source de NoSQL Database Migrator est indiqué ci-dessous.
Vous pouvez migrer des données JSON exportées par MongoDB en spécifiant le fichier ou le répertoire dans le modèle de configuration source.
MongoDB prend en charge deux types d'extension au format JSON des fichiers, Mode canonique et Mode assoupli. Vous pouvez fournir le fichier JSON au format MongoDB qui est généré à l'aide de l'outil mongoexport en mode Canonical ou Relaxed. Les deux modes sont pris en charge par NoSQL Database Migrator pour la migration.
Pour plus d'informations sur le fichier MongoDB Extended JSON (v2), voir mongoexport_formats.
Pour plus d'informations sur la génération du fichier JSON au format MongoDB, voir mongoexport pour plus d'informations.
Voici un exemple de fichier JSON de mode détendu au format MongoDB :
{"_id":0,"name":"Aimee Zank","scores":[{"score":
1.463179736705023,"type":"exam"},{"score":11.78273309957772,"type":"quiz"},{"score":35.8740349954354,"type":"homework"}]}
{"_id":1,"name":"Aurelia Menendez","scores":[{"score":60.06045071030959,"type":"exam"},{"score":52.79790691903873,"type":"quiz"},{"score":71.76133439165544,"type":"homework"}]}
{"_id":2,"name":"Corliss Zuk","scores":[{"score":67.03077096065002,"type":"exam"},{"score":6.301851677835235,"type":"quiz"},{"score":66.28344683278382,"type":"homework"}]}
{"_id":3,"name":"Bao Ziglar","scores":[{"score":71.64343899778332,"type":"exam"},{"score":24.80221293650313,"type":"quiz"},{"score":42.26147058804812,"type":"homework"}]}
{"_id":4,"name":"Zachary Langlais","scores":[{"score":78.68385091304332,"type":"exam"},{"score":90.2963101368042,"type":"quiz"},{"score":34.41620148042529,"type":"homework"}]}
Modèle de configuration source
"source": {
"type": "file",
"format": "mongodb_json",
"dataPath": "</path/to/json/[file|dir]>",
"schemaInfo": {
"schemaPath": "</path/to/schema/file>"
}
}
Paramètres sources
Paramètres de configuration communs
Paramètres de configuration uniques
-
Objet : Spécifie le chemin absolu d'un fichier ou d'un répertoire contenant les données JSON exportées par MongoDB aux fins de migration.
Vous pouvez fournir le fichier JSON au format MongoDB qui est généré à l'aide de l'outil mongoexport.
Si vous spécifiez un répertoire, NoSQL Database Migrator identifie tous les fichiers avec l'extension
.jsondans ce répertoire pour la migration. Les sous-répertoires ne sont pas pris en charge. Vous devez vous assurer que ces données correspondent au schéma de table NoSQL défini au niveau du récepteur. -
Type de données : Chaîne
-
Obligatoire (O/N) : Y (Oui)
-
Exemple :
-
Spécification d'un fichier JSON au format MongoDB
"dataPath" : "/home/user/sample.json" -
Définition d'un répertoire
"dataPath" : "/home/user"
-
-
Objet : Spécifie le schéma des données sources en cours de migration. Ce schéma est transmis au récepteur valide.
-
Type de données : Objet
-
Obligatoire (O/N) : N
-
Objet : Spécifie le chemin absolu du fichier de définition de schéma contenant des énoncés LDD pour la table NoSQL en cours de migration.
-
Type de données : Chaîne
-
Obligatoire (O/N) : Y (Oui)
-
Exemple :
"schemaInfo" : { "schemaPath" : "/home/user/mytable/Schema/schema.ddl" }
Fichier JSON au format MongoDB dans le seau de stockage d'objets OCI
Le format de fichier de configuration pour le fichier JSON formaté MongoDB dans le seau de stockage d'objets OCI en tant que source de NoSQL Database Migrator est indiqué ci-dessous.
Vous pouvez migrer les données JSON exportées par MongoDB dans le seau de stockage d'objets OCI en spécifiant le nom du seau dans le modèle de configuration source.
Extraire les données de MongoDB à l'aide de l'utilitaire mongoexport et les charger dans le seau de stockage d'objets OCI. Pour plus d'informations, voir mongoexport. MongoDB prend en charge deux types d'extension au format JSON des fichiers, Mode canonique et Mode assoupli. Les deux formats sont pris en charge dans le seau de stockage d'objets OCI.
Voici un exemple de fichier JSON de mode détendu au format MongoDB :
{"_id":0,"name":"Aimee Zank","scores":[{"score":1.463179736705023,"type":"exam"},{"score":11.78273309957772,"type":"quiz"},{"score":35.8740349954354,"type":"homework"}]}
{"_id":1,"name":"Aurelia Menendez","scores":[{"score":60.06045071030959,"type":"exam"},{"score":52.79790691903873,"type":"quiz"},{"score":71.76133439165544,"type":"homework"}]}
{"_id":2,"name":"Corliss Zuk","scores":[{"score":67.03077096065002,"type":"exam"},{"score":6.301851677835235,"type":"quiz"},{"score":66.28344683278382,"type":"homework"}]}
{"_id":3,"name":"Bao Ziglar","scores":[{"score":71.64343899778332,"type":"exam"},{"score":24.80221293650313,"type":"quiz"},{"score":42.26147058804812,"type":"homework"}]}
{"_id":4,"name":"Zachary Langlais","scores":[{"score":78.68385091304332,"type":"exam"},{"score":90.2963101368042,"type":"quiz"},{"score":34.41620148042529,"type":"homework"}]}
Note : Les types de récepteur valides pour le type de source du service de stockage d'objets OCI sont nosqldb et nosqldb_cloud.
Modèle de configuration source
"source" : {
"type" : "object_storage_oci",
"format" : "mongodb_json",
"endpoint" : "<OCI Object Storage service endpoint URL or region ID>",
"namespace" : "<OCI Object Storage namespace>",
"bucket" : "<bucket name>",
"prefix" : "<object prefix>",
"schemaInfo" : {
"schemaObject" : "<object name>"
},
"credentials" : "</path/to/oci/config/file>",
"credentialsProfile" : "<profile name in oci config file>",
"useInstancePrincipal" : <true|false>,
"useDelegationToken" : <true|false>,
"useSessionToken" : <true|false>,
"useOKEWorkloadIdentity" : <true|false>
}
Paramètres sources
Paramètres de configuration communs
-
Utiliser
"type" : "object_storage_oci" -
Utiliser
"format" : "mongodb_json" -
Exemple :
-
ID région :
"endpoint" : "us-ashburn-1" -
Format d'URL :
"endpoint" : "https://objectstorage.us-ashburn- 1.oraclecloud.com"
-
-
Exemple :
"namespace" : "my-namespace" -
Exemple :
"bucket" : "my-bucket" -
Exemple :
-
"prefix" : "mongo_export/Data/table.json"(migre uniquementtable.json) -
"prefix" : "mongo_export/Data"(migre tous les objets avec le préfixemongo_export/Data)
Note : Si vous n'indiquez aucune valeur, tous les objets présents dans le seau sont migrés.
-
-
Exemple :
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
Données d'identificationProfil
Exemple :
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Exemple :
"useInstancePrincipal" : true -
Utiliser le jeton de délégation
Exemple :
"useDelegationToken" : trueNote : L'authentification avec jeton de délégation n'est prise en charge que lorsque l'outil de migration de base de données NoSQL est exécuté à partir d'un Cloud Shell.
-
Exemple :
"useOKEWorkloadIdentity" : true -
Exemple :
"useSessionToken" : true
Paramètres de configuration uniques
-
Objet : Spécifie le schéma des données sources en cours de migration. Ce schéma est transmis au récepteur NoSQL.
-
Type de données : Objet
-
Obligatoire (O/N) : N
-
Objet : Spécifie le nom de l'objet dans le seau où sont stockées les définitions de schéma de table NoSQL pour les données en cours de migration.
-
Type de données : Chaîne
-
Obligatoire (O/N) : Y (Oui)
-
Exemple :
"schemaInfo": { "schemaObject": "mytable/Schema/schema.ddl" }
Fichier JSON au format DynamoDB stocké dans AWS S3
Le format de fichier de configuration pour le fichier JSON au format DynamoDB dans AWS S3 en tant que source de NoSQL Database Migrator est indiqué ci-dessous.
Vous pouvez migrer un fichier contenant les données JSON exportées par DynamoDB à partir du stockage AWS S3 en spécifiant le chemin dans le modèle de configuration source.
Un exemple de fichier JSON au format DynamoDB est le suivant :
{"Item":{"Id":{"N":"101"},"Phones":{"L":[{"L":[{"S":"555-222"},{"S":"123-567"}]}]},"PremierCustomer":{"BOOL":false},"Address":{"M":{"Zip":{"N":"570004"},"Street":{"S":"21 main"},"DoorNum":{"N":"201"},"City":{"S":"London"}}},"FirstName":{"S":"Fred"},"FavNumbers":{"NS":["10"]},"LastName":{"S":"Smith"},"FavColors":{"SS":["Red","Green"]},"Age":{"N":"22"},"ttl": {"N": "1734616800"}}}
{"Item":{"Id":{"N":"102"},"Phones":{"L":[{"L":[{"S":"222-222"}]}]},"PremierCustomer":{"BOOL":false},"Address":{"M":{"Zip":{"N":"560014"},"Street":{"S":"32 main"},"DoorNum":{"N":"1024"},"City":{"S":"Wales"}}},"FirstName":{"S":"John"},"FavNumbers":{"NS":["10"]},"LastName":{"S":"White"},"FavColors":{"SS":["Blue"]},"Age":{"N":"48"},"ttl": {"N": "1734616800"}}}
Vous devez exporter la table DynamoDB vers le stockage AWS S3 comme indiqué dans Exportation des données de la table DynamoDB vers Amazon S3.
Les types d'évier valides pour DynamoDB-formatted JSON stockés dans AWS S3 sont nosqldb et nosqldb_cloud.
Modèle de configuration source
"source" : {
"type" : "aws_s3",
"format" : "dynamodb_json",
"ttlAttributeName" : "<DynamoDB exported TTL attribute name>",
"s3URL" : "<S3 object url>",
"credentials" : "</path/to/aws/credentials/file>",
"credentialsProfile" : "<profile name in aws credentials file>"
}
Paramètres sources
Paramètres de configuration communs
-
Utiliser
"type" : "aws_s3" -
Utiliser
"format" : "dynamodb_json"Note : Si la valeur du paramètre de type est
aws_s3, le format doit êtredynamodb_json.
Paramètres de configuration uniques
-
Objet : Spécifie l'URL d'une table DynamoDB exportée stockée dans AWS S3. Vous pouvez obtenir cette URL à partir de la console AWS S3. Le format d'URL valide est
https://<bucket-name>.<s3_endpoint>/<prefix>. NoSQL Database Migrator recherche les fichiersjson.gzdans le préfixe lors de l'importation.Note : Vous devez exporter la table DynamoDB comme indiqué dans Exportation des données de la table DynamoDB vers Amazon S3.
-
Type de données : Chaîne
-
Obligatoire (O/N) : Y (Oui)
-
Exemple :
https://my-bucket.s3.ap-south-1.amazonaws.com/AWSDynamoDB/01649660790057-14f642be
-
Objet : Spécifie le chemin absolu d'un fichier contenant les données d'identification AWS. S'il n'est pas spécifié, la valeur par défaut est
$HOME/.aws/credentials. Pour plus de détails sur le fichier de données d'identification, voir Paramètres de fichier de configuration et de données d'identification. -
Type de données : Chaîne
-
Obligatoire (O/N) : N
-
Exemple :
"credentials" : "/home/user/.aws/credentials""credentials" : "/home/user/security/credentialsNote : NoSQL Database Migrator n'enregistre aucune des informations de données d'identification. Vous devez protéger correctement le fichier de données d'identification contre tout accès non autorisé.
- Objet : Nom du profil dans le fichier de données d'identification AWS à utiliser pour la connexion à AWS S
- Les données d'identification du compte d'utilisateur sont référencées en tant que profil. Si vous ne spécifiez pas cette valeur, NoSQL Database Migrator utilise le profil
default. Pour plus de détails sur le fichier de données d'identification, voir Paramètres de fichier de configuration et de données d'identification.
- Les données d'identification du compte d'utilisateur sont référencées en tant que profil. Si vous ne spécifiez pas cette valeur, NoSQL Database Migrator utilise le profil
-
Type de données : Chaîne
-
Obligatoire (O/N) : N
-
Exemple :
"credentialsProfile" : "default""credentialsProfile" : "test"
-
Objet : Spécifie le nom de l'attribut de durée de vie présent dans les données de table DynamoDB exportées. Vous n'incluez ce paramètre que si les données de la table DynamoDB ont un attribut de durée de vie et que vous souhaitez définir la valeur de durée de vie des données importées lors de l'importation dans NoSQL Database.
Note : Pour effectuer une importation avec les métadonnées de durée de vie, vous devez régler le paramètre de configuration includeTTL à Vrai dans le modèle de configuration de l'évier (
nosqldbetnosqldb_cloud). -
Type de données : Chaîne
-
Obligatoire (O/N) : N
-
Exemple :
"ttlAttributeName" : "ttl"
Fichier JSON au format DynamoDB
Le format de fichier de configuration pour le fichier JSON au format DynamoDB en tant que source de NoSQL Database Migrator est indiqué ci-dessous.
Vous pouvez migrer un fichier ou un répertoire contenant les données JSON exportées DynamoDB à partir d'un système de fichiers en spécifiant le chemin dans le modèle de configuration source.
Un exemple de fichier JSON au format DynamoDB est le suivant :
{"Item":{"Id":{"N":"101"},"Phones":{"L":[{"L":[{"S":"555-222"},{"S":"123-567"}]}]},"PremierCustomer":{"BOOL":false},"Address":{"M":{"Zip":{"N":"570004"},"Street":{"S":"21 main"},"DoorNum":{"N":"201"},"City":{"S":"London"}}},"FirstName":{"S":"Fred"},"FavNumbers":{"NS":["10"]},"LastName":{"S":"Smith"},"FavColors":{"SS":["Red","Green"]},"Age":{"N":"22"},"ttl": {"N": "1734616800"}}}
{"Item":{"Id":{"N":"102"},"Phones":{"L":[{"L":[{"S":"222-222"}]}]},"PremierCustomer":{"BOOL":false},"Address":{"M":{"Zip":{"N":"560014"},"Street":{"S":"32 main"},"DoorNum":{"N":"1024"},"City":{"S":"Wales"}}},"FirstName":{"S":"John"},"FavNumbers":{"NS":["10"]},"LastName":{"S":"White"},"FavColors":{"SS":["Blue"]},"Age":{"N":"48"},"ttl": {"N": "1734616800"}}}
Vous devez copier les données de table DynamoDB exportées du stockage AWS S3 vers un système de fichiers monté local.
Les types d'évier valides pour le fichier JSON DynamoDB sont nosqldb et nosqldb_cloud.
Modèle de configuration source
"source" : {
"type" : "file",
"format" : "dynamodb_json",
"ttlAttributeName" : <DynamoDB exported TTL attribute name>,
"dataPath" : "<path/to/[file|dir]/containing/exported/DDB/tabledata>"
}
Paramètres sources
Paramètres de configuration communs
Paramètre de configuration unique
-
Objet : Spécifie le chemin absolu d'un fichier ou d'un répertoire contenant les données de table DynamoDB exportées. Vous devez copier les données de table DynamoDB exportées depuis AWS S3 vers un système de fichiers monté local. Vous devez vous assurer que ces données correspondent au schéma de table NoSQL défini au niveau du récepteur. Si vous spécifiez un répertoire, NoSQL Database Migrator identifie tous les fichiers avec l'extension
.json.gzdans ce répertoire et le sous-répertoiredata. -
Type de données : Chaîne
-
Obligatoire (O/N) : Y (Oui)
-
Exemple :
-
Définition d'un fichier
"dataPath" : "/home/user/AWSDynamoDB/01639372501551-bb4dd8c3/data/zclclwucjy6v5mkefvckxzhfvq.json.gz" -
Définition d'un répertoire
"dataPath" : "/home/user/AWSDynamoDB/01639372501551-bb4dd8c3"
-
-
Objet : Spécifie le nom de l'attribut de durée de vie présent dans les données de table DynamoDB exportées. Vous n'incluez ce paramètre que si les données de la table DynamoDB ont un attribut de durée de vie et que vous souhaitez définir la valeur de durée de vie des données importées lors de l'importation dans NoSQL Database.
Note : Pour effectuer une importation avec les métadonnées de durée de vie, vous devez régler le paramètre de configuration includeTTL à Vrai dans le modèle de configuration de l'évier (
nosqldbetnosqldb_cloud). -
Type de données : Chaîne
-
Obligatoire (O/N) : N
-
Exemple :
"ttlAttributeName" : "ttl"
Oracle NoSQL Database
Le format de fichier de configuration d'Oracle NoSQL Database en tant que source de NoSQL Database Migrator est indiqué ci-dessous.
Vous pouvez migrer une table à partir d'Oracle NoSQL Database en spécifiant son nom dans le modèle de configuration source.
Voici un exemple de tableau Oracle NoSQL Database :
{"id":20,"firstName":"Jane","lastName":"Smith","otherNames":[{"first":"Jane","last":"teacher"}],"age":25,"income":55000,"address":{"city":"San Jose","number":201,"phones":[{"area":608,"kind":"work","number":6538955},{"area":931,"kind":"home","number":9533341},{"area":931,"kind":"mobile","number":9533382}],"state":"CA","street":"Atlantic Ave","zip":95005},"connections":[40,75,63],"expenses":null}
{"id":10,"firstName":"John","lastName":"Smith","otherNames":[{"first":"Johny","last":"chef"}],"age":22,"income":45000,"address":{"city":"Santa Cruz","number":101,"phones":[{"area":408,"kind":"work","number":4538955},{"area":831,"kind":"home","number":7533341},{"area":831,"kind":"mobile","number":7533382}],"state":"CA","street":"Pacific Ave","zip":95008},"connections":[30,55,43],"expenses":null}
{"id":30,"firstName":"Adam","lastName":"Smith","otherNames":[{"first":"Adam","last":"handyman"}],"age":45,"income":75000,"address":{"city":"Houston","number":301,"phones":[{"area":618,"kind":"work","number":6618955},{"area":951,"kind":"home","number":9613341},{"area":981,"kind":"mobile","number":9613382}],"state":"TX","street":"Indian Ave","zip":95075},"connections":[60,45,73],"expenses":null}
Modèle de configuration source
"source" : {
"type": "nosqldb",
"storeName" : "<store name>",
"helperHosts" : ["hostname1:port1","hostname2:port2,..."],
"table" : "<fully qualified table name>",
"queryFilter" : "<query predicate>",
"includeTTL": <true|false>,
"security" : "</path/to/store/security/file>",
"requestTimeoutMs" : 5000
}
Paramètres sources
Paramètre de configuration commun
-
Utiliser
"type" : "nosqldb" -
Exemple :
"security" : "/home/user/client.credentials"Exemple de contenu de fichier de sécurité pour l'authentification basée sur un fichier de mots de passe :
oracle.kv.password.noPrompt=true oracle.kv.auth.username=admin oracle.kv.auth.pwdfile.file=/home/nosql/login.passwd oracle.kv.transport=ssl oracle.kv.ssl.trustStore=/home/nosql/client.trust oracle.kv.ssl.protocols=TLSv 1.2 oracle.kv.ssl.hostnameVerifier=dnmatch(CN\=NoSQL)Exemple de contenu de fichier de sécurité pour l'authentification basée sur un portefeuille :
oracle.kv.password.noPrompt=true oracle.kv.auth.username=admin oracle.kv.auth.wallet.dir=/home/nosql/login.wallet oracle.kv.transport=ssl oracle.kv.ssl.trustStore=/home/nosql/client.trust oracle.kv.ssl.protocols=TLSv1.2 oracle.kv.ssl.hostnameVerifier=dnmatch(CN\=NoSQL) -
Exemple :
"requestTimeoutMs" : 5000
Paramètres de configuration uniques
-
Objet : Nom du magasin Oracle NoSQL Database.
-
Type de données : Chaîne
-
Obligatoire (O/N) : Y (Oui)
-
Exemple :
"storeName" : "kvstore"
-
Objet : Liste des paires hôte-port de registre au format
hostname:port. Délimitez chaque élément de la liste à l'aide d'une virgule. Vous devez spécifier au moins un hôte d'assistance. -
Type de données : Tableau de chaînes
-
Obligatoire (O/N) : Y (Oui)
-
Exemple :
"helperHosts" : ["localhost:5000","localhost:6000"]
-
Objet : Nom complet de la table à partir de laquelle migrer les données.
Format :
[namespace_name:]<table_name>Si la table se trouve dans l'espace de noms DEFAULT, vous pouvez omettre
namespace_name. La table doit exister dans le magasin. -
Type de données : Chaîne
-
Obligatoire (O/N) : Y (Oui)
-
Exemple :
-
Avec l'espace de noms DEFAULT
"table" :"mytable" -
Avec un espace de noms non par défaut
"table" : "mynamespace:mytable" -
Pour spécifier une table enfant
"table" : "mytable.child"
-
-
Objet : Spécifie si les métadonnées de durée de vie des rangées de table doivent être incluses ou non lors de l'exportation des tables Oracle NoSQL Database. Si cette option est réglée à Vrai, les données de durée de vie des enregistrements sont également incluses dans les données fournies par la source. La durée de vie est présente dans l'objet JSON
_metadataassocié à chaque rangée. Le délai d'expiration de chaque ligne est exporté en tant que nombre de millisecondes depuis l'époque UNIX (1er janvier 1970).Si vous ne spécifiez pas ce paramètre, la valeur par défaut est
false.Seules les rangées ayant une valeur d'expiration positive pour la durée de vie sont incluses dans les rangées exportées. Si une ligne n'expire pas, ce qui signifie TTL=0, ses métadonnées TTL ne sont pas incluses explicitement. Par exemple, si ROW1 expire au 2021-10-19 00:00:00 et que ROW2 n'expire pas, les données exportées se présentent comme suit :
//ROW1 { "id" : 1, "name" : "abc", "_metadata" : { "expiration" : 1634601600000 } } //ROW2 { "id" : 2, "name" : "xyz" } -
Type de données : booléen
-
Obligatoire (O/N) : N
-
Exemple :
"includeTTL" : true
-
Objet : Spécifie le prédicat d'interrogation utilisé par l'utilitaire Migrator pour exporter uniquement les rangées correspondant à la condition fournie.
L'utilitaire Migrator incorpore ce prédicat dans la clause WHERE de l'interrogation SQL. Cette interrogation est appliquée à la table source pour filtrer les données en fonction de la condition spécifiée. Pour spécifier la table source, utilisez le paramètre
tabledans votre modèle de configuration source.Par exemple, pour exporter uniquement les rangées dont la valeur
idest 10, réglez le paramètrequeryFilterà"id=10". L'utilitaire Migrator génère l'interrogation suivante :select $row from <table> $row where id=10Dans cette interrogation, l'utilitaire Migrator utilise l'alias de table
$rowpour traiter des rangées individuelles.Notez ce qui suit :
-
Vous ne pouvez pas utiliser
queryFilterpour sélectionner une colonne particulière. Vous pouvez fournir des transformations pour filtrer les colonnes. -
Si vous ne fournissez pas de valeur pour le paramètre
queryFilter, l'utilitaire Migrator exporte toutes les rangées de la table à l'aide de l'interrogation suivante :select $row from $row
-
-
Type de données : Chaîne JSON
-
Obligatoire (O/N) : N
-
Exemple :
"queryFilter" : "$row.address.city='Houston'"Voir le tableau Exemples de prédicats d'interrogation ci-dessous pour des exemples supplémentaires.
Expressions prises en charge :
L'utilitaire Migrator prend en charge les expressions suivantes dans le prédicat d'interrogation. Pour obtenir une syntaxe détaillée et des exemples, voir Guide de référence SQL.
Field step expressions
Map-filter step expressions
Array-filter step expressions
Array-slice step expressions
Arithmetic operators
Value comparison operators
Sequence comparison operators
Logical operators AND, OR and NOT
IS NULL and IS NOT NULL operators
IN operator
Regular expression
EXISTS operator
IS OF TYPE operator
CONCAT operator
CAST expression
Row functions
Le tableau suivant fournit des exemples de prédicats d'interrogation valides pour différentes expressions et les données exportées résultantes.
Note :
-
Il est recommandé d'utiliser des guillemets simples (') au lieu de guillemets doubles (") tout en fournissant un littéral de chaîne dans le prédicat d'interrogation. Si vous voulez utiliser un guillemet double ("), vous devez y échapper.
Par exemple : Utilisez le prédicat d'interrogation
"name='John'"pour sélectionner des rangées dans la table indiquée, où la valeur du champnameest la chaîne 'John'. -
Vous devez inclure l'alias de table
$rowdans les expressions lorsque :-
Utilisation de fonctions de rangée telles que
modification_time(), expiration_time(), creation_time(), etc. Pour plus de détails, voir Fonctions sur les rangées. -
Accès à des champs spécifiques dans une colonne JSON.
-
Table - Exemples de prédicats d'interrogation
| Interrogation/prédicat | Données exportées |
|---|---|
| "id=10" | Rangées de la table indiquée avec l'ID = 10. |
| "name='John'" | Rangées de la table indiquée avec le nom = 'John'. |
| " âge > 30 ans et sexe = homme " | Rangées de la table indiquée avec age supérieur à 30 et gender = 'male'. |
| "$row.address.state = 'CA' | Rangées de la table indiquée avec le champ state dans la colonne JSON address = 'CA'. Ici, vous utilisez une expression d'étape de champ dans le prédicat pour accéder à la valeur de champ obligatoire à partir d'un champ JSON. |
| "$row.expenses.keys($value > 1000) = 'food'" | Rangées de la table indiquée où la catégorie expenses = 'aliment' et le montant expenses sont supérieurs à 1000. Ici, vous utilisez une expression d'étape de filtre de carte pour sélectionner les noms de champ (clés) ou les valeurs de champ des champs de mappage/d'enregistrement. |
| "$row.expenses.keys($value > $.clothes) = 'food'" | Rangées de la table indiquée où la catégorie expenses = 'aliment' et le montant expenses sont supérieurs à ceux dépensés pour clothes. |
| "[$row.address.phones[$element.area = 650].kind] = 'work'" | Rangées de la table indiquée où l'indicatif régional du téléphone dans le tableau = 650 et type = 'travail'. Ici, vous utilisez une expression d'étape de filtre de tableau car le champ address est un tableau JSON. |
| "[connexions[$element > 100 et $pos < 10]] > 100" | Rangées de la table indiquée avec un maximum de 10 connexions et un nombre de connexions > 100. Ici, vous utilisez une expression d'étape de filtre de tableau car le champ connections est un tableau. |
| "$row. Income EST NULL" | Rangées de la table indiquée qui n'ont pas de revenu connu. Pour plus de détails, voir Opérateurs IS NULL et IS NOT NULL. |
| "a in (1, 5, 4)" | Rangées de la table indiquée où a est 1, 5 ou 4. Pour plus d'informations, voir Opérateur IN. |
| "a, b) au point (1, a), (5, g), (4, t))" | Rangées de la table indiquée où (a est 1 et b est 'a') OU (a est 5 et b est 'g') OU (a est 4 et b est 't'). |
| "regex_like(name, 'j.*')" | Rangées de la table indiquée dont le nom commence par j. Pour plus d'informations, voir Expressions standard. |
| "EXISTE $row.person.address.zipcode" | Rangées de la table indiquée où la colonne json person contient zipcode dans l'adresse. Pour plus d'informations, voir Opérateur Existe. |
| "$row.address est de type (chaîne)" | Rangées de la table indiquée où la colonne address est de type chaîne. Pour plus de détails, voir Opérateur Is-Of-Type. |
| "lastLogin > CAST('2022-10-01' AS TIMESTAMP)" | Rangées de la table indiquée avec la dernière connexion après le 1er octobre 2022. Pour plus d'informations, voir Expressions de flux. |
| "$row.connections[ ]=any 1" | Rangées de la table indiquée dont la colonne de tableau connections contient l'élément 1. Pour plus de détails, voir Opérateurs de comparaison de séquences. |
| "modification_time($row) >= 2022-10-01'' | Rangées de la table indiquée qui sont modifiées le 1er octobre 2022 ou après cette date. Pour plus de détails, voir Fonctions sur les rangées. |
| "expiration_time_millis($row) > 0" | Rangées de la table indiquée qui ne sont pas expirées. Pour plus de détails, voir Fonctions sur les rangées. |
Service Oracle NoSQL Database Cloud
Le format de fichier de configuration pour Oracle NoSQL Database Cloud Service en tant que source de NoSQL Database Migrator est indiqué ci-dessous.
Vous pouvez migrer une table à partir d'Oracle NoSQL Database Cloud Service en spécifiant le nom ou l'OCID du compartiment dans lequel réside la table dans le modèle de configuration source.
Voici un exemple de tableau pour Oracle NoSQL Database Cloud Service :
{"id":20,"firstName":"Jane","lastName":"Smith","otherNames":[{"first":"Jane","last":"teacher"}],"age":25,"income":55000,"address":{"city":"San Jose","number":201,"phones":[{"area":608,"kind":"work","number":6538955},{"area":931,"kind":"home","number":9533341},{"area":931,"kind":"mobile","number":9533382}],"state":"CA","street":"Atlantic Ave","zip":95005},"connections":[40,75,63],"expenses":null}
{"id":10,"firstName":"John","lastName":"Smith","otherNames":[{"first":"Johny","last":"chef"}],"age":22,"income":45000,"address":{"city":"Santa Cruz","number":101,"phones":[{"area":408,"kind":"work","number":4538955},{"area":831,"kind":"home","number":7533341},{"area":831,"kind":"mobile","number":7533382}],"state":"CA","street":"Pacific Ave","zip":95008},"connections":[30,55,43],"expenses":null}
{"id":30,"firstName":"Adam","lastName":"Smith","otherNames":[{"first":"Adam","last":"handyman"}],"age":45,"income":75000,"address":{"city":"Houston","number":301,"phones":[{"area":618,"kind":"work","number":6618955},{"area":951,"kind":"home","number":9613341},{"area":981,"kind":"mobile","number":9613382}],"state":"TX","street":"Indian Ave","zip":95075},"connections":[60,45,73],"expenses":null}
Modèle de configuration source
"source" : {
"type" : "nosqldb_cloud",
"endpoint" : "<Oracle NoSQL Cloud Service endpoint URL or region ID>",
"table" : "<table name>",
"queryFilter" : "<query predicate>",
"compartment" : "<OCI compartment name or id>",
"credentials" : "<path/to/oci/credential/file>",
"credentialsProfile" : "<profile name in oci config file>",
"useInstancePrincipal" : <true|false>,
"useDelegationToken" : <true|false>,
"useSessionToken" : <true|false>,
"useOKEWorkloadIdentity" : <true|false>,
"readUnitsPercent" : <table readunits percent>,
"includeTTL": <true|false>,
"requestTimeoutMs" : <timeout in milli seconds>
}
Paramètres sources
Paramètres de configuration communs
-
Utiliser
"type" : "nosqldb_cloud" -
Exemple :
-
ID région :
"endpoint" : "us-ashburn-1" -
Format d'URL :
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
-
Exemple :
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
-
Données d'identificationProfil
Exemple :
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Exemple :
"useInstancePrincipal" : true -
Utiliser le jeton de délégation
Exemple :
"useDelegationToken" : trueNote : L'authentification avec jeton de délégation n'est prise en charge que lorsque l'outil de migration de base de données NoSQL est exécuté à partir d'un Cloud Shell.
-
Exemple :
"useOKEWorkloadIdentity" : true -
Exemple :
"useSessionToken" : true -
Exemple :
"requestTimeoutMs" : 5000
Paramètres de configuration uniques
-
Objet : Nom de la table à partir de laquelle migrer les données.
-
Type de données : Chaîne
-
Obligatoire (O/N) : Y (Oui)
-
Exemple :
-
Pour spécifier une table
"table" : "myTable" -
Pour spécifier une table enfant
"table" : "mytable.child"
-
-
Objet : Spécifie le nom ou l'OCID du compartiment dans lequel réside la table.
Si vous n'indiquez aucune valeur, la valeur par défaut est le compartiment racine.
Vous pouvez trouver l'OCID de votre compartiment dans la fenêtre Explorateur de compartiment sous Gouvernance dans la console OCI Cloud.
-
Type de données : Chaîne
-
Obligatoire (O/N) : Y (Oui), si la table ne se trouve pas dans le compartiment racine de la location OU lorsque le paramètre useInstancePrincipal est réglé à Vrai.
Note : Si le paramètre useInstancePrincipal est réglé à Vrai, le compartiment doit spécifier l'OCID du compartiment et non son nom.
-
Exemple :
-
Nom du compartiment
"compartment" : "mycompartment" -
Nom de compartiment qualifié avec son compartiment parent
"compartment" : "parent.childcompartment" -
Aucune valeur fournie. Par défaut, il s'agit du compartiment racine.
"compartment": "" -
OCID du compartiment.
"compartment" : "ocid 1.tenancy.oc1...4ksd"
-
-
Objet : Pourcentage d'unités de lecture de table à utiliser lors de la migration de la table NoSQL.
La valeur par défaut est 90. L'intervalle valide est tout entier compris entre 1 et 100. La durée nécessaire à la migration des données est directement proportionnelle à cet attribut. Il est préférable d'augmenter le débit de lecture de la table pour l'activité de migration. Vous pouvez réduire le débit de lecture une fois le processus de migration terminé.
Pour connaître les limites quotidiennes relatives aux modifications de débit, voir Limites en nuage dans le document Oracle NoSQL Database Cloud Service.
Pour savoir comment utiliser cet attribut pour améliorer la vitesse de migration des données, voir Dépannage de l'outil de migration d'Oracle NoSQL Database
-
Type de données : Nombre entier
-
Obligatoire (O/N) : N
-
Exemple :
"readUnitsPercent" : 90
-
Objet : Spécifie si les métadonnées de durée de vie des rangées de table doivent être incluses ou non lors de l'exportation des tables Oracle NoSQL Database Cloud Service. Si cette option est réglée à Vrai, les données de durée de vie des enregistrements sont également incluses dans les données fournies par la source. La durée de vie est présente dans l'objet JSON
_metadataassocié à chaque rangée. Le délai d'expiration de chaque ligne est exporté en tant que nombre de millisecondes depuis l'époque UNIX (1er janvier 1970).Si vous ne spécifiez pas ce paramètre, la valeur par défaut est
false.Seules les rangées ayant une valeur d'expiration positive pour la durée de vie sont incluses dans les rangées exportées. Si une ligne n'expire pas, ce qui signifie TTL=0, ses métadonnées TTL ne sont pas incluses explicitement. Par exemple, si ROW1 expire au 2021-10-19 00:00:00 et que ROW2 n'expire pas, les données exportées se présentent comme suit :
//ROW1 { "id" : 1, "name" : "abc", "_metadata" : { "expiration" : 1634601600000 } } //ROW2 { "id" : 2, "name" : "xyz" } -
Type de données : booléen
-
Obligatoire (O/N) : N
-
Exemple :
"includeTTL" : true
-
Objet : Spécifie le prédicat d'interrogation utilisé par l'utilitaire Migrator pour exporter uniquement les rangées correspondant à la condition fournie.
L'utilitaire Migrator incorpore ce prédicat dans la clause WHERE de l'interrogation SQL. Cette interrogation est appliquée à la table source pour filtrer les données en fonction de la condition spécifiée. Pour spécifier la table source, utilisez le paramètre
tabledans votre modèle de configuration source.Par exemple, pour exporter uniquement les rangées dont la valeur
idest 10, réglez le paramètrequeryFilterà"id=10". L'utilitaire Migrator génère l'interrogation suivante :select $row from <table> $row where id=10Dans l'interrogation ci-dessus, l'utilitaire Migrator utilise l'alias de table
$rowpour traiter des rangées individuelles.Notez ce qui suit :
-
Vous ne pouvez pas utiliser
queryFilterpour sélectionner une colonne particulière. Vous pouvez fournir des transformations pour filtrer les colonnes. -
Si vous ne fournissez pas de valeur pour le paramètre
queryFilter, l'utilitaire Migrator exporte toutes les rangées de la table à l'aide de l'interrogation suivante :select $row from $row`
-
-
Type de données : Chaîne JSON
-
Obligatoire (O/N) : N
-
Exemple :
"queryFilter" : "$row.address.city='Houston'"Voir le tableau Exemples de prédicats d'interrogation ci-dessous pour des exemples supplémentaires.
Expressions prises en charge :
L'utilitaire Migrator prend en charge les expressions suivantes dans le prédicat d'interrogation. Pour obtenir une syntaxe détaillée et des exemples, voir Guide de référence SQL.
Field step expressions
Map-filter step expressions
Array-filter step expressions
Array-slice step expressions
Arithmetic operators
Value comparison operators
Sequence comparison operators
Logical operators AND, OR and NOT
IS NULL and IS NOT NULL operators
IN operator
Regular expression
EXISTS operator
IS OF TYPE operator
CONCAT operator
CAST expression
Row functions
Le tableau suivant fournit des exemples de prédicats d'interrogation valides pour différentes expressions et les données exportées résultantes.
Note :
-
Il est recommandé d'utiliser des guillemets simples (') au lieu de guillemets doubles (") tout en fournissant un littéral de chaîne dans le prédicat d'interrogation. Si vous voulez utiliser un guillemet double ("), vous devez y échapper.
Par exemple : Utilisez le prédicat d'interrogation
"name='John'"pour sélectionner des rangées dans la table indiquée, où la valeur du champnameest la chaîne 'John'. -
Vous devez inclure l'alias de table
$rowdans les expressions lorsque :- Utilisation de fonctions de rangée telles que
modification_time(), expiration_time(), creation_time(), etc. Pour plus de détails, voir Fonctions sur les rangées. - Accès à des champs spécifiques dans une colonne JSON.
- Utilisation de fonctions de rangée telles que
Table - Exemples de prédicats d'interrogation
| Interrogation/prédicat | Données exportées |
|---|---|
| "id=10" | Rangées de la table indiquée avec l'ID = 10. |
| "name='John'" | Rangées de la table indiquée avec le nom = 'John'. |
| " âge > 30 ans et sexe = homme " | Rangées de la table indiquée avec age supérieur à 30 et gender = 'male'. |
| "$row.address.state = 'CA' | Rangées de la table indiquée avec le champ state dans la colonne JSON address = 'CA'. Ici, vous utilisez une expression d'étape de champ dans le prédicat pour accéder à la valeur de champ obligatoire à partir d'un champ JSON. |
| "$row.expenses.keys($value > 1000) = 'food'" | Rangées de la table indiquée où la catégorie expenses = 'aliment' et le montant expenses sont supérieurs à 1000. Ici, vous utilisez une expression d'étape de filtre de carte pour sélectionner les noms de champ (clés) ou les valeurs de champ des champs de mappage/d'enregistrement. |
| "$row.expenses.keys($value > $.clothes) = 'food'" | Rangées de la table indiquée où la catégorie expenses = 'aliment' et le montant expenses sont supérieurs à ceux dépensés pour clothes. |
| "[$row.address.phones[$element.area = 650].kind] = 'work'" | Rangées de la table indiquée où l'indicatif régional du téléphone dans le tableau = 650 et type = 'travail'. Ici, vous utilisez une expression d'étape de filtre de tableau car le champ address est un tableau JSON. |
| "[connexions[$element > 100 et $pos < 10]] > 100" | Rangées de la table indiquée avec un maximum de 10 connexions et un nombre de connexions > 100. Ici, vous utilisez une expression d'étape de filtre de tableau car le champ connections est un tableau. |
| "$row. Income EST NULL" | Rangées de la table indiquée qui n'ont pas de revenu connu. Pour plus de détails, voir Opérateurs IS NULL et IS NOT NULL. |
| "a in (1, 5, 4)" | Rangées de la table indiquée où a est 1, 5 ou 4. Pour plus d'informations, voir Opérateur IN. |
| "a, b) au point (1, a), (5, g), (4, t))" | Rangées de la table indiquée où (a est 1 et b est 'a') OU (a est 5 et b est 'g') OU (a est 4 et b est 't'). |
| "regex_like(name, 'j.*')" | Rangées de la table indiquée dont le nom commence par j. Pour plus d'informations, voir Expressions standard. |
| "EXISTE $row.person.address.zipcode" | Rangées de la table indiquée où la colonne json person contient zipcode dans l'adresse. Pour plus d'informations, voir Opérateur Existe. |
| "$row.address est de type (chaîne)" | Rangées de la table indiquée où la colonne address est de type chaîne. Pour plus de détails, voir Opérateur Is-Of-Type. |
| "lastLogin > CAST('2022-10-01' AS TIMESTAMP)" | Rangées de la table indiquée avec la dernière connexion après le 1er octobre 2022. Pour plus d'informations, voir Expressions de flux. |
| "$row.connections[ ]=any 1" | Rangées de la table indiquée dont la colonne de tableau connections contient l'élément 1. Pour plus de détails, voir Opérateurs de comparaison de séquences. |
| "modification_time($row) >= 2022-10-01'' | Rangées de la table indiquée qui sont modifiées le 1er octobre 2022 ou après cette date. Pour plus de détails, voir Fonctions sur les rangées. |
| "expiration_time_millis($row) > 0" | Rangées de la table indiquée qui ne sont pas expirées. Pour plus de détails, voir Fonctions sur les rangées. |
Source du fichier CSV
Le format du fichier de configuration pour le fichier CSV en tant que source de NoSQL Database Migrator est indiqué ci-dessous. Le fichier CSV doit être conforme au format RFC4180.
Vous pouvez migrer un fichier CSV ou un répertoire contenant les données CSV en spécifiant le nom ou le répertoire du fichier dans le modèle de configuration source.
Voici un exemple de fichier CSV :
1,"Computer Science","San Francisco","2500"
2,"Bio-Technology","Los Angeles","1200"
3,"Journalism","Las Vegas","1500"
4,"Telecommunication","San Francisco","2500"
Modèle de configuration source
"source" : {
"type" : "file",
"format" : "csv",
"dataPath": "</path/to/a/csv/[file|dir]>",
"hasHeader" : <true | false>,
"columns" : ["column1", "column2", ....],
"csvOptions": {
"encoding": "<character set encoding>",
"trim": "<true | false>"
}
}
Paramètres sources
Paramètres de configuration communs
Paramètres de configuration uniques
-
Objet : Spécifie le chemin absolu d'un fichier ou d'un répertoire contenant les données CSV pour la migration. Si vous spécifiez un répertoire, NoSQL Database Migrator importe tous les fichiers ayant l'extension
.csvou.CSVdans ce répertoire. Tous les fichiers CSV sont copiés dans une seule table, mais pas dans un ordre particulier.Les fichiers CSV doivent être conformes à la norme
RFC4180. Vous devez vous assurer que les données de chaque fichier CSV correspondent au schéma de table NoSQL Database défini dans la table de récepteur. Les sous-répertoires ne sont pas pris en charge. -
Type de données : Chaîne
-
Obligatoire (O/N) : Y (Oui)
-
Exemple :
-
Spécification d'un fichier CSV
"dataPath" : "/home/user/sample.csv" -
Définition d'un répertoire
"dataPath" : "/home/user"
-
Note : Les fichiers CSV ne doivent contenir que des valeurs scalaires. L'importation de fichiers CSV contenant des types complexes tels que MAP, RECORD, ARRAY et JSON n'est pas prise en charge. L'outil NoSQL Database Migrator ne vérifie pas l'exactitude des données dans le fichier CSV d'entrée. L'outil NoSQL Database Migrator prend en charge l'importation de données CSV conformes au format RFC4180. Les fichiers CSV contenant des données non conformes à la norme RFC4180 risquent de ne pas être copiés correctement ou d'entraîner une erreur. Si les données d'entrée sont corrompues, l'outil NoSQL Database Migrator n'analyse pas les enregistrements CSV. Si des erreurs se produisent lors de la migration, l'outil NoSQL Database Migrator enregistre les informations sur les enregistrements d'entrée en échec à des fins de débogage et d'information. Pour plus de détails, voir Progression de l'outil de migration de journalisation dans Utilisation d'Oracle NoSQL Data Migrator.
-
Objet : Indique si le fichier CSV comporte un en-tête ou non. Si cette valeur est réglée à
true, la première ligne est ignorée. Si elle est réglée àfalse, la première ligne est considérée comme un enregistrement CSV. La valeur par défaut estfalse. -
Type de données : Booléen
-
Obligatoire (O/N) : N
-
Exemple :
"hasHeader" : "false"
-
Objet : Spécifie la liste des noms de colonne de table de base de données NoSQL. L'ordre des noms de colonne indique le mappage des champs du fichier CSV avec les colonnes de table NoSQL Database correspondantes. Si l'ordre des colonnes du fichier CSV d'entrée ne correspond pas aux colonnes de table NoSQL Database existantes ou nouvellement créées, vous pouvez mapper l'ordre à l'aide de ce paramètre. De plus, lors de l'importation dans une table comportant une colonne d'identité, vous pouvez ignorer le nom de la colonne d'identité dans le paramètre
columns.Note :
-
Si la table NoSQL Database contient des colonnes supplémentaires qui ne sont pas disponibles dans le fichier CSV, les valeurs des colonnes manquantes sont mises à jour avec la valeur par défaut définie dans la table NoSQL Database. Si aucune valeur par défaut n'est fournie, une valeur nulle est insérée lors de la migration. Pour plus d'informations sur les valeurs par défaut, voir la section Définitions de type de données dans le Guide de référence SQL.
-
Si le fichier CSV contient des colonnes supplémentaires qui ne sont pas définies dans la table NoSQL Database, les informations de colonne supplémentaires sont ignorées.
-
Si une valeur de l'enregistrement CSV est vide, elle est réglée à la valeur par défaut des colonnes correspondantes dans la table NoSQL Database. Si aucune valeur par défaut n'est fournie, une valeur nulle est insérée lors de la migration.
-
-
Type de données : Tableau de chaînes
-
Obligatoire (O/N) : N
-
Exemple :
"columns" : ["table_column_1", "table_column_2"]
-
Objet : Spécifie les options de formatage pour un fichier CSV. Indiquez le format d'encodage du jeu de caractères du fichier CSV et choisissez de découper ou non les espaces.
-
Type de données : Objet
-
Obligatoire (O/N) : N
-
Objet : Spécifie le jeu de caractères pour décoder le fichier CSV. La valeur par défaut est
UTF-8. Les jeux de caractères pris en charge sontUS-ASCII, ISO-8859-1, UTF-8,etUTF-16. -
Type de données : Chaîne
-
Obligatoire (O/N) : N
-
Exemple :
"encoding" : "UTF-8"
-
Objet : Spécifie si les blancs de début et de fin d'une valeur de champ CSV doivent être supprimés. La valeur par défaut est
false. -
Type de données : Booléen
-
Obligatoire (O/N) : N
-
Exemple :
"trim" : "true"
Fichier CSV dans le seau de stockage d'objets OCI
Le format de fichier de configuration du fichier CSV dans le seau de stockage d'objets OCI en tant que source de NoSQL Database Migrator est indiqué ci-dessous. Le fichier CSV doit être conforme au format RFC4180.
Vous pouvez migrer un fichier CSV dans le seau de stockage d'objets OCI en spécifiant le nom du seau dans le modèle de configuration source.
Voici un exemple de fichier CSV dans le seau de stockage d'objets OCI :
1,"Computer Science","San Francisco","2500"
2,"Bio-Technology","Los Angeles","1200"
3,"Journalism","Las Vegas","1500"
4,"Telecommunication","San Francisco","2500"
Note : Les types de récepteur valides pour le type de source du service de stockage d'objets OCI sont nosqldb et nosqldb_cloud.
Modèle de configuration source
"source" : {
"type" : "object_storage_oci",
"format" : "csv",
"endpoint" : "<OCI Object Storage service endpoint URL or region ID>",
"namespace" : "<OCI Object Storage namespace>",
"bucket" : "<bucket name>",
"prefix" : "<object prefix>",
"credentials" : "</path/to/oci/config/file>",
"credentialsProfile" : "<profile name in oci config file>",
"useInstancePrincipal" : <true|false>,
"useDelegationToken" : <true|false>,
"useSessionToken" : <true|false>,
"useOKEWorkloadIdentity" : <true|false>,
"hasHeader" : <true | false>,
"columns" : ["column1", "column2", ....],
"csvOptions" : {
"encoding" : "<character set encoding>",
"trim" : <true | false>
}
}
Paramètres sources
Paramètres de configuration communs
-
Utiliser
"type" : "object_storage_oci" -
Utiliser
"format" : "csv" -
Exemple de point d'extrémité :
-
ID région :
"endpoint" : "us-ashburn-1" -
Format d'URL :
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
-
Exemple :
"namespace" : "my-namespace" -
Exemple :
"bucket" : "my-bucket"Note :
-
NoSQL Database Migrator importe tous les fichiers avec l'extension .
csvou.CSVen fonction de l'objet et les copie dans une table unique dans le même ordre. -
Les fichiers CSV ne doivent contenir que des valeurs scalaires. L'importation de fichiers CSV contenant des types complexes tels que MAP, RECORD, ARRAY et JSON n'est pas prise en charge. L'outil NoSQL Database Migrator ne vérifie pas l'exactitude des données dans le fichier CSV d'entrée. L'outil NoSQL Database Migrator prend en charge l'importation de données CSV conformes au format
RFC4180. Les fichiers CSV contenant des données non conformes à la normeRFC4180risquent de ne pas être copiés correctement ou d'entraîner une erreur. Si les données d'entrée sont corrompues, l'outil NoSQL Database Migrator n'analyse pas les enregistrements CSV. Si des erreurs se produisent lors de la migration, l'outil NoSQL Database Migrator enregistre les informations sur les enregistrements d'entrée en échec à des fins de débogage et d'information. Pour plus de détails, voir Progression de l'outil de migration de journalisation dans Utilisation d'Oracle NoSQL Data Migrator.
-
-
Exemple :
-
"prefix" : "my_table/Data/000000.csv"(migre uniquement000000.csv) -
"prefix" : "my_table/Data"(migre tous les objets avec le préfixemy_table/Data)
-
-
Exemple :
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
-
Données d'identificationProfil
Exemple :
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Exemple :
"useInstancePrincipal" : true -
Utiliser le jeton de délégation
Exemple :
"useDelegationToken" : trueNote : L'authentification avec jeton de délégation n'est prise en charge que lorsque l'outil de migration de base de données NoSQL est exécuté à partir d'un Cloud Shell.
-
Exemple :
"useOKEWorkloadIdentity" : true -
Exemple :
"useSessionToken" : true
Paramètres de configuration uniques
-
Objet : Indique si le fichier CSV comporte un en-tête ou non. Si cette valeur est réglée à
true, la première ligne est ignorée. Si elle est réglée àfalse, la première ligne est considérée comme un enregistrement CSV. La valeur par défaut estfalse. -
Type de données : Booléen
-
Obligatoire (O/N) : N
-
Exemple :
"hasHeader" : "false"
-
Objet : Spécifie la liste des noms de colonne de table de base de données NoSQL. L'ordre des noms de colonne indique le mappage des champs du fichier CSV avec les colonnes de table NoSQL Database correspondantes. Si l'ordre des colonnes du fichier CSV d'entrée ne correspond pas aux colonnes de table NoSQL Database existantes ou nouvellement créées, vous pouvez mapper l'ordre à l'aide de ce paramètre. De plus, lors de l'importation dans une table comportant une colonne d'identité, vous pouvez ignorer le nom de la colonne d'identité dans le paramètre
columns.Note :
-
Si la table NoSQL Database contient des colonnes supplémentaires qui ne sont pas disponibles dans le fichier CSV, les valeurs des colonnes manquantes sont mises à jour avec la valeur par défaut définie dans la table NoSQL Database. Si aucune valeur par défaut n'est fournie, une valeur nulle est insérée lors de la migration. Pour plus d'informations sur les valeurs par défaut, voir la section Définitions de type de données dans le Guide de référence SQL.
-
Si le fichier CSV contient des colonnes supplémentaires qui ne sont pas définies dans la table NoSQL Database, les informations de colonne supplémentaires sont ignorées.
-
Si une valeur de l'enregistrement CSV est vide, elle est réglée à la valeur par défaut des colonnes correspondantes dans la table NoSQL Database. Si aucune valeur par défaut n'est fournie, une valeur nulle est insérée lors de la migration.
-
-
Type de données : Tableau de chaînes
-
Obligatoire (O/N) : N
-
Exemple :
"columns" : ["table_column_1", "table_column_2"]
-
Objet : Spécifie les options de formatage pour un fichier CSV. Indiquez le format d'encodage du jeu de caractères du fichier CSV et choisissez de découper ou non les espaces.
-
Type de données : Objet
-
Obligatoire (O/N) : N
-
Objet : Spécifie le jeu de caractères pour décoder le fichier CSV. La valeur par défaut est
UTF-8. Les jeux de caractères pris en charge sontUS-ASCII, ISO-8859-1, UTF-8,etUTF-16. -
Type de données : Chaîne
-
Obligatoire (O/N) : N
-
Exemple :
"encoding" : "UTF-8"
-
Objet : Spécifie si les blancs de début et de fin d'une valeur de champ CSV doivent être supprimés. La valeur par défaut est
false. -
Type de données : Booléen
-
Obligatoire (O/N) : N
-
Exemple :
"trim" : "true"
Modèles de configuration de récepteur
Découvrez les formats de fichier de configuration de l'évier pour chaque évier valide et l'objectif de chaque paramètre de configuration.
Pour le modèle de fichier de configuration, voir Fichier de configuration dans Terminologie utilisée avec NoSQL Data Migrator.
Pour plus de détails sur les formats sources valides pour chacun des puits, voir Modèles de configuration de la source.
Rubriques
Les rubriques suivantes décrivent les modèles de configuration de puits référencés par Oracle NoSQL Database Migrator pour copier les données d'une source valide vers le puits indiqué.
-
Fichier JSON spécifié.
-
Fichier Parquet dans le répertoire spécifié.
-
Fichier JSON dans le seau de stockage d'objets OCI
Fichier JSON dans le seau de stockage d'objets OCI spécifié.
-
Fichier Parquet dans le seau de stockage d'objets OCI
Fichier Parquet dans le seau de stockage d'objets OCI spécifié.
-
Table spécifiée dans Oracle NoSQL Database.
-
Service Oracle NoSQL Database Cloud
Table spécifiée dans Oracle NoSQL Database Cloud Service.
Lavabo de fichier JSON
Le format de fichier de configuration pour le fichier JSON en tant que récepteur de NoSQL Database Migrator est indiqué ci-dessous.
Modèle de configuration de l'évier
"sink" : {
"type" : "file",
"format" : "json",
"dataPath": "</path/to/a/directory>",
"schemaPath" : "<path/to/a/file>",
"pretty" : <true|false>,
"useMultiFiles" : <true|false>,
"chunkSize" : <size in MB>
}
Paramètres du puits
Paramètres de configuration communs
-
Utiliser
"type" : "file" -
Utiliser
"format" : "json" -
Exemple :
"chunkSize" : 40Note : Ce paramètre s'applique UNIQUEMENT lorsque le paramètre useMultiFiles est réglé à Vrai.
Paramètres de configuration uniques
-
Objet : Spécifie le chemin d'accès à un répertoire dans lequel NoSQL Database Migrator copie les données sources au format JSON.
NoSQL Database Migrator crée des fichiers JSON dans le répertoire spécifié. Si les fichiers existent, NoSQL Database Migrator remplace leur contenu par des données sources.
Assurez-vous que le répertoire existe déjà et qu'il dispose des autorisations de lecture et d'écriture.
-
Type de données : Chaîne
-
Obligatoire (O/N) : Y (Oui)
-
Exemple :
"dataPath" : "/home/user/data"Une fois la migration réussie, le répertoire spécifié dans le paramètre dataPath inclura les fichiers exportés comme indiqué dans l'exemple suivant :
|--<Table_name>_1_5.json |--<Table_name>_6_10.json ...
-
Objet : Spécifie le chemin absolu d'un fichier pour écrire les informations de schéma de table fournies par la source.
Si cette valeur n'est pas définie, les informations du schéma source ne seront pas migrées vers le puits. Si cette valeur est indiquée, l'utilitaire de migration écrit le schéma de la table source dans le fichier indiqué ici.
Les informations de schéma sont écrites en tant que commande LDD par ligne dans ce fichier. Si le fichier n'existe pas dans le chemin de données indiqué, NoSQL Database Migrator le crée. S'il existe déjà, NoSQL Database Migrator remplacera son contenu par les données sources. Vous devez vous assurer que le répertoire parent dans le chemin d'accès aux données est valide pour le fichier spécifié.
-
Type de données : Chaîne
-
Obligatoire (O/N) : N
-
Exemple :
"schemaPath" : "/home/user/schema_file"
-
Objet : Spécifie si la sortie JSON doit être améliorée ou non pour en améliorer la lisibilité.
S'il n'est pas spécifié, la valeur par défaut est Faux.
-
Type de données : booléen
-
Obligatoire (O/N) : N
-
Exemple :
"pretty" : true
-
Objet : Spécifie si les fichiers exportés (créés sous le répertoire spécifié dans le paramètre dataPath) doivent être fractionnés ou non en plusieurs sous-fichiers d'une taille spécifique lors de la migration des données de table de base de données NoSQL vers un répertoire. La valeur par défaut du paramètre useMultiFiles est Vrai.
NoSQL Database Migrator fractionne les données de table NoSQL Database en plusieurs fichiers lors de l'exportation des données. Si le paramètre useMultiFiles est réglé à Vrai, chaque fichier exporté est divisé en sous-fichiers de taille spécifiée dans le paramètre chunkSize.
Exemple : Une fois la migration réussie, le répertoire indiqué dans le paramètre dataPath inclura les fichiers exportés comme indiqué dans l'exemple suivant :
|--<Table_name>_1_5_0.json |--<Table_name>_1_5_1.json |--<Table_name>_6_10_0.json |--<Table_name>_6_10_1.json |--<Table_name>_6_10_2.json ... -
Type de données : booléen
-
Obligatoire (O/N) : N
-
Exemple :
"useMultiFiles" : true
Fichier Parquet
Le format de fichier de configuration pour Parquet File en tant que récepteur de NoSQL Database Migrator est indiqué ci-dessous.
Modèle de configuration de l'évier
"sink" : {
"type" : "file",
"format" : "parquet",
"dataPath": "</path/to/a/dir>",
"chunkSize" : <size in MB>,
"compression": "<SNAPPY|GZIP|NONE>",
"parquetOptions": {
"useLogicalJson": <true|false>,
"useLogicalEnum": <true|false>,
"useLogicalUUID": <true|false>,
"truncateDoubleSpecials": <true|false>
}
}
Paramètres du puits
Paramètres de configuration communs
-
Utiliser
"type" : "file" -
Utiliser
"format" : "parquet" -
Exemple :
"chunkSize" : 40
Paramètres de configuration uniques
-
Objet : Spécifie le chemin d'accès à un répertoire de stockage des données de table NoSQL migrées. Assurez-vous que le répertoire existe déjà et qu'il dispose des autorisations de lecture et d'écriture.
-
Type de données : Chaîne
-
Obligatoire (O/N) : Y (Oui)
-
Exemple :
"dataPath" : "/home/user/migrator/my_table"
-
Fonction : Spécifie le type de compression à utiliser pour compresser les données Parquet. Les valeurs valides sont SNAPPY (SNAPPY), GZIP (GZIP) et NONE (Aucun).
S'il n'est pas spécifié, la valeur par défaut est SNAPPY (SNAPPY).
-
Type de données : Chaîne
-
Obligatoire (O/N) : N
-
Exemple :
"compression" : "GZIP"
-
Objet : Spécifie les options pour sélectionner les types logiques Parquet pour les colonnes NoSQL ENUM, JSON et UUID.
Si vous ne spécifiez pas ce paramètre, NoSQL Database Migrator écrit les données des colonnes ENUM, JSON et UUID sous forme de chaîne.
-
Type de données : Objet
-
Obligatoire (O/N) : N
-
Objet : Spécifie si les données de colonne JSON NoSQL doivent être écrites ou non en tant que type JSON logique Parquet. Pour plus d'informations, voir Définitions de types logiques Parquet.
S'il n'est pas spécifié ou réglé à Faux, NoSQL Database Migrator écrit les données de colonne JSON NoSQL en tant que chaîne.
-
Type de données : booléen
-
Obligatoire (O/N) : N
-
Exemple :
"useLogicalJson" : true
-
Objet : Spécifie si les données de colonne NoSQL ENUM doivent être écrites ou non en tant que type ENUM logique Parquet. Pour plus d'informations, voir Définitions de types logiques Parquet.
S'il n'est pas spécifié ou réglé à Faux, NoSQL Database Migrator écrit les données de colonne NoSQL ENUM en tant que chaîne.
-
Type de données : booléen
-
Obligatoire (O/N) : N
-
Exemple :
"useLogicalEnum" : true
-
Objet : Spécifie si les données de colonne UUID NoSQL doivent être écrites en tant que type d'UUID logique Parquet. Pour plus d'informations, voir Définitions de types logiques Parquet.
S'il n'est pas spécifié ou réglé à Faux, NoSQL Database Migrator écrit les données de colonne UUID NoSQL en tant que chaîne.
-
Type de données : booléen
-
Obligatoire (O/N) : N
-
Exemple :
"useLogicalUUID" : true
parquetOptions.truncateDoubleSpecials
-
Objet : Spécifie si les valeurs double +Infinity, -Infinity et NaN doivent être tronquées ou non.
Par défaut, elle est réglée à
false. Si le paramètre est réglé àtrue,-
Positive_Infinity est tronqué à Double.MAX_VALUE.
-
NEGATIVE_INFINITY est tronqué à -Double.MAX_VALUE.
-
NaN est tronqué à 9,9999999999999999990E307.
-
-
Type de données : booléen
-
Obligatoire (O/N) : N
-
Exemple :
"truncateDoubleSpecials" : true
Fichier JSON dans le seau de stockage d'objets OCI
Le format de fichier de configuration pour le fichier JSON dans le seau de stockage d'objets OCI en tant que récepteur de l'outil de migration de base de données NoSQL est indiqué ci-dessous.
Note : Les types de source valides pour le service de stockage d'objets OCI en tant que récepteur sont nosqldb et nosqldb_cloud.
Modèle de configuration de l'évier
"sink" : {
"type" : "object_storage_oci",
"format" : "json",
"endpoint" : "<OCI Object Storage service endpoint URL or region ID>",
"namespace" : "<OCI Object Storage namespace>",
"bucket" : "<bucket name>",
"prefix" : "<object prefix>",
"chunkSize" : <size in MB>,
"pretty" : <true|false>,
"credentials" : "</path/to/oci/config/file>",
"credentialsProfile" : "<profile name in oci config file>",
"useInstancePrincipal" : <true|false>,
"useDelegationToken" : <true|false>,
"useSessionToken" : <true|false>,
"useOKEWorkloadIdentity" : <true|false>
}
Paramètres du puits
Paramètres de configuration communs
-
Utiliser
"type" : "object_storage_oci" -
Utiliser
"format" : "json" -
Exemple :
-
ID région :
"endpoint" : "us-ashburn-1" -
Format d'URL :
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
-
Exemple :
"namespace" : "my-namespace" -
Exemple :
"bucket" : "my-bucket" -
Le schéma est migré vers le fichier
<prefix>/Schema/schema.ddlet les données sources sont migrées vers les fichiers<prefix>/Data/<chunk>.json, où chunk=000000.json, 000001.json, etc.Exemple :
-
"prefix" : "my_export" -
"prefix" : "my_export/2021-04-05/"
-
-
Exemple :
"chunkSize" : 40 -
Exemple :
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
- Exemple pour credentialsProfile :
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Exemple :
"useInstancePrincipal" : true -
Utiliser le jeton de délégation
Exemple :
"useDelegationToken" : trueNote : L'authentification avec jeton de délégation n'est prise en charge que lorsque l'outil de migration de base de données NoSQL est exécuté à partir d'un Cloud Shell.
-
Exemple :
"useOKEWorkloadIdentity" : true -
Exemple :
"useSessionToken" : true
Paramètre de configuration unique
jolie
-
Objet : Spécifie si la sortie JSON doit être améliorée ou non pour en améliorer la lisibilité.
S'il n'est pas spécifié, la valeur par défaut est Faux.
-
Type de données : booléen
-
Obligatoire (O/N) : N
-
Exemple :
"pretty" : true
Fichier Parquet dans le seau de stockage d'objets OCI
Le format de fichier de configuration pour le fichier Parquet dans le seau du service de stockage d'objets pour OCI en tant que dissipateur de l'outil de migration de base de données NoSQL est indiqué ci-dessous.
Note : Les types de source valides pour le type de source du service de stockage d'objets OCI sont nosqldb et nosqldb_cloud.
Modèle de configuration de l'évier
"sink" : {
"type" : "object_storage_oci",
"format" : "parquet",
"endpoint" : "<OCI Object Storage service endpoint URL or region ID>",
"namespace" : "<OCI Object Storage namespace>",
"bucket" : "<bucket name>",
"prefix" : "<object prefix>",
"chunkSize" : <size in MB>,
"compression": "<SNAPPY|GZIP|NONE>",
"parquetOptions": {
"useLogicalJson": <true|false>,
"useLogicalEnum": <true|false>,
"useLogicalUUID": <true|false>,
"truncateDoubleSpecials": <true|false>
},
"credentials" : "</path/to/oci/config/file>",
"credentialsProfile" : "<profile name in oci config file>",
"useInstancePrincipal" : <true|false>,
"useDelegationToken" : <true|false>,
"useSessionToken" : <true|false>,
"useOKEWorkloadIdentity" : <true|false>
}
Paramètres du puits
Paramètres de configuration communs
-
Utiliser
"type" : "object_storage_oci" -
Utiliser
"format" : "parquet" -
Exemple :
-
ID région :
"endpoint" : "us-ashburn-1" -
Format d'URL :
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
-
Exemple :
"namespace" : "my-namespace" -
Exemple :
"bucket" : "my-bucket" -
Les données sources sont migrées vers les fichiers
<prefix>/Data/<chunk>.parquet, où chunk=000000.parquet, 000001.parquet, etc.Exemple :
-
"prefix" : "my_export" -
"prefix" : "my_export/2021-04-05/"
-
-
Exemple :
"chunkSize" : 40 -
Exemple :
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
-
Données d'identificationProfil
Exemple :
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Exemple :
"useInstancePrincipal" : true -
Utiliser le jeton de délégation
Exemple :
"useDelegationToken" : trueNote : L'authentification avec jeton de délégation n'est prise en charge que lorsque l'outil de migration de base de données NoSQL est exécuté à partir d'un Cloud Shell.
-
Exemple :
"useOKEWorkloadIdentity" : true -
Exemple :
"useSessionToken" : true
Paramètre de configuration unique
-
Fonction : Spécifie le type de compression à utiliser pour compresser les données Parquet. Les valeurs valides sont SNAPPY (SNAPPY), GZIP (GZIP) et NONE (Aucun).
S'il n'est pas spécifié, la valeur par défaut est SNAPPY (SNAPPY).
-
Type de données : Chaîne
-
Obligatoire (O/N) : N
-
Exemple :
"compression" : "GZIP"
-
Objet : Spécifie les options pour sélectionner les types logiques Parquet pour les colonnes NoSQL ENUM, JSON et UUID.
Si vous ne spécifiez pas ce paramètre, NoSQL Database Migrator écrit les données des colonnes ENUM, JSON et UUID sous forme de chaîne.
-
Type de données : Objet
-
Obligatoire (O/N) : N
-
Objet : Spécifie si les données de colonne JSON NoSQL doivent être écrites ou non en tant que type JSON logique Parquet. Pour plus d'informations, voir Définitions de types logiques Parquet.
S'il n'est pas spécifié ou réglé à Faux, NoSQL Database Migrator écrit les données de colonne JSON NoSQL en tant que chaîne.
-
Type de données : booléen
-
Obligatoire (O/N) : N
-
Exemple :
"useLogicalJson" : true
-
Objet : Spécifie si les données de colonne NoSQL ENUM doivent être écrites ou non en tant que type ENUM logique Parquet. Pour plus d'informations, voir Définitions de types logiques Parquet.
S'il n'est pas spécifié ou réglé à Faux, NoSQL Database Migrator écrit les données de colonne NoSQL ENUM en tant que chaîne.
-
Type de données : booléen
-
Obligatoire (O/N) : N
-
Exemple :
"useLogicalEnum" : true
-
Objet : Spécifie si les données de colonne UUID NoSQL doivent être écrites en tant que type d'UUID logique Parquet. Pour plus d'informations, voir Définitions de types logiques Parquet.
S'il n'est pas spécifié ou réglé à Faux, NoSQL Database Migrator écrit les données de colonne UUID NoSQL en tant que chaîne.
-
Type de données : booléen
-
Obligatoire (O/N) : N
-
Exemple :
"useLogicalUUID" : true
parquetOptions.truncateDoubleSpecials
-
Objet : Spécifie si les valeurs double +Infinity, -Infinity et NaN doivent être tronquées ou non.
Par défaut, elle est réglée à
false. Si le paramètre est réglé àtrue,-
Positive_Infinity est tronqué à Double.MAX_VALUE.
-
NEGATIVE_INFINITY est tronqué à -Double.MAX_VALUE.
-
NaN est tronqué à 9,9999999999999999990E307.
-
-
Type de données : booléen
-
Obligatoire (O/N) : N
-
Exemple :
"truncateDoubleSpecials" : true
Oracle NoSQL Database
Le format de fichier de configuration d'Oracle NoSQL Database en tant que récepteur de NoSQL Database Migrator est indiqué ci-dessous.
Modèle de configuration de l'évier
"sink" : {
"type": "nosqldb",
"storeName" : "<store name>",
"helperHosts" : ["hostname1:port1","hostname2:port2,..."],
"security" : "</path/to/store/credentials/file>",
"table" : "<fully qualified table name>",
"includeTTL": <true|false>,
"ttlRelativeDate": "<date-to-use in UTC>",
"schemaInfo" : {
"schemaPath" : "</path/to/a/schema/file>",
"defaultSchema" : <true|false>,
"useSourceSchema" : <true|false>,
"DDBPartitionKey" : <"name:type">,
"DDBSortKey" : "<name:type>"
},
"overwrite" : <true|false>,
"requestTimeoutMs" : <timeout in milli seconds>
}
Paramètres du puits
Paramètre de configuration commun
-
Utiliser
"type" : "nosqldb" -
Exemple :
"security" : "/home/user/client.credentials"Exemple de contenu de fichier de sécurité pour l'authentification basée sur un fichier de mots de passe :
oracle.kv.password.noPrompt=true oracle.kv.auth.username=admin oracle.kv.auth.pwdfile.file=/home/nosql/login.passwd oracle.kv.transport=ssl oracle.kv.ssl.trustStore=/home/nosql/client.trust oracle.kv.ssl.protocols=TLSv1.2 oracle.kv.ssl.hostnameVerifier=dnmatch(CN\=NoSQL)Exemple de contenu de fichier de sécurité pour l'authentification basée sur un portefeuille :
oracle.kv.password.noPrompt=true oracle.kv.auth.username=admin oracle.kv.auth.wallet.dir=/home/nosql/login.wallet oracle.kv.transport=ssl oracle.kv.ssl.trustStore=/home/nosql/client.trust oracle.kv.ssl.protocols=TLSv1.2 oracle.kv.ssl.hostnameVerifier=dnmatch(CN\=NoSQL) -
Exemple :
"requestTimeoutMs" : 5000
Paramètre de configuration unique
-
Objet : Nom du magasin Oracle NoSQL Database.
-
Type de données : Chaîne
-
Obligatoire (O/N) : Y (Oui)
-
Exemple :
"storeName" : "kvstore"
-
Objet : Liste des paires hôte-port de registre au format
hostname:port. Délimitez chaque élément de la liste à l'aide d'une virgule. Vous devez spécifier au moins un hôte d'assistance. -
Type de données : Tableau de chaînes
-
Obligatoire (O/N) : Y (Oui)
-
Exemple :
"helperHosts" : ["localhost:5000","localhost:6000"]
-
Objet : Spécifie le nom de la table pour stocker les données migrées.
Format :
[namespace_name:]<table_name>Si la table se trouve dans l'espace de noms DEFAULT, vous pouvez omettre
namespace_name. La table doit exister dans le magasin pendant la migration et son schéma doit correspondre aux données sources.Si la table n'est pas disponible dans le puits, vous pouvez utiliser le paramètre
schemaInfopour demander à NoSQL Database Migrator de créer la table dans le puits. -
Type de données : Chaîne
-
Obligatoire (O/N) : Y (Oui)
-
Exemple :
-
Avec l'espace de noms DEFAULT
"table" :"mytable" -
Avec un espace de noms non par défaut
"table" : "mynamespace:mytable" -
Pour spécifier une table enfant
"table" : "mytable.child"
Note : Vous pouvez migrer les tables enfants d'une source de données valide vers Oracle NoSQL Database. NoSQL Database Migrator ne copie qu'une seule table à chaque exécution. Assurez-vous que la table parent est migrée avant la table enfant.
-
-
Objet : Spécifie si les métadonnées de durée de vie des rangées de table fournies par la source doivent être incluses ou non lors de l'importation des tables Oracle NoSQL Database.
Si vous ne spécifiez pas ce paramètre, la valeur par défaut est
false. Dans ce cas, NoSQL Database Migrator n'inclut pas les métadonnées de durée de vie des lignes de table fournies par la source lors de l'importation des tables Oracle NoSQL Database.Si cette option est réglée à Vrai, l'outil NoSQL Database Migrator effectue les vérifications suivantes sur les métadonnées de durée de vie lors de l'importation d'une ligne de table :
-
Si vous importez une rangée qui n'a pas de définition
_metadata, l'outil NoSQL Database Migrator règle la durée de vie à 0, ce qui signifie que la rangée n'expire jamais. -
Si vous importez une rangée ayant une définition
_metadata, l'outil NoSQL Database Migrator compare la valeur de durée de vie à une heure de référence lorsqu'une rangée est importée. Si la ligne a déjà expiré par rapport à l'heure de référence, elle est ignorée. Si l'enregistrement n'a pas expiré, il est importé avec la valeur de durée de vie. Par défaut, l'heure de référence de l'opération d'importation est l'heure courante, en millisecondes, obtenue à partir de System.currentTimeMillis(), de l'ordinateur sur lequel l'outil NoSQL Database Migrator est exécuté. Mais vous pouvez également définir un temps de référence personnalisé à l'aide du paramètre de configurationttlRelativeDatesi vous souhaitez prolonger le temps d'expiration et importer des rangées qui expireraient immédiatement.La formule pour calculer le délai d'expiration d'une ligne est la suivante :
expiration = (TTL value of source row in milliseconds - Reference Time in milliseconds) if (expiration <= 0) then it indicates that row has expired.
Note : Étant donné que les limites de durée de vie d'Oracle NoSQL sont exprimées en heures et en jours, dans certains cas, la durée de vie de la rangée importée peut être ajustée à l'heure ou au jour le plus proche. Par exemple, considérez une rangée dont la valeur d'expiration est
1629709200000 (2021-08-23 09:00:00)et la valeur de temps de référence est1629707962582 (2021-08-23 08:39:22). Ici, même si la rangée n'est pas expirée par rapport à l'heure de référence lors de l'importation de ces données, la nouvelle durée de vie de la rangée est1629712800000 (2021-08-23 10:00:00). -
-
Type de données : booléen
-
Obligatoire (O/N) : N
-
Exemple :
"includeTTL" : true
-
Objet : Spécifiez une date UTC dans le format AAAA-MM-JJ hh:mm:ss utilisé pour définir l'expiration de la durée de vie des rangées de table lors de l'importation dans Oracle NoSQL Database.
Si une ligne de table dans les données que vous exportez a expiré, vous pouvez régler le paramètre ttlRelativeDate à une date antérieure à l'heure d'expiration de la ligne de table dans les données exportées.
Si vous ne spécifiez pas ce paramètre, il prend par défaut l'heure courante en millisecondes, obtenue à partir de System.currentTimeMillis(), de l'ordinateur sur lequel l'outil NoSQL Database Migrator est exécuté.
-
Type de données : date
-
Obligatoire (O/N) : N
-
Exemple :
"ttlRelativeDate" : "2021-01-03 04:31:17"Considérons un scénario dans lequel les lignes de table expirent après sept jours à partir du 1er janvier 2021. Après avoir exporté cette table, le 7 janvier 2021, vous rencontrez un problème avec votre table et décidez d'importer les données. Les rangées de la table vont expirer dans un jour (date d'expiration des données moins la valeur par défaut du paramètre de configuration
ttlRelativedate, qui est la date courante). Mais si vous voulez étendre la date d'expiration des rangées de la table à cinq jours au lieu d'un jour, utilisez le paramètrettlRelativeDateet choisissez une date antérieure. Par conséquent, dans ce scénario, si vous voulez prolonger le délai d'expiration des rangées de la table de cinq jours, réglez la valeur des paramètres de configurationttlRelativeDateà 3-Jan-2021, qui est utilisé comme heure de référence lorsque les rangées de la table sont importées.
-
Objet : Spécifie le schéma pour les données en cours de migration. Si ce n'est pas indiqué, NoSQL Database Migrator suppose que la table existe déjà dans le magasin du récepteur.
-
Type de données : Objet
-
Obligatoire (O/N) : N
-
Objet : Spécifie le chemin absolu d'un fichier contenant des énoncés LDD pour la table NoSQL.
NoSQL Database Migrator exécute les commandes LDD répertoriées dans ce fichier avant de migrer les données.
NoSQL Database Migrator ne prend pas en charge plus d'un énoncé LDD par ligne dans le fichier
schemaPath. -
Type de données : Chaîne
-
Obligatoire (O/N) : N
Note :
defaultSchemaetschemaPaths'excluent mutuellement. -
Exemple :
"schemaPath" : "/home/user/schema_file"
-
Objet : Le réglage de ce paramètre à Vrai indique à l'outil de migration de base de données NoSQL de créer une table avec le schéma par défaut. Le schéma par défaut est défini par l'outil de migration lui-même. Pour plus d'informations sur les définitions de schéma par défaut, voir Schéma par défaut dans Utilisation d'Oracle NoSQL Data Migrator.
-
Type de données : booléen
-
Obligatoire (O/N) : N
Note :
defaultSchemaetschemaPaths'excluent mutuellement.
-
Objet : Spécifie si le récepteur utilise ou non la définition de schéma de table fournie par la source lors de la migration des tables NoSQL.
-
Type de données : booléen
-
Obligatoire (O/N) : N
Note : Les paramètres defaultSchema, schemaPath et useSourceSchema s'excluent mutuellement. Indiquez un seul de ces paramètres.
-
Exemple :
-
Avec schéma par défaut :
"schemaInfo" : { "defaultSchema" : true } -
Avec un schéma prédéfini :
"schemaInfo" : { "schemaPath" : "<complete/path/to/the/schema/definition/file>" } -
Avec le schéma source :
"schemaInfo" : { "useSourceSchema" : true }
-
-
Objet : Spécifie la clé de partition DynamoDB et le type Oracle NoSQL Database correspondant à utiliser dans la table Oracle NoSQL Database du puits. Cette clé sera utilisée en tant que clé de partition horizontale de table de base de données NoSQL. Cela s'applique uniquement lorsque
defaultSchemaest réglé à Vrai et que le format source estdynamodb_json. Pour plus de détails, voir Mappage des types DynamoDB aux types Oracle NoSQL. -
Obligatoire (O/N) : Y (Oui), si
defaultSchemaest vrai et que la source estdynamodb_json. -
Exemple :
"DDBPartitionKey" : "PersonID:INTEGER"Note : Si la clé de partition contient dash(-) ou point(.), Migrator la remplacera par un trait de soulignement(_), car le nom de colonne NoSQL ne prend pas en charge les points et les tirets.
-
Objet : Spécifie la clé de tri DynamoDB et le type Oracle NoSQL Database correspondant à utiliser dans la table Oracle NoSQL Database cible. Si la table DynamoDB d'importation n'a pas de clé de tri, cet attribut ne doit pas être défini. Cette clé sera utilisée en tant que partie non partitionnée de la clé primaire dans la table NoSQL DB. Cela s'applique uniquement lorsque
defaultSchemaest réglé à Vrai et que la source estdynamodb_json. Pour plus de détails, voir Mappage des types DynamoDB aux types Oracle NoSQL. -
Obligatoire (O/N) : N
-
Exemple :
"DDBSortKey" : "Skey:STRING"Note : Si la clé de tri contient un tiret (-) ou un point (.), Migrator le remplacera par un trait de soulignement (_), car le nom de colonne NoSQL ne prend pas en charge les points et les tirets.
-
Objet : Indique le comportement de l'outil de migration de base de données NoSQL lorsque l'enregistrement en cours de migration à partir de la source est déjà présent dans le puits.
Si la valeur est réglée à Faux, lors de la migration des tables, NoSQL Database Migrator ignore les enregistrements pour lesquels la même clé primaire existe déjà dans le récepteur.
Si la valeur est réglée à Vrai, lors de la migration des tables, NoSQL Database Migrator remplace les enregistrements pour lesquels la même clé primaire existe déjà dans le dissipateur.
S'il n'est pas indiqué, la valeur par défaut est Vrai.
-
Type de données : booléen
-
Obligatoire (O/N) : N
-
Exemple :
"overwrite" : false
Service Oracle NoSQL Database Cloud
Le format de fichier de configuration pour Oracle NoSQL Database Cloud Service en tant que récepteur de NoSQL Database Migrator est indiqué ci-dessous.
Modèle de configuration de l'évier
"sink" : {
"type" : "nosqldb_cloud",
"endpoint" : "<Oracle NoSQL Cloud Service Endpoint>",
"table" : "<table name>",
"compartment" : "<OCI compartment name or id>",
"includeTTL": <true|false>,
"ttlRelativeDate" : "<date-to-use in UTC>",
"schemaInfo" : {
"schemaPath" : "</path/to/a/schema/file>",
"defaultSchema" : <true|false>,
"useSourceSchema" : <true|false>,
"DDBPartitionKey" : <"name:type">,
"DDBSortKey" : "<name:type>",
"onDemandThroughput" : <true|false>,
"readUnits" : <table read units>,
"writeUnits" : <table write units>,
"storageSize" : <storage size in GB>
},
"credentials" : "</path/to/oci/credential/file>",
"credentialsProfile" : "<profile name in oci config file>",
"useInstancePrincipal" : <true|false>,
"useDelegationToken" : <true|false>,
"useSessionToken" : <true|false>,
"useOKEWorkloadIdentity" : <true|false>,
"writeUnitsPercent" : <table writeunits percent>,
"requestTimeoutMs" : <timeout in milli seconds>,
"overwrite" : <true|false>
}
Paramètres du puits
Paramètres de configuration communs
-
Utiliser
"type" : "nosqldb_cloud" -
Exemple :
-
ID région :
"endpoint" : "us-ashburn-1" -
Format d'URL :
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
-
Exemple :
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
-
Données d'identificationProfil
Exemple :
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Exemple :
"useInstancePrincipal" : true -
Utiliser le jeton de délégation
Exemple :
"useDelegationToken" : trueNote : L'authentification avec jeton de délégation n'est prise en charge que lorsque l'outil de migration de base de données NoSQL est exécuté à partir d'un Cloud Shell.
-
Exemple :
"useOKEWorkloadIdentity" : true -
Exemple :
"useSessionToken" : true -
Exemple :
"requestTimeoutMs" : 5000
Paramètre de configuration unique
-
Objet : Spécifie le nom de la table pour stocker les données migrées.
Vous devez vous assurer que cette table existe dans votre service Oracle NoSQL Database Cloud Service. Sinon, vous devez utiliser l'objet
schemaInfodans la configuration du puits pour demander à NoSQL Database Migrator de créer la table.Le schéma de cette table doit correspondre aux données sources.
-
Type de données : Chaîne
-
Obligatoire (O/N) : Y (Oui)
-
Exemple :
-
Pour spécifier une table
"table" : "mytable" -
Pour spécifier une table enfant
"table" : "mytable.child"
Note : Vous pouvez migrer les tables enfants d'une source de données valide vers Oracle NoSQL Database Cloud Service. NoSQL Database Migrator ne copie qu'une seule table à chaque exécution. Assurez-vous que la table parent est migrée avant la table enfant.
-
-
Objet : Spécifie le nom ou l'OCID du compartiment dans lequel réside la table.
Si vous n'indiquez aucune valeur, la valeur par défaut est le compartiment racine.
Vous pouvez trouver l'OCID de votre compartiment dans la fenêtre Explorateur de compartiment sous Gouvernance dans la console OCI Cloud.
-
Type de données : Chaîne
-
Obligatoire (O/N) : Y (Oui), si la table ne se trouve pas dans le compartiment racine de la location OU lorsque le paramètre useInstancePrincipal est réglé à Vrai.
Note : Si le paramètre useInstancePrincipal est réglé à Vrai, le compartiment doit spécifier l'OCID du compartiment et non son nom.
-
Exemple :
-
Nom du compartiment
"compartment" : "mycompartment" -
Nom de compartiment qualifié avec son compartiment parent
"compartment" : "parent.childcompartment" -
Aucune valeur fournie. Par défaut, il s'agit du compartiment racine.
"compartment": "" -
OCID du compartiment.
"compartment" : "ocid1.tenancy.oc1...4ksd"
-
-
Objet : Spécifie si les métadonnées de durée de vie des rangées de table fournies par la source doivent être incluses ou non lors de l'importation des tables Oracle NoSQL Database.
Si vous ne spécifiez pas ce paramètre, la valeur par défaut est
false. Dans ce cas, NoSQL Database Migrator n'inclut pas les métadonnées de durée de vie des lignes de table fournies par la source lors de l'importation des tables Oracle NoSQL Database.Si cette option est réglée à Vrai, l'outil NoSQL Database Migrator effectue les vérifications suivantes sur les métadonnées de durée de vie lors de l'importation d'une ligne de table :
-
Si vous importez une rangée qui n'a pas de définition
_metadata, l'outil NoSQL Database Migrator règle la durée de vie à 0, ce qui signifie que la rangée n'expire jamais. -
Si vous importez une rangée ayant une définition
_metadata, l'outil NoSQL Database Migrator compare la valeur de durée de vie à une heure de référence lorsqu'une rangée est importée. Si la ligne a déjà expiré par rapport à l'heure de référence, elle est ignorée. Si l'enregistrement n'a pas expiré, il est importé avec la valeur de durée de vie. Par défaut, l'heure de référence de l'opération d'importation est l'heure courante, en millisecondes, obtenue à partir de System.currentTimeMillis(), de l'ordinateur sur lequel l'outil NoSQL Database Migrator est exécuté. Mais vous pouvez également définir un temps de référence personnalisé à l'aide du paramètre de configurationttlRelativeDatesi vous souhaitez prolonger le temps d'expiration et importer des rangées qui expireraient immédiatement.La formule pour calculer le délai d'expiration d'une ligne est la suivante :
expiration = (TTL value of source row in milliseconds - Reference Time in milliseconds) if (expiration <= 0) then it indicates that row has expired.
Note : Étant donné que les limites de durée de vie d'Oracle NoSQL sont exprimées en heures et en jours, dans certains cas, la durée de vie de la rangée importée peut être ajustée à l'heure ou au jour le plus proche. Par exemple, considérez une rangée dont la valeur d'expiration est
1629709200000 (2021-08-23 09:00:00)et la valeur de temps de référence est1629707962582 (2021-08-23 08:39:22). Ici, même si la rangée n'est pas expirée par rapport à l'heure de référence lors de l'importation de ces données, la nouvelle durée de vie de la rangée est1629712800000 (2021-08-23 10:00:00). -
-
Type de données : booléen
-
Obligatoire (O/N) : N
-
Exemple :
"includeTTL" : true
-
Objet : Spécifiez une date UTC dans le format AAAA-MM-JJ hh:mm:ss utilisé pour définir l'expiration de la durée de vie des rangées de table lors de l'importation dans Oracle NoSQL Database.
Si une rangée de table dans les données que vous exportez a expiré, vous pouvez régler le paramètre
ttlRelativeDateà une date antérieure à l'heure d'expiration de la rangée de table dans les données exportées.Si vous ne spécifiez pas ce paramètre, il prend par défaut l'heure courante en millisecondes, obtenue à partir de System.currentTimeMillis(), de l'ordinateur sur lequel l'outil NoSQL Database Migrator est exécuté.
-
Type de données : date
-
Obligatoire (O/N) : N
-
Exemple :
"ttlRelativeDate" : "2021-01-03 04:31:17"Considérons un scénario dans lequel les lignes de table expirent après sept jours à partir du 1er janvier 2021. Après avoir exporté cette table, le 7 janvier 2021, vous rencontrez un problème avec votre table et décidez d'importer les données. Les rangées de la table vont expirer dans un jour (date d'expiration des données moins la valeur par défaut du paramètre de configuration
ttlRelativedate, qui est la date courante). Mais si vous voulez étendre la date d'expiration des rangées de la table à cinq jours au lieu d'un jour, utilisez le paramètrettlRelativeDateet choisissez une date antérieure. Par conséquent, dans ce scénario, si vous voulez prolonger le délai d'expiration des rangées de la table de cinq jours, réglez la valeur des paramètres de configurationttlRelativeDateà 3-Jan-2021, qui est utilisé comme heure de référence lorsque les rangées de la table sont importées.
-
Objet : Spécifie le schéma pour les données en cours de migration.
Si vous ne spécifiez pas ce paramètre, l'outil de migration de bases de données NoSQL suppose que la table existe déjà dans Oracle NoSQL Database Cloud Service.
Si ce paramètre n'est pas spécifié et que la table n'existe pas dans le puits, la migration échoue.
-
Type de données : Objet
-
Obligatoire (O/N) : N
-
Objet : Spécifie le chemin absolu d'un fichier contenant des énoncés LDD pour la table NoSQL.
NoSQL Database Migrator exécute les commandes LDD répertoriées dans ce fichier avant de migrer les données.
NoSQL Database Migrator ne prend pas en charge plus d'un énoncé LDD par ligne dans le fichier
schemaPath. -
Type de données : Chaîne
-
Obligatoire (O/N) : N
Note : defaultSchema et schemaPath s'excluent mutuellement.
- Exemple :
"schemaPath" : "/home/user/schema_file"
-
Objet : Le réglage de ce paramètre à Oui indique à l'outil de migration de base de données NoSQL de créer une table avec le schéma par défaut. Le schéma par défaut est défini par l'outil de migration lui-même. Pour plus d'informations sur les définitions de schéma par défaut, voir Schéma par défaut dans Utilisation d'Oracle NoSQL Data Migrator.
-
Type de données : booléen
-
Obligatoire (O/N) : N
Note :
defaultSchemaetschemaPaths'excluent mutuellement.
-
Objet : Spécifie si le récepteur utilise ou non la définition de schéma de table fournie par la source lors de la migration des tables NoSQL.
-
Type de données : booléen
-
Obligatoire (O/N) : N
Note : Les paramètres defaultSchema, schemaPath et useSourceSchema s'excluent mutuellement. Indiquez un seul de ces paramètres.
-
Exemple :
-
Avec schéma par défaut :
"schemaInfo": { "defaultSchema": true, "readUnits": 100, "writeUnits": 60, "storageSize": 1 } -
Avec un schéma prédéfini :
"schemaInfo": { "schemaPath": "<complete/path/to/the/schema/definition/file>", "readUnits": 100, "writeUnits": 100, "storageSize": 1 } -
Avec le schéma source :
"schemaInfo": { "useSourceSchema": true, "readUnits": 100, "writeUnits": 60, "storageSize": 1 }
-
-
Objet : Spécifie la clé de partition DynamoDB et le type Oracle NoSQL Database correspondant à utiliser dans la table Oracle NoSQL Database du puits. Cette clé sera utilisée en tant que clé de partition horizontale de table de base de données NoSQL. Cela s'applique uniquement lorsque
defaultSchemaest réglé à Vrai et que le format source estdynamodb_json. Pour plus de détails, voir Mappage des types DynamoDB aux types Oracle NoSQL. -
Obligatoire (O/N) : Y (Oui), si
defaultSchemaest vrai et que la source estdynamodb_json. -
Exemple :
"DDBPartitionKey" : "PersonID:INTEGER"Note : Si la clé de partition contient dash(-) ou point(.), Migrator la remplacera par un trait de soulignement(_), car le nom de colonne NoSQL ne prend pas en charge les points et les tirets.
-
Objet : Spécifie la clé de tri DynamoDB et le type Oracle NoSQL Database correspondant à utiliser dans la table Oracle NoSQL Database cible. Si la table DynamoDB d'importation n'a pas de clé de tri, cet attribut ne doit pas être défini. Cette clé sera utilisée en tant que partie non partitionnée de la clé primaire dans la table NoSQL DB. Cela s'applique uniquement lorsque
defaultSchemaest réglé à Vrai et que la source estdynamodb_json. Pour plus de détails, voir Mappage des types DynamoDB aux types Oracle NoSQL. -
Obligatoire (O/N) : N
-
Exemple :
"DDBSortKey" : "Skey:STRING"Note : Si la clé de tri contient un tiret (-) ou un point (.), Migrator le remplacera par un trait de soulignement (_), car le nom de colonne NoSQL ne prend pas en charge les points et les tirets.
débit schemaInfo.onDemandThroughput
-
Objet : Spécifie de créer la table avec un débit de lecture et d'écriture sur demande. Si ce paramètre n'est pas défini, la table est créée avec la capacité provisionnée.
La valeur par défaut est
false.
Note : Ce paramètre ne s'applique pas aux tables enfants car elles partagent le débit de la table parent de niveau supérieur.
-
Type de données : Booléen
-
Obligatoire (O/N) : N
-
Exemple :
"onDemandThroughput" : "true"
-
Objet : Spécifie le débit de lecture de la nouvelle table.
div class="infoboxnote" markdown="1">
Note :
-
Ce paramètre ne s'applique pas aux tables provisionnées avec une capacité sur demande.
-
Ce paramètre ne s'applique pas aux tables enfants car elles partagent le débit de lecture de la table parent de niveau supérieur.
</div>
-
-
Type de données : Nombre entier
-
Obligatoire (O/N) : Y (Oui), si la table n'est pas une table enfant ou si le paramètre schemaInfo.onDemandThroughput est réglé à
false, sinon N (Non). -
Exemple :
"readUnits" : 100
-
Objet : Spécifie le débit d'écriture de la nouvelle table.
Note :
- Ce paramètre ne s'applique pas aux tables provisionnées avec une capacité sur demande.
- Ce paramètre ne s'applique pas aux tables enfants car elles partagent le débit d'écriture de la table parent de niveau supérieur.
-
Type de données : Nombre entier
-
Obligatoire (O/N) : Y (Oui), si la table n'est pas une table enfant ou si le paramètre schemaInfo.onDemandThroughput est réglé à
false, sinon N (Non). -
Exemple :
"writeUnits" : 100
-
Objet : Spécifie la taille de stockage de la nouvelle table en Go.
Note : Ce paramètre ne s'applique pas aux tables enfants car elles partagent la taille de stockage de la table parent de niveau supérieur.
-
Type de données : Nombre entier
-
Obligatoire (O/N) : Y (Oui), si la table n'est pas une table enfant, sinon N (Non).
-
Exemple :
-
Avec
schemaPath"schemaInfo" : { "schemaPath" : "</path/to/a/schema/file>", "readUnits" : 500, "writeUnits" : 1000, "storageSize" : 5 } -
Avec
defaultSchema"schemaInfo" : { "defaultSchema" :Yes, "readUnits" : 500, "writeUnits" : 1000, "storageSize" : 5 }
-
-
Objet : Spécifie le pourcentage d'unités d'écriture de table à utiliser lors de l'activité de migration. La durée nécessaire à la migration des données est directement proportionnelle à cet attribut.
La valeur par défaut est 90. L'intervalle valide est tout entier compris entre 1 et 100.
Pour savoir comment utiliser cet attribut pour améliorer la vitesse de migration des données, voir Dépannage de l'outil de migration d'Oracle NoSQL Database
-
Type de données : Nombre entier
-
Obligatoire (O/N) : N
-
Exemple :
"writeUnitsPercent" : 90
-
Objet : Indique le comportement de l'outil de migration de base de données NoSQL lorsque l'enregistrement en cours de migration à partir de la source est déjà présent dans le puits.
Si la valeur est réglée à Faux, lors de la migration des tables, NoSQL Database Migrator ignore les enregistrements pour lesquels la même clé primaire existe déjà dans le récepteur.
Si la valeur est réglée à Vrai, lors de la migration des tables, NoSQL Database Migrator remplace les enregistrements pour lesquels la même clé primaire existe déjà dans le dissipateur.
S'il n'est pas indiqué, la valeur par défaut est Vrai.
-
Type de données : booléen
-
Obligatoire (O/N) : N
-
Exemple :
"overwrite" : false
Modèles de configuration de transformation
Cette rubrique décrit les paramètres de configuration des différentes transformations prises en charge par Oracle NoSQL Database Migrator. Pour obtenir le modèle de fichier de configuration complet, voir Fichier de configuration dans Terminologie utilisée avec NoSQL Data Migrator.
Oracle NoSQL Database Migrator vous permet de modifier les données, c'est-à-dire d'ajouter des transformations de données dans le cadre de l'activité de migration. Vous pouvez définir plusieurs transformations en une seule migration. Dans un tel cas, l'ordre des transformations est vital car les données sources subissent chaque transformation dans l'ordre donné. La sortie d'une transformation devient l'entrée de la suivante dans le pipeline de migration.
Les différentes transformations prises en charge par NoSQL Data Migrator sont les suivantes :
Table - Transformations
| Attribut de configuration de transformation | Vous pouvez utiliser cette transformation pour... |
|---|---|
ignoreFields |
Ignorez les colonnes identifiées de la ligne source avant d'écrire dans le puits. |
includeFields |
Incluez les colonnes identifiées de la rangée source avant d'écrire dans le puits. |
renameFields |
Renommez les colonnes identifiées à partir de la ligne source avant d'écrire dans le puits. |
aggregateFields |
Agréger plusieurs colonnes de la source en une seule colonne dans le puits. Dans le cadre de cette transformation, vous pouvez également identifier les colonnes à exclure dans l'agrégation. Ces champs seront ignorés de la colonne agrégée. |
Vous trouverez ci-dessous le modèle de configuration pour chaque transformation prise en charge.
ignoreFields
Le format du fichier de configuration pour la transformation ignoreFields est indiqué ci-dessous.
Modèle de configuration de transformation
"transforms" : {
"ignoreFields" : ["<field1>","<field2>",...]
}
Paramètre de transformation
ignoreFields
-
Objet : Tableau des noms de colonne à ignorer des enregistrements sources.
Note : Vous ne pouvez fournir que des champs de niveau supérieur. Les transformations ne peuvent pas être appliquées aux données des champs imbriqués.
-
Type de données : Tableau de chaînes
-
Obligatoire (O/N) : Y (Oui)
-
Exemple : Pour ignorer les colonnes nommées "name" et "address" de l'enregistrement source :
"ignoreFields" : ["name","address"]
Inclure les champs
Le format du fichier de configuration pour la transformation includeFields est indiqué ci-dessous.
Modèle de configuration de transformation
"transforms" : {
"includeFields" : ["<field1>","<field2>",...]
}
Paramètre de transformation
Inclure les champs
-
Objet : Tableau des noms de colonne à inclure dans les enregistrements sources. Il seulement inclut les champs spécifiés dans le tableau, les autres champs sont ignorés.
Note : L'outil NoSQL Database Migrator génère une erreur si vous spécifiez un tableau vide. De plus, vous ne pouvez spécifier que les champs de niveau supérieur. L'outil NoSQL Database Migrator n'applique pas de transformation aux données des champs imbriqués.
-
Type de données : Tableau de chaînes
-
Obligatoire (O/N) : Y (Oui)
-
Exemple : Pour inclure les colonnes nommées "âge" et "genre" dans l'enregistrement source :
"includeFields" : ["age","gender"]
renameFields
Le format du fichier de configuration pour la transformation renameFields est indiqué ci-dessous.
Modèle de configuration de transformation
"transforms" : {
"renameFields" : {
"<old_name>" : "<new_name>",
"<old_name>" : "<new_name>,"
.....
}
}
Paramètre de transformation
renameFields
-
Objet : Paires clé-valeur des anciens et nouveaux noms des colonnes à renommer.
Note : Vous ne pouvez fournir que des champs de niveau supérieur. Les transformations ne peuvent pas être appliquées aux données des champs imbriqués.
-
Type de données : Objet JSON
-
Obligatoire (O/N) : Y (Oui)
-
Exemple : Pour renommer la colonne nommée "residence" en "address" et la colonne nommée "_id" en "id" :
"renameFields" : { "residence" : "address", "_id" : "id" }
champs d'agrégation
Le format du fichier de configuration pour la transformation aggregateFields est indiqué ci-dessous.
Modèle de configuration de transformation
"transforms" : {
"aggregateFields" : {
"fieldName" : "name of the new aggregate field",
"skipFields" : ["<field1>","<field2">,...]
}
}
Paramètre de transformation
champs d'agrégation
-
Objet : Nom du champ agrégé dans le puits.
-
Type de données : Chaîne
-
Obligatoire (O/N) : Y (Oui)
-
Exemple : Si l'enregistrement indiqué est :
{ "id" : 100, "name" : "john", "address" : "USA", "age" : 20 }Si la transformation agrégée est :
"aggregateFields" : { "fieldName" : "document", "skipFields" : ["id"] }La colonne agrégée dans le puits se présente comme suit :
{ "id": 100, "document": { "name": "john", "address": "USA", "age": 20 } }
Mappage de types DynamoDB à des types NoSQL Oracle
Le tableau ci-dessous présente le mappage des types DynamoDB aux types NoSQL Oracle.
Tableau - Mappage du type DynamoDB au type NoSQL Oracle
| # | Type DynamoDB | Type JSON pour colonne NoSQL JSON | Type Oracle NoSQL |
|---|---|---|---|
| 1 | Chaîne (S) | Chaîne JSON | STRING |
| 2 | Type de nombre (N) | Numéro JSON | ENTIER/LONGUE/PLATEAU/DOUBLE/NOMBRE |
| 3 | Booléen (BOOL) | Booléen JSON | BOOLEAN |
| 4 | Type binaire (B) - Tampon octet | Chaîne JSON encodée en BASE-64 | BINARY |
| 5 | NULL | JSON nul | NULL |
| 6 | Jeu de chaînes (SS) | Tableau JSON de chaînes | TABLEAU (CHAÎNE) |
| 7 | Jeu de numéros (NS) | Tableau de nombres JSON | TABLEAU (ENTIER/LONG/FLOT/DOUBLE/NOMBRE) |
| 8 | Jeu binaire (BS) | Tableau JSON de chaînes encodées en base-64 | TABLEAU (BINAIRE) |
| 9 | LISTE (L) | Tableau de JSON | TABLEAU (JSON) |
| 10 | CARTE (M) | Objet JSON | JSON |
| 11 | CLÉ DE PARTITIONNEMENT | S.O. | CLÉ PRIMAIRE ET CLÉ FIXE |
| 12 | CLÉ DE TRI | S.O. | CLÉ PRIMAIRE |
| 13 | Noms d'attribut avec tiret et point | Noms de champ JSON avec trait de soulignement | Noms de colonne avec trait de soulignement |
Quelques points supplémentaires à prendre en compte lors du mappage des types DynamoDB aux types NoSQL Oracle :
-
DynamoDB ne prend en charge qu'un seul type de données pour Numbers et peut avoir jusqu'à 38 chiffres de précision. En revanche, Oracle NoSQL prend en charge de nombreux types à choisir en fonction de l'intervalle et de la précision des données. Vous pouvez sélectionner le type de nombre approprié qui correspond à l'intervalle de vos données d'entrée. Si vous n'êtes pas sûr de la nature des données, le type NoSQL NUMBER peut être utilisé.
-
DynamoDB ne prend en charge qu'un seul type de données pour Numbers et peut avoir jusqu'à 38 chiffres de précision. En revanche, Oracle NoSQL prend en charge de nombreux types à choisir en fonction de l'intervalle et de la précision des données. Vous pouvez sélectionner le type de nombre approprié qui correspond à l'intervalle de vos données d'entrée. Si vous n'êtes pas sûr de la nature des données, le type NoSQL NUMBER peut être utilisé.
-
La clé de partition dans DynamoDB a une limite de 2048 octets, mais Oracle NoSQL Cloud Service a une limite de 64 octets pour la clé primaire/clé de partition.
-
La clé de tri dans DynamoDB a une limite de 1024 octets, mais Oracle NoSQL Cloud Service a une limite de 64 octets pour la clé primaire.
-
Les noms d'attribut dans DynamoDB peuvent comporter 64 Ko, mais les noms de colonne du service Oracle NoSQL Cloud ont une limite de 64 caractères.
Mappage des types de données Oracle NoSQL et Parquet
Décrit le mappage des types de données NoSQL Oracle aux types de données Parquet.
| Type NoSQL | Type de parquet |
|---|---|
| BOOLEAN | BOOLEAN |
| INTEGER | INT32 |
| LONG | INT64 |
| FLOAT | DOUBLE |
| DOUBLE | DOUBLE |
| BINARY | BINARY |
| FIX_BINAIRE | BINARY |
| STRING | BINAIRE (CHAÎNE) |
| ENUM | BINAIRE (CHAÎNE) ou BINARY(ENUM), si ENUM logique est configuré |
| UUID | BINAIRE (CHAÎNE) ou FIXED_BINARY(16), si l'UUID logique est configuré |
| TIMESTAMP(p) | INT64(TIMESTAMP(p)) |
| NUMBER | DOUBLE |
| field_name ARRAY(T) | |
| field_name MAP(T) | |
| field_name RECORD(K1 T1 N1, Kٖ2 T2 N2, ....) Où : K = nom de clé T = Type N = Pouvant être nul ou non |
|
| JSON | BINAIRE (CHAÎNE) ou BINARY(JSON), si JSON logique est configuré |
Note : Lorsque le type Numéro NoSQL est converti en type Parquet double, il peut y avoir une certaine perte de précision au cas où la valeur ne peut pas être représentée en type Double. Si le nombre est trop grand pour représenter Double, il est converti en Double.NEGATIVE_INFINITY ou Double.POSITIVE_INFINITY.
Mappage d'une table DynamoDB à une table Oracle NoSQL
Dans DynamoDB, une table est une collection d'éléments, et chaque élément est une collection d'attributs. Chaque élément de la table a un identificateur unique ou une clé primaire. En dehors de la clé primaire, la table est sans schéma. Chaque élément peut avoir ses propres attributs distincts.
DynamoDB prend en charge deux types de clés primaires différents :
-
Clé de partition : Clé primaire simple, composée d'un attribut appelé clé de partition. DynamoDB utilise la valeur de la clé de partition comme entrée d'une fonction de hachage interne. La sortie de la fonction de hachage détermine la partition dans laquelle l'élément sera stocké.
-
Clé de partition et clé de tri : En tant que clé primaire composite, ce type de clé est composé de deux attributs. Le premier attribut est la clé de partition et le deuxième est la clé de tri. DynamoDB utilise la valeur de clé de partition comme entrée d'une fonction de hachage interne. La sortie de la fonction de hachage détermine la partition dans laquelle l'élément sera stocké. Tous les éléments ayant la même valeur de clé de partition sont stockés ensemble, triés par valeur de clé de tri.
En revanche, les tables Oracle NoSQL prennent en charge les modèles de données flexibles avec des schémas et une conception sans schéma.
Il existe deux façons différentes de modéliser une table DynamoDB :
-
Modélisation d'une table DynamoDB en tant que document JSON (recommandé) : Dans cette modélisation, vous mappez tous les attributs des tables Dynamo DB dans une colonne JSON de la table NoSQL, à l'exception de la clé de partition et de la clé de tri. Vous modéliserez la clé de partition et la clé de tri en tant que colonnes de clé primaire de la table NoSQL. Vous utiliserez la transformation
AggregateFieldspour agréger les données de clé non principale dans une colonne JSON.Note : Migrator fournit une configuration conviviale
defaultSchemapour créer automatiquement une table LDD sans schéma qui agrège également les attributs dans une colonne JSON. -
Modélisation d'une table DynamoDB en tant que colonnes fixes dans une table NoSQL : Dans cette modélisation, pour chaque attribut de la table DynamoDB, vous allez créer une colonne dans la table NoSQL comme spécifié dans Mappage des types DynamoDB aux types NoSQL Oracle. Vous modéliserez la clé de partition et trierez les attributs de clé en tant que clé(s) principale(s). Cette option ne doit être utilisée que lorsque vous êtes certain que l'importation du schéma de table DynamoDB est fixe et que chaque élément a des valeurs pour la plupart des attributs. Si les éléments DynamoDB n'ont pas d'attributs communs, cela peut entraîner un lot de colonnes NoSQL avec des valeurs vides.
Note : Nous vous recommandons fortement d'utiliser des tables sans schéma lors de la migration des données de DynamoDB vers Oracle NoSQL Database en raison de la nature des tables DynamoDB sans schéma. Cela est particulièrement vrai pour les tables volumineuses où le contenu de chaque enregistrement peut ne pas être uniforme sur l'ensemble de la table.
Dépannage d'Oracle NoSQL Database Migrator
Découvrez les défis généraux auxquels vous pouvez faire face lors de l'utilisation du , et comment les résoudre.
La migration a échoué. Comment résoudre ce problème?
Une défaillance de la migration des données peut être due à plusieurs raisons sous-jacentes. Les causes importantes sont énumérées ci-dessous :
Table - Causes d'échec de migration
| Message d'erreur | Signification | Résolution |
|---|---|---|
Failed to connect to Oracle NoSQL Database |
L'outil de migration n'a pas pu établir de connexion à la base de données NoSQL. |
|
Failed to connect to Oracle NoSQL Database Cloud Service |
L'outil de migration n'a pas pu établir de connexion avec Oracle NoSQL Database Cloud Service. |
|
Table not found |
La table identifiée pour la migration n'a pas pu être localisée par NoSQL Database Migrator. | Pour la source :
Pour l'évier :
|
DDL Execution failed |
Les commandes LDD fournies dans le fichier de définition de schéma d'entrée ne sont pas valides. |
|
failed to write record to the sink table with java.lang.IllegalArgumentException |
L'enregistrement d'entrée ne correspond pas au schéma de table du puits. |
|
Request timeout |
L'opération de la source ou de l'évier ne s'est pas terminée dans le délai prévu. |
|
Que dois-je considérer avant de redémarrer une migration en échec?
Lorsqu'une tâche de migration de données échoue, le puits est à un état intermédiaire contenant les données importées jusqu'au point d'échec. Vous pouvez identifier les détails de l'erreur et de l'échec à partir des journaux et redémarrer la migration après avoir diagnostiqué et corrigé l'erreur. Une migration redémarrée redémarre et traite toutes les données depuis le début. Il n'y a aucun moyen de vérifier et de redémarrer la migration à partir du point d'échec. Par conséquent, NoSQL Database Migrator remplace tout enregistrement qui a déjà été migré vers le puits.
Le temps nécessaire à la migration des données dépend de plusieurs facteurs tels que le volume des données migrées, la vitesse du réseau et la charge courante sur la base de données. Dans le cas d'un service en nuage, la vitesse de migration dépend également du débit de lecture et du débit d'écriture provisionnés. Ainsi, pour améliorer la vitesse de migration, vous pouvez :
-
Envisagez d'exécuter la migration pendant les heures creuses lorsque la charge sur la base de données est moindre.
-
Envisagez d'affecter la machine virtuelle dans laquelle l'outil de migration de base de données NoSQL sera exécuté, de définir la source de données et de définir le puits de données dans la même région OCI afin de garantir des latences réseau minimales.
-
Dans le cas du service Oracle NoSQL Database Cloud Service, vérifiez si le stockage affecté à la table est suffisant. Si NoSQL Database Migrator ne crée pas la table, vous pouvez augmenter le débit d'écriture. Si l'utilitaire de migration crée la table, envisagez de spécifier une valeur supérieure pour le paramètre
schemaInfo.writeUnitsdans la configuration de l'évier. Une fois la migration des données terminée, vous pouvez réduire cette valeur.Note : Il n'y a pas de limite au nombre de fois où vous pouvez augmenter les limites de débit ou de stockage. Vous pouvez réduire les limites de débit ou de stockage jusqu'à 4 fois au cours d'une période de 24 heures. Voir Limites en nuage et Modèles de configuration de puits.
L'utilitaire Migrator est intrinsèquement conçu pour augmenter la vitesse de migration en traitant plusieurs flux en parallèle. Les points suivants suggèrent comment tirer parti de cette capacité pour divers scénarios de migration :
-
Migration des tables Oracle NoSQL Database Cloud Service/sur place vers le système de fichiers/l'évier de stockage d'objets :
Définissez les paramètres useMultiFiles et chunkSize dans la configuration de l'outil de migration. Le paramètre
useMultiFilescrée plusieurs fichiers/objets au niveau du puits. Le paramètrechunkSizedétermine la taille de chaque fichier lors de l'exportation des données.Par exemple : Pour exporter des données de 2 Go, en réglant le paramètre
useMultiFilesà Vrai et le paramètrechunkSizeà 40 Mo, l'utilitaire Migrator écrit 50 fichiers de 40 Mo chacun.Note : L'utilitaire Migrator peut actuellement traiter 100 flux en parallèle. Par conséquent, réglez le paramètre
chunkSizeà une valeur de taille de fichier optimale de sorte que l'utilitaire Migrator crée un maximum de 100 fichiers lors de l'exportation des données. -
Migration d'un système de fichiers/d'un stockage d'objets vers le service Oracle NoSQL Database Cloud Service/l'évier sur place :
-
Si votre système de fichiers/stockage d'objets a exporté des données contenant plusieurs fichiers/objets à partir d'une migration précédente, l'utilitaire Migrator traite automatiquement les fichiers en parallèle pour augmenter la vitesse de migration lors de l'importation des données.
-
Si vous migrez des données à partir d'autres systèmes de fichiers/stockage d'objets externes, envisagez de fractionner les données en plusieurs fichiers/objets multiples au niveau de la source de données.
Note :
-
Pour le puits Oracle NoSQL Database Cloud Service, vous devez configurer un débit d'écriture et un pourcentage d'unités d'écriture de table suffisants pour traiter jusqu'à 100 flux au cours de l'opération de migration.
-
Si vous disposez de plus de 100 fichiers sources, l'utilitaire Migrator crée un maximum de 100 flux et distribue les fichiers entre eux lors de l'importation de données. Les fichiers de chaque flux seront migrés séquentiellement.
-
-
J'ai une migration de longue durée impliquant d'énormes jeux de données. Comment suivre la progression de la migration?
Vous pouvez activer la journalisation supplémentaire pour suivre la progression d'une migration de longue durée. Pour contrôler le comportement de journalisation d'Oracle NoSQL Database Migrator, vous devez définir le niveau de journalisation souhaité dans le fichier logging.properties. Ce fichier est fourni avec l'ensemble NoSQL Database Migrator et disponible dans le répertoire dans lequel Oracle NoSQL Database Migrator a été décompressé. Les différents niveaux de journalisation dans l'ordre d'augmentation de la verbosité sont OFF, SEVERE, WARNING, INFO, FINE, et ALL.
Le réglage du niveau de journal à OFF désactive toutes les informations de journalisation, tandis que le réglage du niveau de journal à ALL fournit les informations de journal complètes.
Le niveau de journal par défaut est WARNING. Toutes les sorties de journalisation sont configurées pour accéder à la console par défaut.
Vous pouvez voir des commentaires dans le fichier logging.properties pour connaître chaque niveau de journal.