Référence Oracle NoSQL Database Migrator
Découvrez les paramètres de modèle de configuration de source, de récepteur et de transformation disponibles pour Oracle NoSQL Database Migrator.
Cet article comprend les rubriques suivantes :
Paramètres
NoSQL Database Migrator requiert 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 la liste de ces paramètres communs. Pour obtenir la liste des autres paramètres propres à des sources ou des puits individuels, reportez-vous aux sections correspondantes du modèle de configuration.
Paramètres de configuration communs
Les paramètres de configuration communs sont les suivants. Consultez les sections des modèles de configuration individuels pour obtenir des exemples.
-
Objectif : indique le nom du bucket OCI Object Storage, qui contient les objets source/récepteur.
Assurez-vous que le bucket requis existe déjà dans l'instance OCI Object Storage et qu'il dispose de droits d'accès en lecture/écriture.
-
Type de données : chaîne
-
Obligatoire (O/N) : O
-
Objectif : indique la taille maximale d'un
chunkde données de table à stocker au niveau du récepteur. La valeur est en Mo. Au cours de la migration, une table est divisée en blocschunkSizeet chaque bloc est écrit dans un fichier distinct pour le récepteur. Un fichier est créé lorsque les données source en cours de migration dépassent la valeurchunkSize.Si aucune valeur n'est indiquée, la valeur par défaut est 32 Mo. La valeur valide est un entier compris entre 1 et 1024.
Pour plus d'informations sur l'amélioration de la vitesse de migration à l'aide du paramètre
chunkSize, reportez-vous à Meilleures pratiques. -
Type de données : nombre entier
-
Obligatoire (O/N) : N
-
Objectif : indique le chemin absolu d'un fichier contenant les informations d'identification OCI. NoSQL Database Migrator utilise ce fichier pour se connecter au service OCI, tel qu'Oracle NoSQL Database Cloud Service, OCI Object Storage, etc.
La valeur par défaut est
$HOME/.oci/config.Reportez-vous à Exemple de configuration ou à un exemple de fichier d'informations d'identification.
Remarque : 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
-
Objectif : indique le nom du profil de configuration à utiliser pour la connexion au service OCI, tel qu'Oracle NoSQL Database Cloud Service, OCI Object Storage, etc. Les informations d'identification de compte d'utilisateur sont appelées profil.
Si vous ne spécifiez pas cette valeur, NoSQL Database Migrator utilise le profil
DEFAULT.Remarque : ce paramètre n'est valide que si le paramètre informations d'identification est indiqué.
-
Type de données : chaîne
-
Obligatoire (O/N) : N
-
Objectif : spécifie l'un des éléments suivants :
-
URL d'adresse de service ou ID de région pour le service OCI Object Storage. Pour obtenir la liste des adresses de service OCI Object Storage, reportez-vous à Adresses Object Storage.
-
URL d'adresse de service ou ID de région pour Oracle NoSQL Database Cloud Service. Vous pouvez indiquer l'URL complète ou l'ID de région seul. Pour obtenir la liste des régions de données prises en charge pour Oracle NoSQL Database Cloud Service, reportez-vous à Régions de données et URL de service associées dans le document Oracle NoSQL Database Cloud Service.
-
-
Type de données : chaîne
-
Obligatoire (O/N) : O
-
Objectif : spécifie le format source/récepteur.
-
Type de données : chaîne
-
Obligatoire (O/N) : O
-
Objectif : indique l'espace de noms du service OCI Object Storage. Ce paramètre est facultatif. Si vous n'indiquez pas ce paramètre, l'utilitaire de migration 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 d'une location différente de la vôtre. Dans ce cas, l'espace de noms de la location de système d'exploitation OCI est différent de celui de votre location. Au cours de la migration, l'utilitaire de migration utilise par défaut l'espace de noms de votre location, sauf indication contraire. Par conséquent, pour que l'utilitaire de migration choisisse l'espace de noms de la location de système d'exploitation OCI, vous devez indiquer le nom de la location de système d'exploitation OCI dans le paramètre d'espace de noms.
-
Type de données : chaîne
-
Obligatoire (O/N) : N
-
Objectif : le préfixe agit comme un conteneur ou un répertoire logique pour le stockage des données dans le bucket OCI Object Storage.
-
Modèle de configuration source : si le paramètre
prefixest indiqué, tous les objets du répertoire nommé dans le paramètreprefixsont migrés. Sinon, tous les objets présents dans le bucket sont migrés. -
Modèle de configuration de récepteur : si le paramètre
prefixest indiqué, un répertoire avec le préfixe indiqué est créé dans le bucket et les objets sont migrés vers ce répertoire. Sinon, le nom de la table de la source est utilisé comme préfixe. Si un objet portant le même nom existe déjà dans le bucket, il est écrasé.
Pour plus d'informations sur les préfixes, reportez-vous à Dénomination d'objet à l'aide de préfixes et de hiérarchies.
-
-
Type de données : chaîne
-
Obligatoire (O/N) : N
-
Objectif : indique le temps d'attente avant la fin de chaque opération de lecture/écriture depuis/vers le magasin. Cette valeur est fournie en millisecondes. La valeur par défaut est 5 000. Il doit s'agir d'un entier positif.
-
type de données : nombre entier
-
Obligatoire (O/N) : N
-
Objectif : indique le chemin absolu du fichier de connexion de sécurité qui contient les informations d'identification de votre banque si celle-ci est une banque sécurisée. Pour plus d'informations sur le fichier de connexion de sécurité, reportez-vous à Exécution d'une installation sécurisée d'Oracle NoSQL Database.
Vous pouvez utiliser l'authentification basée sur un fichier de mots de passe ou sur un portefeuille. Toutefois, l'authentification basée sur un portefeuille 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, reportez-vous à Sécurité de source et de 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é
-
Objectif : Identifie le type de source/récepteur.
-
Type de données : chaîne
-
Obligatoire (O/N) : O
-
Objectif : indique si l'outil NoSQL Database Migrator utilise ou non une 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 de migration à 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.Tenez compte des points suivants :
-
L'authentification avec le jeton de délégation est prise en charge uniquement lorsque l'outil NoSQL Database Migrator est exécuté à partir d'un shell Cloud Shell.
-
Vous ne pouvez sélectionner qu'une seule option d'authentification. Par conséquent, spécifiez un seul de ces paramètres : credentials, 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 Dissipateur valide Oracle NoSQL Database Cloud Service ( nosqldb_cloud)Y (Oui) Y (Oui) Fichier (fichier JSON dans le répertoire de base) Y (Oui) Y (Oui) OCI Object Storage (fichier JSON) ( object_storage_oci)Y (Oui) Y (Oui) OCI Object Storage (fichier Parquet) ( object_storage_oci)N Y (Oui)
-
-
Type de données : booléen
-
Obligatoire (O/N) : N
-
Objectif : indique 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, OCI Object Storage, etc. Pour plus d'informations sur la méthode d'authentification Principal d'instance, reportez-vous à Sécurité de source et de récepteur.
La valeur par défaut est
false.Remarque :
-
L'authentification avec des ID instance est prise en charge uniquement lorsque l'outil NoSQL Database Migrator est exécuté dans une instance de calcul OCI, par exemple, l'outil NoSQL Database Migrator exécuté dans une machine virtuelle hébergée sur OCI.
-
Vous ne pouvez sélectionner qu'une seule option d'authentification. Par conséquent, spécifiez un seul de ces paramètres : credentials,
useInstancePrincipal, useDelegationToken, useSessionToken ou useOKEWorkloadIdentity dans le modèle de configuration.
-
-
Type de données : booléen
-
Obligatoire (O/N) : N
-
Objectif : indique si l'outil NoSQL Database Migrator utilise ou non l'authentification d'identité de charge globale (WIA) pour accéder à OCI Object Storage 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 obtenir un exemple de cas d'utilisation, reportez-vous à Migration d'OCI Object Storage vers Oracle NoSQL Database Cloud Service à l'aide de l'authentification OKE.
Remarque : vous ne pouvez sélectionner qu'une seule des options d'authentification. Par conséquent, spécifiez un seul de ces paramètres : credentials, useInstancePrincipal, useDelegationToken, useSessionToken ou useOKEWorkloadIdentity dans le modèle de configuration.
-
Objectif : indique si l'outil NoSQL Database Migrator utilise ou non une authentification par jeton de session pour se connecter aux services OCI tels qu'OCI Object Storage (O/S OCI) 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 de l'interface de ligne de commande OCI. Pour obtenir un exemple de cas d'utilisation, reportez-vous à Migration d'Oracle NoSQL Database vers OCI Object Storage à l'aide de l'authentification par jeton de session.
Remarque :
-
Lors de l'utilisation de l'authentification par jeton de session, vous devez indiquer le chemin du fichier de configuration OCI dans le paramètre d'informations d'identification et le profil utilisés lors de la génération du jeton de session dans le paramètre CredentialsProfile. Si vous ne définissez pas le paramètre d'informations d'identification dans le modèle de configuration, l'utilitaire de migration recherche le fichier d'informations d'identification dans le chemin
$HOME/.oci. Si vous ne définissez pas le paramètre CredentialsProfile 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 d'informations d'identification, la migration échoue avec un message d'erreur indiquant que le fichier d'informations d'identification OCI n'existe pas.
-
Vous ne pouvez sélectionner qu'une seule option d'authentification. Par conséquent, spécifiez un seul de ces paramètres : credentials, useInstancePrincipal, useDelegationToken,
useSessionTokenou useOKEWorkloadIdentity dans le modèle de configuration.
Modèles de configuration 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, reportez-vous à Fichier de configuration dans Terminologie utilisée avec NoSQL Data Migrator.
Pour plus d'informations sur les formats de récepteur valides pour chaque source, reportez-vous à la section Sink Configuration Templates.
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 donnée vers un récepteur valide.
-
Fichier ou répertoire indiqué contenant les données JSON.
-
Fichier JSON dans le bucket OCI Object Storage
Fichier JSON indiqué dans le bucket OCI Object Storage.
-
Fichier ou répertoire spécifié contenant les données JSON formatées MongoDB.
-
Fichier JSON formaté MongoDB dans le bucket OCI Object Storage
Fichier JSON exporté MongoDB indiqué stocké dans le bucket OCI Object Storage.
-
Fichier JSON formaté DynamoDB stocké dans AWS S3
Fichier JSON exporté par DynamoDB spécifié stocké dans le stockage AWS S3.
-
Le fichier JSON exporté par DynamoDB spécifié à partir d'un système de fichiers.
-
Table indiquée dans Oracle NoSQL Database.
-
Oracle NoSQL Database Cloud Service
Table indiquée dans Oracle NoSQL Database Cloud Service.
-
Fichier ou répertoire spécifié contenant les données CSV.
-
Fichier CSV dans le bucket OCI Object Storage
Fichier CSV indiqué dans le bucket OCI Object Storage.
Source de fichier JSON
Le format du fichier de configuration JSON en tant que source de NoSQL Database Migrator est indiqué ci-dessous.
Vous pouvez migrer un fichier source JSON en indiquant le chemin du 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 d'origine
Paramètres de configuration communs
Paramètres de configuration uniques
-
Objectif : indique le chemin absolu d'un fichier ou d'un répertoire contenant les données JSON à migrer.
Vous devez vous assurer que ces données correspondent au schéma de table NoSQL défini au niveau du récepteur. Si vous indiquez un répertoire, NoSQL Database Migrator identifie tous les fichiers portant 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) : O
-
Exemple :
-
Spécification d'un fichier JSON
"dataPath" : "/home/user/sample.json" -
Spécification d'un répertoire
"dataPath" : "/home/user"
-
-
Objectif : indique le schéma des données source en cours de migration. Ce schéma est transmis au récepteur NoSQL.
-
Type de données : objet
-
Obligatoire (O/N) : N
-
Objectif : indique le chemin absolu du fichier de définition de schéma contenant les instructions LDD pour la table NoSQL en cours de migration.
-
Type de données : chaîne
-
Obligatoire (O/N) : O
-
Exemple :
"schemaInfo": { "schemaPath": "<path to the schema file>" }
Fichier JSON dans le bucket OCI Object Storage
Le format du fichier de configuration pour le fichier JSON dans le bucket OCI Object Storage en tant que source de NoSQL Database Migrator est indiqué ci-dessous.
Vous pouvez migrer un fichier JSON dans le bucket OCI Object Storage en indiquant le nom du bucket dans le modèle de configuration source.
Un exemple de fichier source JSON dans le bucket OCI Object Storage 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"}}
Remarque : les types de récepteur valides pour le type de source OCI Object Storage 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 d'origine
Paramètres de configuration communs
-
Utiliser
"type" : "object_storage_oci" -
Utiliser
"format" : "json" -
Par exemple :
-
ID de 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" -
Par exemple :
-
"prefix" : "my_table/Data/000000.json"(migre uniquement000000.json) -
"prefix" : "my_table/Data"(migre tous les objets avec le préfixemy_table/Data)
-
-
Par exemple :
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
-
Informations d'identificationProfil
Par exemple :
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Exemple :
"useInstancePrincipal" : true -
Exemple :
"useDelegationToken" : trueRemarque : l'authentification avec le jeton de délégation n'est prise en charge que lorsque le migrateur de base de données NoSQL est exécuté à partir d'un shell Cloud Shell.
-
Exemple :
"useOKEWorkloadIdentity" : true -
Exemple :
"useSessionToken" : true
Paramètres de configuration uniques
-
Objectif : indique le schéma des données source en cours de migration. Ce schéma est transmis au récepteur NoSQL.
-
Type de données : objet
-
Obligatoire (O/N) : N
-
Objectif : indique le nom de l'objet dans le bucket où sont stockées les définitions de schéma de table NoSQL pour les données migrées.
-
Type de données : chaîne
-
Obligatoire (O/N) : O
-
Exemple :
"schemaInfo": { "schemaObject": "mytable/Schema/schema.ddl" },
Fichier JSON formaté MongoDB
Le format du 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 indiquant le fichier ou le répertoire dans le modèle de configuration source.
MongoDB prend en charge deux types d'extensions au format JSON des fichiers : le mode canonique et le mode détendu. Vous pouvez fournir le fichier JSON au format MongoDB qui est généré à l'aide de l'outil mongoexport en mode canonique ou détendu. Les deux modes sont pris en charge par NoSQL Database Migrator pour la migration.
Pour plus d'informations sur le fichier JSON étendu MongoDB (v2), reportez-vous à mongoexport_formats.
Pour plus d'informations sur la génération du fichier JSON au format MongoDB, reportez-vous à mongoexport pour plus d'informations.
Un exemple de fichier JSON Relaxed mode au format MongoDB est le suivant :
{"_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 d'origine
Paramètres de configuration communs
Paramètres de configuration uniques
-
Objectif : indique le chemin absolu vers un fichier ou un répertoire contenant les données JSON exportées par MongoDB pour la migration.
Vous pouvez fournir le fichier JSON au format MongoDB qui est généré à l'aide de l'outil mongoexport.
Si vous indiquez un répertoire, NoSQL Database Migrator identifie tous les fichiers portant 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) : O
-
Exemple :
-
Spécification d'un fichier JSON formaté MongoDB
"dataPath" : "/home/user/sample.json" -
Spécification d'un répertoire
"dataPath" : "/home/user"
-
-
Objectif : indique le schéma des données source en cours de migration. Ce schéma est transmis au récepteur valide.
-
Type de données : objet
-
Obligatoire (O/N) : N
-
Objectif : indique le chemin absolu du fichier de définition de schéma contenant les instructions LDD pour la table NoSQL en cours de migration.
-
Type de données : chaîne
-
Obligatoire (O/N) : O
-
Exemple :
"schemaInfo" : { "schemaPath" : "/home/user/mytable/Schema/schema.ddl" }
Fichier JSON formaté MongoDB dans le bucket OCI Object Storage
Le format de fichier de configuration pour le fichier JSON formaté MongoDB dans le bucket OCI Object Storage en tant que source de NoSQL Database Migrator est indiqué ci-dessous.
Vous pouvez migrer les données JSON exportées MongoDB dans le bucket OCI Object Storage en indiquant le nom du bucket dans le modèle de configuration source.
Extrayez les données de MongoDB à l'aide de l'utilitaire mongoexport et téléchargez-les vers le bucket OCI Object Storage. Pour plus d'informations, reportez-vous à mongoexport. MongoDB prend en charge deux types d'extensions au format JSON des fichiers : le mode canonique et le mode détendu. Les deux formats sont pris en charge dans le bucket OCI Object Storage.
Un exemple de fichier JSON au format MongoDB Relaxed mode est le suivant :
{"_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"}]}
Remarque : les types de récepteur valides pour le type de source OCI Object Storage 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 d'origine
Paramètres de configuration communs
-
Utiliser
"type" : "object_storage_oci" -
Utiliser
"format" : "mongodb_json" -
Par exemple :
-
ID de 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" -
Par exemple :
-
"prefix" : "mongo_export/Data/table.json"(migre uniquementtable.json) -
"prefix" : "mongo_export/Data"(migre tous les objets avec le préfixemongo_export/Data)
Remarque : si vous n'indiquez aucune valeur, tous les objets présents dans le bucket sont migrés.
-
-
Par exemple :
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
Informations d'identificationProfil
Par exemple :
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Exemple :
"useInstancePrincipal" : true -
Exemple :
"useDelegationToken" : trueRemarque : l'authentification avec le jeton de délégation n'est prise en charge que lorsque le migrateur de base de données NoSQL est exécuté à partir d'un shell Cloud Shell.
-
Exemple :
"useOKEWorkloadIdentity" : true -
Exemple :
"useSessionToken" : true
Paramètres de configuration uniques
-
Objectif : indique le schéma des données source en cours de migration. Ce schéma est transmis au récepteur NoSQL.
-
Type de données : objet
-
Obligatoire (O/N) : N
-
Objectif : indique le nom de l'objet dans le bucket où sont stockées les définitions de schéma de table NoSQL pour les données migrées.
-
Type de données : chaîne
-
Obligatoire (O/N) : O
-
Exemple :
"schemaInfo": { "schemaObject": "mytable/Schema/schema.ddl" }
Fichier JSON formaté DynamoDB stocké dans AWS S3
Le format du 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 indiquant 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 de récepteur valides pour le format DynamoDB JSON stocké 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 d'origine
Paramètres de configuration communs
-
Utiliser
"type" : "aws_s3" -
Utiliser
"format" : "dynamodb_json"Remarque : si la valeur du paramètre de type est
aws_s3, le format doit êtredynamodb_json.
Paramètres de configuration uniques
-
Objectif : indique 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'import.Remarque : 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) : O
-
Exemple :
https://my-bucket.s3.ap-south-1.amazonaws.com/AWSDynamoDB/01649660790057-14f642be
-
Objectif : indique le chemin absolu d'un fichier contenant les informations d'identification AWS. Si elle n'est pas spécifiée, la valeur par défaut est
$HOME/.aws/credentials. Pour plus d'informations sur le fichier d'informations d'identification, reportez-vous à Paramètres de fichier de configuration et d'informations d'identification. -
Type de données : chaîne
-
Obligatoire (O/N) : N
-
Exemple :
"credentials" : "/home/user/.aws/credentials""credentials" : "/home/user/security/credentialsRemarque : le migrateur NoSQL Database ne consigne aucune information d'identification. Vous devez protéger correctement le fichier d'informations d'identification contre tout accès non autorisé.
- Objectif : nom du profil dans le fichier d'informations d'identification AWS à utiliser pour la connexion à AWS S
- Les informations d'identification de compte d'utilisateur sont appelées profil. Si vous n'indiquez pas cette valeur, NoSQL Database Migrator utilise le profil
default. Pour plus d'informations sur le fichier d'informations d'identification, reportez-vous à Paramètres de fichier de configuration et d'informations d'identification.
- Les informations d'identification de compte d'utilisateur sont appelées profil. Si vous n'indiquez pas cette valeur, NoSQL Database Migrator utilise le profil
-
Type de données : chaîne
-
Obligatoire (O/N) : N
-
Exemple :
"credentialsProfile" : "default""credentialsProfile" : "test"
-
Objectif : indique 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 sur les données importées lors de l'import vers NoSQL Database.
Remarque : pour effectuer l'import avec les métadonnées de durée de vie, vous devez définir le paramètre de configuration includeTTL sur True dans le modèle de configuration sink (
nosqldbetnosqldb_cloud). -
Type de données : chaîne
-
Obligatoire (O/N) : N
-
Exemple :
"ttlAttributeName" : "ttl"
Fichier JSON formaté DynamoDB
Le format du 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 par DynamoDB à partir d'un système de fichiers en indiquant 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 à partir du stockage AWS S3 vers un système de fichiers monté local.
Les types de récepteur 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 d'origine
Paramètres de configuration communs
Paramètre de configuration unique
-
Objectif : indique le chemin absolu vers un fichier ou un répertoire contenant les données de la table DynamoDB exportée. Vous devez copier les données de table DynamoDB exportées à partir d'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 indiquez un répertoire, NoSQL Database Migrator identifie tous les fichiers portant l'extension
.json.gzdans ce répertoire et le sous-répertoiredata. -
Type de données : chaîne
-
Obligatoire (O/N) : O
-
Exemple :
-
spécification d'un fichier ;
"dataPath" : "/home/user/AWSDynamoDB/01639372501551-bb4dd8c3/data/zclclwucjy6v5mkefvckxzhfvq.json.gz" -
Spécification d'un répertoire
"dataPath" : "/home/user/AWSDynamoDB/01639372501551-bb4dd8c3"
-
-
Objectif : indique 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 sur les données importées lors de l'import vers NoSQL Database.
Remarque : pour effectuer l'import avec les métadonnées de durée de vie, vous devez définir le paramètre de configuration includeTTL sur True dans le modèle de configuration sink (
nosqldbetnosqldb_cloud). -
Type de données : chaîne
-
Obligatoire (O/N) : N
-
Exemple :
"ttlAttributeName" : "ttl"
Oracle NoSQL Database
Le format du fichier de configuration pour 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 indiquant le nom de la table dans le modèle de configuration source.
Voici un exemple de table 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 d'origine
Paramètre de configuration commun
-
Utiliser
"type" : "nosqldb" -
Par 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
-
Objectif : nom de la banque Oracle NoSQL Database.
-
Type de données : chaîne
-
Obligatoire (O/N) : O
-
Exemple :
"storeName" : "kvstore"
-
Objet : liste des paires de ports d'hôte et de registre au format
hostname:port. Délimitez chaque élément de la liste en utilisant une virgule. Vous devez indiquer au moins un hôte d'aide. -
Type de données : tableau de chaînes
-
Obligatoire (O/N) : O
-
Exemple :
"helperHosts" : ["localhost:5000","localhost:6000"]
-
Objectif : nom de table entièrement qualifié à partir duquel 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) : O
-
Exemple :
-
Avec l'espace de noms DEFAULT
"table" :"mytable" -
Avec un espace de noms autre que celui par défaut
"table" : "mynamespace:mytable" -
Pour indiquer une table enfant
"table" : "mytable.child"
-
-
Objectif : indique si les métadonnées de durée de vie des lignes de table doivent être incluses lors de l'export de tables Oracle NoSQL Database. Si la valeur est True, les données de durée de vie des lignes 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 ligne. Le délai d'expiration de chaque ligne est exporté en millisecondes depuis l'époque UNIX (1er janvier 1970).Si vous n'indiquez pas ce paramètre, la valeur par défaut est
false.Seules les lignes ayant une valeur d'expiration positive pour la durée de vie sont incluses dans les lignes exportées. Si une ligne n'expire pas, ce qui signifie TTL=0, ses métadonnées de durée de vie ne sont pas explicitement incluses. Par exemple, si ROW1 expire le 10-19-2021 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
-
Objectif : indique le prédicat de requête que l'utilitaire de migration utilise pour exporter uniquement les lignes qui correspondent à la condition fournie.
L'utilitaire de migration intègre ce prédicat dans la clause WHERE de la requête SQL. Cette requête est appliquée à la table source pour filtrer les données en fonction de la condition spécifiée. Pour indiquer la table source, utilisez le paramètre
tabledans votre modèle de configuration source.Par exemple, pour exporter uniquement les lignes ayant la valeur
id10, définissez le paramètrequeryFiltersur"id=10". L'utilitaire Migrator génère la requête suivante :select $row from <table> $row where id=10Dans cette interrogation, l'utilitaire de migration utilise l'alias de table
$rowpour traiter des lignes individuelles.Tenez compte des points suivants :
-
Vous ne pouvez pas utiliser
queryFilterpour sélectionner une colonne particulière. Vous pouvez indiquer des transformations pour filtrer les colonnes. -
Si vous ne fournissez pas de valeur pour le paramètre
queryFilter, l'utilitaire de migration exporte toutes les lignes de la table à l'aide de la requête suivante :select $row from $row
-
-
Type de données : chaîne JSON
-
Obligatoire (O/N) : N
-
Exemple :
"queryFilter" : "$row.address.city='Houston'"Pour plus d'exemples, reportez-vous au tableau Exemple de prédicats de requête ci-dessous.
Expressions prises en charge :
L'utilitaire Migrator prend en charge les expressions suivantes dans le prédicat de requête. Pour obtenir des exemples et une syntaxe détaillés, reportez-vous au 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 de requête valides pour différentes expressions et les données exportées résultantes.
Remarque :
-
Il est recommandé d'utiliser des guillemets simples (') plutôt que des guillemets (") tout en fournissant un littéral de type chaîne dans le prédicat d'interrogation. Si vous voulez utiliser un guillemet double ("), vous devez l'échapper.
Par exemple : utilisez le prédicat de requête
"name='John'"pour sélectionner des lignes dans la table donnée, où la valeur du champnameest la chaîne 'John'. -
Vous devez inclure l'alias de table
$rowdans les expressions lorsque :-
Utiliser des fonctions de ligne telles que
modification_time(), expiration_time(), creation_time(), etc. Pour plus d'informations, reportez-vous à Fonctions sur les lignes. -
Accès à des champs spécifiques dans une colonne JSON.
-
Table - Exemples de prédicats de requête
| Requête/Prédicat | Données exportées |
|---|---|
| "id=10" | Lignes de la table indiquée avec id=10. |
| "name='John'" | Lignes de la table proposée avec le nom "John". |
| "âge>30 ans et genre='homme" | Lignes de la table donnée avec age supérieur à 30 et gender = 'mâle'. |
| "$row.address.state = 'CA'" | Lignes 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 requise à partir d'un champ JSON. |
| "$row.expenses.keys(valeur $ > 1000) = 'nourriture'" | Lignes de la table donnée où la catégorie expenses = 'food' 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 carte/d'enregistrement. |
| "$row.expenses.keys($value > $.clothes) = 'food'" | Lignes de la table donnée où la catégorie expenses = 'food' et le montant expenses sont supérieurs à ceux dépensés pour clothes. |
| "[$row.address.phones[$element.area = 650].kind] = 'travail'" | Lignes de la table donnée où l'indicatif régional du téléphone dans le tableau = 650 et le type = 'travail'. Ici, vous utilisez l'expression d'étape de filtre de tableau car le champ address est un tableau JSON. |
| "[connections[$element > 100 et $pos < 10]] > 100" | Lignes de la table donnée avec un maximum de 10 connexions et un nombre de connexions supérieur à 100. Ici, vous utilisez une expression d'étape de filtre de tableau car le champ connections est un tableau. |
| "$row. income IS NULL" | Lignes de la table donnée qui n'ont pas de revenu connu. Pour plus d'informations, voir Opérateurs IS NULL et IS NOT NULL. |
| "a dans (1, 5, 4)" | Lignes de la table donnée, où a est égal à 1, 5 ou 4. Pour plus de détails, reportez-vous à Opérateur IN. |
| "(a, b) en (1,"a"), (5,"g"), (4,"t"))" | Lignes de la table donnée où (a est 1 et b est 'a') OR (a est 5 et b est 'g') OR (a est 4 et b est 't'). |
| "regex_like(name, 'j.*')" | Lignes de la table indiquée dont le nom commence par j. Pour plus d'informations, reportez-vous à Expressions régulières. |
| "EXISTE $row.person.address.zipcode" | Lignes de la table indiquée où la colonne json person contient zipcode dans l'adresse. Pour plus d'informations, reportez-vous à Opérateur Existe. |
| "$row.address est de type (chaîne)" | Lignes de la table donnée où la colonne address est de type chaîne. Pour plus d'informations, reportez-vous à Opérateur de type Est. |
| "lastLogin > CAST('2022-10-01' AS TIMESTAMP)" | Lignes de la table donnée avec la dernière connexion après le 1er octobre 2022. Pour plus d'informations, reportez-vous à Expressions de flux. |
| "$row.connections[ ]=any 1" | Lignes de la table indiquée dont la colonne de tableau connections comporte l'élément 1. Pour plus d'informations, voir Opérateurs de comparaison de séquences. |
| "modification_time($row) >= 2022-10-01'' | Lignes de la table donnée modifiées le 1er octobre 2022 ou après. Pour plus d'informations, reportez-vous à Fonctions sur les lignes. |
| "expiration_time_millis($row) > 0" | Lignes de la table donnée n'ayant pas expiré. Pour plus d'informations, reportez-vous à Fonctions sur les lignes. |
Oracle NoSQL Database Cloud Service
Le format du 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 indiquant le nom ou l'OCID du compartiment dans lequel la table réside dans le modèle de configuration source.
Voici un exemple de table 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 d'origine
Paramètres de configuration communs
-
Utiliser
"type" : "nosqldb_cloud" -
Par exemple :
-
ID de région :
"endpoint" : "us-ashburn-1" -
Format d'URL :
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
-
Par exemple :
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
-
Informations d'identificationProfil
Par exemple :
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Exemple :
"useInstancePrincipal" : true -
Exemple :
"useDelegationToken" : trueRemarque : l'authentification avec le jeton de délégation n'est prise en charge que lorsque le migrateur de base de données NoSQL est exécuté à partir d'un shell Cloud Shell.
-
Exemple :
"useOKEWorkloadIdentity" : true -
Exemple :
"useSessionToken" : true -
Exemple :
"requestTimeoutMs" : 5000
Paramètres de configuration uniques
-
Objectif : nom de la table à partir de laquelle migrer les données.
-
Type de données : chaîne
-
Obligatoire (O/N) : O
-
Exemple :
-
Pour indiquer une table
"table" : "myTable" -
Pour indiquer une table enfant
"table" : "mytable.child"
-
-
Objectif : indique le nom ou l'OCID du compartiment dans lequel réside la table.
Si vous n'indiquez aucune valeur, elle est définie par défaut sur le compartiment root.
Vous pouvez trouver l'OCID de votre compartiment dans la fenêtre Explorateur de compartiment sous Gouvernance dans la console cloud OCI.
-
Type de données : chaîne
-
Obligatoire (O/N) : O, si la table ne se trouve pas dans le compartiment racine de la location OU lorsque le paramètre useInstancePrincipal est défini sur True.
Remarque : si le paramètre useInstancePrincipal est défini sur True, le compartiment doit indiquer 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" -
Pas de valeur fournie. Par défaut, le compartiment racine est utilisé.
"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. La plage valide est un nombre 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, reportez-vous à Limites cloud dans le document Oracle NoSQL Database Cloud Service.
Pour savoir comment utiliser cet attribut afin d'améliorer la vitesse de migration des données, reportez-vous à Dépannage d'Oracle NoSQL Database Migrator.
-
type de données : nombre entier
-
Obligatoire (O/N) : N
-
Exemple :
"readUnitsPercent" : 90
-
Objectif : indique si les métadonnées de durée de vie des lignes de table doivent être incluses lors de l'export de tables Oracle NoSQL Database Cloud Service. Si la valeur est True, les données de durée de vie des lignes 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 ligne. Le délai d'expiration de chaque ligne est exporté en millisecondes depuis l'époque UNIX (1er janvier 1970).Si vous n'indiquez pas ce paramètre, la valeur par défaut est
false.Seules les lignes ayant une valeur d'expiration positive pour la durée de vie sont incluses dans les lignes exportées. Si une ligne n'expire pas, ce qui signifie TTL=0, ses métadonnées de durée de vie ne sont pas explicitement incluses. Par exemple, si ROW1 expire le 10-19-2021 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
-
Objectif : indique le prédicat de requête que l'utilitaire de migration utilise pour exporter uniquement les lignes qui correspondent à la condition fournie.
L'utilitaire de migration intègre ce prédicat dans la clause WHERE de la requête SQL. Cette requête est appliquée à la table source pour filtrer les données en fonction de la condition spécifiée. Pour indiquer la table source, utilisez le paramètre
tabledans votre modèle de configuration source.Par exemple, pour exporter uniquement les lignes ayant la valeur
id10, définissez le paramètrequeryFiltersur"id=10". L'utilitaire Migrator génère la requête suivante :select $row from <table> $row where id=10Dans la requête ci-dessus, l'utilitaire Migrator utilise l'alias de table
$rowpour traiter des lignes individuelles.Tenez compte des points suivants :
-
Vous ne pouvez pas utiliser
queryFilterpour sélectionner une colonne particulière. Vous pouvez indiquer des transformations pour filtrer les colonnes. -
Si vous n'indiquez pas de valeur pour le paramètre
queryFilter, l'utilitaire de migration exporte toutes les lignes de la table à l'aide de la requête suivante :select $row from $row`
-
-
Type de données : chaîne JSON
-
Obligatoire (O/N) : N
-
Exemple :
"queryFilter" : "$row.address.city='Houston'"Pour plus d'exemples, reportez-vous au tableau Exemple de prédicats de requête ci-dessous.
Expressions prises en charge :
L'utilitaire Migrator prend en charge les expressions suivantes dans le prédicat de requête. Pour obtenir des exemples et une syntaxe détaillés, reportez-vous au 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 de requête valides pour différentes expressions et les données exportées résultantes.
Remarque :
-
Il est recommandé d'utiliser des guillemets simples (') plutôt que des guillemets (") tout en fournissant un littéral de type chaîne dans le prédicat d'interrogation. Si vous voulez utiliser un guillemet double ("), vous devez l'échapper.
Par exemple : utilisez le prédicat de requête
"name='John'"pour sélectionner des lignes dans la table donnée, où la valeur du champnameest la chaîne 'John'. -
Vous devez inclure l'alias de table
$rowdans les expressions lorsque :- Utiliser des fonctions de ligne telles que
modification_time(), expiration_time(), creation_time(), etc. Pour plus d'informations, reportez-vous à Fonctions sur les lignes. - Accès à des champs spécifiques dans une colonne JSON.
- Utiliser des fonctions de ligne telles que
Table - Exemples de prédicats de requête
| Requête/Prédicat | Données exportées |
|---|---|
| "id=10" | Lignes de la table indiquée avec l'ID = 10. |
| "name='John'" | Lignes de la table proposée avec le nom "John". |
| "âge>30 ans et genre='homme" | Lignes de la table donnée avec age supérieur à 30 et gender = 'mâle'. |
| "$row.address.state = 'CA'" | Lignes 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 requise à partir d'un champ JSON. |
| "$row.expenses.keys(valeur $ > 1000) = 'nourriture'" | Lignes de la table donnée où la catégorie expenses = 'food' 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 carte/d'enregistrement. |
| "$row.expenses.keys($value > $.clothes) = 'food'" | Lignes de la table donnée où la catégorie expenses = 'food' et le montant expenses sont supérieurs à ceux dépensés pour clothes. |
| "[$row.address.phones[$element.area = 650].kind] = 'travail'" | Lignes de la table donnée où l'indicatif régional du téléphone dans le tableau = 650 et le type = 'travail'. Ici, vous utilisez l'expression d'étape de filtre de tableau car le champ address est un tableau JSON. |
| "[connections[$element > 100 et $pos < 10]] > 100" | Lignes de la table donnée avec un maximum de 10 connexions et un nombre de connexions supérieur à 100. Ici, vous utilisez une expression d'étape de filtre de tableau car le champ connections est un tableau. |
| "$row. income IS NULL" | Lignes de la table donnée qui n'ont pas de revenu connu. Pour plus d'informations, voir Opérateurs IS NULL et IS NOT NULL. |
| "a dans (1, 5, 4)" | Lignes de la table donnée, où a est égal à 1, 5 ou 4. Pour plus d'informations, reportez-vous à Opérateur IN. |
| "(a, b) en (1,"a"), (5,"g"), (4,"t"))" | Lignes de la table donnée où (a est 1 et b est 'a') OR (a est 5 et b est 'g') OR (a est 4 et b est 't'). |
| "regex_like(name, 'j.*')" | Lignes de la table indiquée dont le nom commence par j. Pour plus d'informations, reportez-vous à Expressions régulières. |
| "EXISTE $row.person.address.zipcode" | Lignes de la table indiquée où la colonne json person contient zipcode dans l'adresse. Pour plus d'informations, reportez-vous à Opérateur Exists. |
| "$row.address est de type (chaîne)" | Lignes de la table donnée où la colonne address est de type chaîne. Pour plus d'informations, reportez-vous à Opérateur de type Est. |
| "lastLogin > CAST('2022-10-01' AS TIMESTAMP)" | Lignes de la table donnée avec la dernière connexion après le 1er octobre 2022. Pour plus d'informations, reportez-vous à Expressions de flux. |
| "$row.connections[ ]=any 1" | Lignes de la table indiquée dont la colonne de tableau connections comporte l'élément 1. Pour plus d'informations, voir Opérateurs de comparaison de séquences. |
| "modification_time($row) >= 2022-10-01'' | Lignes de la table donnée modifiées le 1er octobre 2022 ou après. Pour plus d'informations, reportez-vous à Fonctions sur les lignes. |
| "expiration_time_millis($row) > 0" | Lignes de la table donnée n'ayant pas expiré. Pour plus d'informations, reportez-vous à Fonctions sur les lignes. |
Source du fichier CSV
Le format de fichier de configuration du 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 indiquant 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 d'origine
Paramètres de configuration communs
Paramètres de configuration uniques
-
Objectif : indique le chemin absolu d'un fichier ou d'un répertoire contenant les données CSV à migrer. Si vous indiquez un répertoire, NoSQL Database Migrator importe tous les fichiers portant 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 Sink. Les sous-répertoires ne sont pas pris en charge. -
Type de données : chaîne
-
Obligatoire (O/N) : O
-
Exemple :
-
Spécification d'un fichier CSV
"dataPath" : "/home/user/sample.csv" -
Spécification d'un répertoire
"dataPath" : "/home/user"
-
Remarque : les fichiers CSV ne doivent contenir que des valeurs scalaires. L'import de fichiers CSV contenant des types complexes tels que MAP, RECORD, ARRAY et JSON n'est pas pris en charge. L'outil NoSQL Database Migrator ne vérifie pas si les données du fichier CSV d'entrée sont correctes. L'outil NoSQL Database Migrator prend en charge l'import de données CSV conformes au format RFC4180. Les fichiers CSV contenant des données qui ne sont pas conformes à la norme RFC4180 peuvent ne pas être copiés correctement ou générer une erreur. Si les données d'entrée sont endommagées, l'outil NoSQL Database Migrator n'analyse pas les enregistrements CSV. Si des erreurs sont détectées lors de la migration, l'outil NoSQL Database Migrator consigne les informations relatives aux enregistrements d'entrée en échec à des fins de débogage et d'information. Pour plus d'informations, reportez-vous à Progression du migrateur de journalisation dans Utilisation d'Oracle NoSQL Data Migrator.
-
Objectif : indique si le fichier CSV comporte un en-tête. Si cette valeur est définie sur
true, la première ligne est ignorée. Si elle est définie surfalse, 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"
-
Objectif : indique la liste des noms de colonne de table NoSQL Database. L'ordre des noms de colonne indique le mappage des champs de 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 existantes ou nouvellement créées de la table NoSQL Database, vous pouvez mapper l'ordre à l'aide de ce paramètre. En outre, lors de l'import dans une table comportant une colonne d'identité, vous pouvez ignorer le nom de la colonne d'identité dans le paramètre
columns.Remarque :
-
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 NULL est insérée lors de la migration. Pour plus d'informations sur les valeurs par défaut, reportez-vous à la section Définitions de type de données du 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 définie sur la valeur par défaut des colonnes correspondantes dans la table NoSQL Database. Si aucune valeur par défaut n'est fournie, une valeur NULL 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"]
-
Objectif : indique les options de formatage d'un fichier CSV. Indiquez le format d'encodage du jeu de caractères du fichier CSV et indiquez si les espaces doivent être supprimés.
-
Type de données : objet
-
Obligatoire (O/N) : N
-
Objectif : indique 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"
-
Objectif : indique si les espaces de début et de fin d'une valeur de champ CSV doivent être tronqué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 bucket OCI Object Storage
Le format du fichier de configuration pour le fichier CSV dans le bucket OCI Object Storage 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 bucket OCI Object Storage en indiquant le nom du bucket dans le modèle de configuration source.
Un exemple de fichier CSV dans le bucket OCI Object Storage est le suivant :
1,"Computer Science","San Francisco","2500"
2,"Bio-Technology","Los Angeles","1200"
3,"Journalism","Las Vegas","1500"
4,"Telecommunication","San Francisco","2500"
Remarque : les types de récepteur valides pour le type de source OCI Object Storage 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 d'origine
Paramètres de configuration communs
-
Utiliser
"type" : "object_storage_oci" -
Utiliser
"format" : "csv" -
Exemple d'adresse :
-
ID de 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"Remarque :
-
NoSQL Database Migrator importe tous les fichiers portant l'extension .
csvou.CSVen fonction des objets et les copie dans une seule table dans le même ordre. -
Les fichiers CSV ne doivent contenir que des valeurs scalaires. L'import de fichiers CSV contenant des types complexes tels que MAP, RECORD, ARRAY et JSON n'est pas pris en charge. L'outil NoSQL Database Migrator ne vérifie pas si les données du fichier CSV d'entrée sont correctes. L'outil NoSQL Database Migrator prend en charge l'import de données CSV conformes au format
RFC4180. Les fichiers CSV contenant des données qui ne sont pas conformes à la normeRFC4180peuvent ne pas être copiés correctement ou générer une erreur. Si les données d'entrée sont endommagées, l'outil NoSQL Database Migrator n'analyse pas les enregistrements CSV. Si des erreurs sont détectées lors de la migration, l'outil NoSQL Database Migrator consigne les informations relatives aux enregistrements d'entrée en échec à des fins de débogage et d'information. Pour plus d'informations, reportez-vous à Progression du migrateur de journalisation dans Utilisation d'Oracle NoSQL Data Migrator.
-
-
Par exemple :
-
"prefix" : "my_table/Data/000000.csv"(migre uniquement000000.csv) -
"prefix" : "my_table/Data"(migre tous les objets avec le préfixemy_table/Data)
-
-
Par exemple :
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
-
Informations d'identificationProfil
Par exemple :
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Exemple :
"useInstancePrincipal" : true -
Exemple :
"useDelegationToken" : trueRemarque : l'authentification avec le jeton de délégation n'est prise en charge que lorsque le migrateur de base de données NoSQL est exécuté à partir d'un shell Cloud Shell.
-
Exemple :
"useOKEWorkloadIdentity" : true -
Exemple :
"useSessionToken" : true
Paramètres de configuration uniques
-
Objectif : indique si le fichier CSV comporte un en-tête. Si cette valeur est définie sur
true, la première ligne est ignorée. Si elle est définie surfalse, 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"
-
Objectif : indique la liste des noms de colonne de table NoSQL Database. L'ordre des noms de colonne indique le mappage des champs de 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 existantes ou nouvellement créées de la table NoSQL Database, vous pouvez mapper l'ordre à l'aide de ce paramètre. En outre, lors de l'import dans une table comportant une colonne d'identité, vous pouvez ignorer le nom de la colonne d'identité dans le paramètre
columns.Remarque :
-
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 NULL est insérée lors de la migration. Pour plus d'informations sur les valeurs par défaut, reportez-vous à la section Définitions de type de données du 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 définie sur la valeur par défaut des colonnes correspondantes dans la table NoSQL Database. Si aucune valeur par défaut n'est fournie, une valeur NULL 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"]
-
Objectif : indique les options de formatage d'un fichier CSV. Indiquez le format d'encodage du jeu de caractères du fichier CSV et indiquez si les espaces doivent être supprimés.
-
Type de données : objet
-
Obligatoire (O/N) : N
-
Objectif : indique 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"
-
Objectif : indique si les espaces de début et de fin d'une valeur de champ CSV doivent être tronqué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 du récepteur pour chaque récepteur valide et l'objectif de chaque paramètre de configuration.
Pour le modèle de fichier de configuration, reportez-vous à Fichier de configuration dans Terminologie utilisée avec NoSQL Data Migrator.
Pour plus d'informations sur les formats source valides pour chacun des puits, reportez-vous à la section Source Configuration Templates.
Rubriques
Les rubriques suivantes décrivent les modèles de configuration de récepteur référencés par Oracle NoSQL Database Migrator pour copier les données d'une source valide vers le récepteur donné.
-
Fichier JSON indiqué.
-
Fichier Parquet dans le répertoire spécifié.
-
Fichier JSON dans le bucket OCI Object Storage
Fichier JSON dans le bucket OCI Object Storage indiqué.
-
Fichier de parquet dans le bucket OCI Object Storage
Fichier de parquet dans le bucket OCI Object Storage indiqué.
-
Table indiquée dans Oracle NoSQL Database.
-
Oracle NoSQL Database Cloud Service
Table indiquée dans Oracle NoSQL Database Cloud Service.
Récepteur de fichiers JSON
Le format du fichier de configuration pour le fichier JSON en tant que récepteur de NoSQL Database Migrator est indiqué ci-dessous.
Modèle de configuration d'é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 d'évier
Paramètres de configuration communs
-
Utiliser
"type" : "file" -
Utiliser
"format" : "json" -
Exemple :
"chunkSize" : 40Remarque : ce paramètre est applicable UNIQUEMENT lorsque le paramètre useMultiFiles est défini sur True.
Paramètres de configuration uniques
-
Objectif : indique le chemin vers un répertoire dans lequel NoSQL Database Migrator copie les données source au format JSON.
NoSQL Database Migrator crée des fichiers JSON dans le répertoire indiqué. Si les fichiers existent, NoSQL Database Migrator écrase leur contenu avec les données source.
Assurez-vous que le répertoire existe déjà et qu'il dispose de droits d'accès en lecture et en écriture.
-
Type de données : chaîne
-
Obligatoire (O/N) : O
-
Exemple :
"dataPath" : "/home/user/data"Une fois la migration effectuée, le répertoire indiqué dans le paramètre dataPath inclut les fichiers exportés, comme indiqué dans l'exemple suivant :
|--<Table_name>_1_5.json |--<Table_name>_6_10.json ...
-
Objectif : indique 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 récepteur. 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 sous la forme d'une 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 écrase son contenu avec les données source. Vous devez vous assurer que le répertoire parent du 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"
-
Objectif : indique si la sortie JSON doit être embellie pour améliorer la lisibilité.
Si elle n'est pas spécifiée, la valeur par défaut est False.
-
Type de données : booléen
-
Obligatoire (O/N) : N
-
Exemple :
"pretty" : true
-
Objectif : indique si les fichiers exportés (créés sous le répertoire indiqué dans le paramètre dataPath) doivent être fractionnés en plusieurs sous-fichiers d'une taille spécifique lors de la migration des données de table NoSQL Database vers un répertoire. La valeur par défaut du paramètre useMultiFiles est True.
NoSQL Database Migrator divise les données de la table NoSQL Database en plusieurs fichiers lors de l'export des données. Si le paramètre useMultiFiles est défini sur true, chaque fichier exporté est divisé en sous-fichiers de taille spécifiée dans le paramètre chunkSize.
Exemple : une fois la migration effectuée, le répertoire indiqué dans le paramètre dataPath inclut 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 de parquet
Le format du fichier de configuration pour Parquet File en tant que récepteur de NoSQL Database Migrator est indiqué ci-dessous.
Modèle de configuration d'é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 d'évier
Paramètres de configuration communs
-
Utiliser
"type" : "file" -
Utiliser
"format" : "parquet" -
Exemple :
"chunkSize" : 40
Paramètres de configuration uniques
-
Objectif : indique le chemin d'accès à un répertoire pour le stockage des données de table NoSQL migrées. Assurez-vous que le répertoire existe déjà et qu'il dispose de droits d'accès en lecture et en écriture.
-
Type de données : chaîne
-
Obligatoire (O/N) : O
-
Exemple :
"dataPath" : "/home/user/migrator/my_table"
-
Objectif : indique le type de compression à utiliser pour compresser les données Parquet. Les valeurs valides sont SNAPPY, GZIP et NONE.
Si elle n'est pas spécifiée, la valeur par défaut est SNAPPY.
-
Type de données : chaîne
-
Obligatoire (O/N) : N
-
Exemple :
"compression" : "GZIP"
-
Objectif : indique les options permettant de sélectionner les types logiques Parquet pour les colonnes NoSQL ENUM, JSON et UUID.
Si vous n'indiquez pas ce paramètre, le migrateur de base de données NoSQL écrit les données des colonnes ENUM, JSON et UUID en tant que chaîne.
-
Type de données : objet
-
Obligatoire (O/N) : N
-
Objectif : indique si les données de colonne JSON NoSQL doivent être écrites en tant que type JSON logique Parquet. Pour plus d'informations, reportez-vous à Définitions de type logique de parquet.
S'il n'est pas indiqué ou défini sur False, 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
-
Objectif : indique si les données de colonne NoSQL ENUM doivent être écrites en tant que type logique ENUM Parquet. Pour plus d'informations, reportez-vous à Définitions de type logique de parquet.
S'il n'est pas indiqué ou défini sur False, NoSQL Database Migrator écrit les données de colonne NoSQL ENUM sous forme de chaîne.
-
Type de données : booléen
-
Obligatoire (O/N) : N
-
Exemple :
"useLogicalEnum" : true
-
Objectif : indique si les données de colonne UUID NoSQL doivent être écrites en tant que type d'UUID logique Parquet. Pour plus d'informations, reportez-vous à Définitions de type logique de parquet.
S'il n'est pas indiqué ou défini sur False, NoSQL Database Migrator écrit les données de la colonne UUID NoSQL en tant que chaîne.
-
Type de données : booléen
-
Obligatoire (O/N) : N
-
Exemple :
"useLogicalUUID" : true
parquetOptions.truncateDoubleSpecials
-
Objectif : indique si les valeurs double +Infinité, -Infinité et NaN doivent être tronquées.
Par défaut, il est défini sur
false. Si la valeur esttrue,-
Positive_Infinity est tronqué en Double.MAX_VALUE.
-
NEGATIVE_INFINITY est vidé(e) de -Double.MAX_VALUE.
-
NaN est tronqué à 9.9999999999999990E307.
-
-
Type de données : booléen
-
Obligatoire (O/N) : N
-
Exemple :
"truncateDoubleSpecials" : true
Fichier JSON dans le bucket OCI Object Storage
Le format du fichier de configuration pour le fichier JSON dans le bucket OCI Object Storage en tant que récepteur de NoSQL Database Migrator est indiqué ci-dessous.
Remarque : les types de source valides pour OCI Object Storage en tant que récepteur sont nosqldb et nosqldb_cloud.
Modèle de configuration d'é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 d'évier
Paramètres de configuration communs
-
Utiliser
"type" : "object_storage_oci" -
Utiliser
"format" : "json" -
Par exemple :
-
ID de 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 source sont migrées vers les fichiers<prefix>/Data/<chunk>.json, où chunk=000000.json, 000001.json, etc.Par exemple :
-
"prefix" : "my_export" -
"prefix" : "my_export/2021-04-05/"
-
-
Exemple :
"chunkSize" : 40 -
Par exemple :
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
- Exemple credentialsProfile :
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Exemple :
"useInstancePrincipal" : true -
Exemple :
"useDelegationToken" : trueRemarque : l'authentification avec le jeton de délégation n'est prise en charge que lorsque le migrateur de base de données NoSQL est exécuté à partir d'un shell Cloud Shell.
-
Exemple :
"useOKEWorkloadIdentity" : true -
Exemple :
"useSessionToken" : true
Paramètre de configuration unique
pretty
-
Objectif : indique si la sortie JSON doit être embellie pour améliorer la lisibilité.
Si elle n'est pas spécifiée, la valeur par défaut est False.
-
Type de données : booléen
-
Obligatoire (O/N) : N
-
Exemple :
"pretty" : true
Fichier de parquet dans le bucket OCI Object Storage
Le format du fichier de configuration pour le fichier Parquet dans le bucket OCI Object Storage en tant que récepteur de NoSQL Database Migrator est indiqué ci-dessous.
Remarque : les types de source valides pour le type de source OCI Object Storage sont nosqldb et nosqldb_cloud.
Modèle de configuration d'é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 d'évier
Paramètres de configuration communs
-
Utiliser
"type" : "object_storage_oci" -
Utiliser
"format" : "parquet" -
Par exemple :
-
ID de 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 source sont migrées vers les fichiers
<prefix>/Data/<chunk>.parquet, où chunk=000000.parquet, 000001.parquet, etc.Par exemple :
-
"prefix" : "my_export" -
"prefix" : "my_export/2021-04-05/"
-
-
Exemple :
"chunkSize" : 40 -
Par exemple :
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
-
Informations d'identificationProfil
Par exemple :
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Exemple :
"useInstancePrincipal" : true -
Exemple :
"useDelegationToken" : trueRemarque : l'authentification avec le jeton de délégation n'est prise en charge que lorsque le migrateur de base de données NoSQL est exécuté à partir d'un shell Cloud Shell.
-
Exemple :
"useOKEWorkloadIdentity" : true -
Exemple :
"useSessionToken" : true
Paramètre de configuration unique
-
Objectif : indique le type de compression à utiliser pour compresser les données Parquet. Les valeurs valides sont SNAPPY, GZIP et NONE.
Si elle n'est pas spécifiée, la valeur par défaut est SNAPPY.
-
Type de données : chaîne
-
Obligatoire (O/N) : N
-
Exemple :
"compression" : "GZIP"
-
Objectif : indique les options permettant de sélectionner les types logiques Parquet pour les colonnes NoSQL ENUM, JSON et UUID.
Si vous n'indiquez pas ce paramètre, le migrateur de base de données NoSQL écrit les données des colonnes ENUM, JSON et UUID en tant que chaîne.
-
Type de données : objet
-
Obligatoire (O/N) : N
-
Objectif : indique si les données de colonne JSON NoSQL doivent être écrites en tant que type JSON logique Parquet. Pour plus d'informations, reportez-vous à Définitions de type logique de parquet.
S'il n'est pas indiqué ou défini sur False, 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
-
Objectif : indique si les données de colonne NoSQL ENUM doivent être écrites en tant que type logique ENUM Parquet. Pour plus d'informations, reportez-vous à Définitions de type logique de parquet.
S'il n'est pas indiqué ou défini sur False, NoSQL Database Migrator écrit les données de colonne NoSQL ENUM sous forme de chaîne.
-
Type de données : booléen
-
Obligatoire (O/N) : N
-
Exemple :
"useLogicalEnum" : true
-
Objectif : indique si les données de colonne UUID NoSQL doivent être écrites en tant que type d'UUID logique Parquet. Pour plus d'informations, reportez-vous à Définitions de type logique de parquet.
S'il n'est pas indiqué ou défini sur False, NoSQL Database Migrator écrit les données de la colonne UUID NoSQL en tant que chaîne.
-
Type de données : booléen
-
Obligatoire (O/N) : N
-
Exemple :
"useLogicalUUID" : true
parquetOptions.truncateDoubleSpecials
-
Objectif : indique si les valeurs double +Infinité, -Infinité et NaN doivent être tronquées.
Par défaut, il est défini sur
false. Si la valeur esttrue,-
Positive_Infinity est tronqué en Double.MAX_VALUE.
-
NEGATIVE_INFINITY est vidé(e) de -Double.MAX_VALUE.
-
NaN est tronqué à 9.9999999999999990E307.
-
-
Type de données : booléen
-
Obligatoire (O/N) : N
-
Exemple :
"truncateDoubleSpecials" : true
Oracle NoSQL Database
Le format du fichier de configuration pour Oracle NoSQL Database en tant que récepteur de NoSQL Database Migrator est indiqué ci-dessous.
Modèle de configuration d'é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 d'évier
Paramètre de configuration commun
-
Utiliser
"type" : "nosqldb" -
Par 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
-
Objectif : nom de la banque Oracle NoSQL Database.
-
Type de données : chaîne
-
Obligatoire (O/N) : O
-
Exemple :
"storeName" : "kvstore"
-
Objet : liste des paires de ports d'hôte et de registre au format
hostname:port. Délimitez chaque élément de la liste en utilisant une virgule. Vous devez indiquer au moins un hôte d'aide. -
Type de données : tableau de chaînes
-
Obligatoire (O/N) : O
-
Exemple :
"helperHosts" : ["localhost:5000","localhost:6000"]
-
Objectif : indique le nom de la table dans laquelle 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 source.Si la table n'est pas disponible dans le récepteur, vous pouvez utiliser le paramètre
schemaInfopour demander au migrateur NoSQL Database de créer la table dans le récepteur. -
Type de données : chaîne
-
Obligatoire (O/N) : O
-
Exemple :
-
Avec l'espace de noms DEFAULT
"table" :"mytable" -
Avec un espace de noms autre que celui par défaut
"table" : "mynamespace:mytable" -
Pour indiquer une table enfant
"table" : "mytable.child"
Remarque : vous pouvez migrer les tables enfant d'une source de données valide vers Oracle NoSQL Database. NoSQL Database Migrator ne copie qu'une seule table dans chaque exécution. Assurez-vous que la table parent est migrée avant la table enfant.
-
-
Objectif : indique si les métadonnées de durée de vie des lignes de table fournies par la source doivent être incluses lors de l'import des tables Oracle NoSQL Database.
Si vous n'indiquez pas ce paramètre, la valeur par défaut est
false. Dans ce cas, NoSQL Database Migrator n'inclut pas de métadonnées de durée de vie pour les lignes de table fournies par la source lors de l'import de tables Oracle NoSQL Database.Si la valeur est True, l'outil NoSQL Database Migrator effectue les vérifications suivantes sur les métadonnées de durée de vie lors de l'import d'une ligne de table :
-
Si vous importez une ligne sans définition
_metadata, l'outil NoSQL Database Migrator définit la durée de vie sur 0, ce qui signifie que la ligne n'expire jamais. -
Si vous importez une ligne avec 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 ligne est importée. Si la ligne a déjà expiré par rapport à l'heure de référence, elle est ignorée. Si la ligne n'a pas expiré, elle est importée avec la valeur de durée de vie. Par défaut, l'heure de référence de l'opération d'import correspond à l'heure en cours, en millisecondes, obtenue à partir de System.currentTimeMillis(), de l'ordinateur sur lequel l'outil NoSQL Database Migrator est exécuté. Toutefois, vous pouvez également définir une heure de référence personnalisée à l'aide du paramètre de configurationttlRelativeDatesi vous souhaitez prolonger la durée d'expiration et importer des lignes qui, autrement, expireraient immédiatement.La formule permettant de 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.
Remarque : Etant donné que les limites de durée de vie Oracle NoSQL sont en heures et en jours, dans certains cas, la durée de vie de la ligne importée peut être ajustée à l'heure ou au jour le plus proche. Par exemple, considérons une ligne 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 ligne n'a pas expiré par rapport à l'heure de référence lors de l'import de ces données, la nouvelle durée de vie de la ligne est1629712800000 (2021-08-23 10:00:00). -
-
Type de données : booléen
-
Obligatoire (O/N) : N
-
Exemple :
"includeTTL" : true
-
Objectif : indiquez une date UTC au format AAAA-MM-JJ hh:mm:ss utilisée pour définir l'expiration de la durée de vie des lignes de table lors de l'import dans Oracle NoSQL Database.
Si une ligne de table dans les données que vous exportez a expiré, vous pouvez définir le paramètre ttlRelativeDate sur une date antérieure à l'heure d'expiration de la ligne de table dans les données exportées.
Si vous n'indiquez pas ce paramètre, la valeur par défaut est l'heure actuelle 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 au bout de 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 lignes 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 actuelle). Toutefois, si vous souhaitez prolonger la date d'expiration des lignes de 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 lignes de la table de cinq jours, définissez la valeur des paramètres de configurationttlRelativeDatesur 3 janvier 2021, qui est utilisée comme heure de référence lors de l'import des lignes de la table.
-
Objectif : indique le schéma des données en cours de migration. Si ce n'est pas le cas, NoSQL Database Migrator suppose que la table existe déjà dans l'emplacement de stockage du récepteur.
-
Type de données : objet
-
Obligatoire (O/N) : N
-
Objectif : indique le chemin absolu d'un fichier contenant des instructions 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 plusieurs instructions LDD par ligne dans le fichier
schemaPath. -
Type de données : chaîne
-
Obligatoire (O/N) : N
Remarque :
defaultSchemaetschemaPaths'excluent mutuellement. -
Exemple :
"schemaPath" : "/home/user/schema_file"
-
Objectif : si vous définissez ce paramètre sur true, NoSQL Database Migrator doit créer une table avec un schéma par défaut. Le schéma par défaut est défini par le migrateur lui-même. Pour plus d'informations sur les définitions de schéma par défaut, reportez-vous à Schéma par défaut dans Utilisation d'Oracle NoSQL Data Migrator.
-
Type de données : booléen
-
Obligatoire (O/N) : N
Remarque :
defaultSchemaetschemaPaths'excluent mutuellement.
-
Objectif : indique 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
Remarque : les paramètres defaultSchema, schemaPath et useSourceSchema s'excluent mutuellement. Définissez uniquement l'un 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 }
-
-
Objectif : indique la clé de partition DynamoDB et le type Oracle NoSQL Database correspondant à utiliser dans la table Oracle NoSQL Database du récepteur. Cette clé sera utilisée en tant que clé de shard de table de base de données NoSQL. Ceci s'applique uniquement lorsque
defaultSchemaest défini sur True et que le format source estdynamodb_json. Pour plus d'informations, reportez-vous à Mise en correspondance de types DynamoDB avec des types Oracle NoSQL. -
Obligatoire (O/N) : O, si
defaultSchemaa la valeur True et que la source estdynamodb_json. -
Exemple :
"DDBPartitionKey" : "PersonID:INTEGER"Remarque : si la clé de partitionnement contient un tiret (-) ou un point (.), le migrateur la remplacera par un trait de soulignement (_) car le nom de colonne NoSQL ne prend pas en charge les points et les tirets.
-
Objectif : indique la clé de tri DynamoDB et le type Oracle NoSQL Database correspondant à utiliser dans la table Oracle NoSQL Database cible. Si la table d'import DynamoDB 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 partagée de la clé primaire dans la table de base de données NoSQL. Ceci s'applique uniquement lorsque
defaultSchemaest défini sur True et que la source estdynamodb_json. Pour plus d'informations, reportez-vous à Mise en correspondance de types DynamoDB avec des types Oracle NoSQL. -
Obligatoire (O/N) : N
-
Exemple :
"DDBSortKey" : "Skey:STRING"Remarque : si la clé de tri contient un tiret (-) ou un point (.), le migrateur la remplacera par un trait de soulignement (_) car le nom de colonne NoSQL ne prend pas en charge les points et les tirets.
-
Objectif : indique le comportement de NoSQL Database Migrator lorsque l'enregistrement en cours de migration à partir de la source est déjà présent dans le récepteur.
Si la valeur est définie sur False, 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 définie sur True, lors de la migration des tables, NoSQL Database Migrator écrase les enregistrements pour lesquels la même clé primaire existe déjà dans le récepteur.
Si aucune valeur n'est indiquée, la valeur par défaut est True.
-
Type de données : booléen
-
Obligatoire (O/N) : N
-
Exemple :
"overwrite" : false
Oracle NoSQL Database Cloud Service
Le format du 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 d'é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 d'évier
Paramètres de configuration communs
-
Utiliser
"type" : "nosqldb_cloud" -
Par exemple :
-
ID de région :
"endpoint" : "us-ashburn-1" -
Format d'URL :
"endpoint" : "https://objectstorage.us-ashburn-1.oraclecloud.com"
-
-
Par exemple :
-
"credentials" : "/home/user/.oci/config" -
"credentials" : "/home/user/security/config"
-
-
Informations d'identificationProfil
Par exemple :
-
"credentialsProfile" : "DEFAULT" -
"credentialsProfile" : "ADMIN_USER"
-
-
Exemple :
"useInstancePrincipal" : true -
Exemple :
"useDelegationToken" : trueRemarque : l'authentification avec le jeton de délégation n'est prise en charge que lorsque le migrateur de base de données NoSQL est exécuté à partir d'un shell Cloud Shell.
-
Exemple :
"useOKEWorkloadIdentity" : true -
Exemple :
"useSessionToken" : true -
Exemple :
"requestTimeoutMs" : 5000
Paramètre de configuration unique
-
Objectif : indique le nom de la table dans laquelle stocker les données migrées.
Vous devez vous assurer que cette table existe dans Oracle NoSQL Database Cloud Service. Sinon, vous devez utiliser l'objet
schemaInfodans la configuration du récepteur pour demander au processus NoSQL Database Migrator de créer la table.Le schéma de cette table doit correspondre aux données source.
-
Type de données : chaîne
-
Obligatoire (O/N) : O
-
Exemple :
-
Pour indiquer une table
"table" : "mytable" -
Pour indiquer une table enfant
"table" : "mytable.child"
Remarque : vous pouvez migrer les tables enfant d'une source de données valide vers Oracle NoSQL Database Cloud Service. NoSQL Database Migrator ne copie qu'une seule table dans chaque exécution. Assurez-vous que la table parent est migrée avant la table enfant.
-
-
Objectif : indique le nom ou l'OCID du compartiment dans lequel réside la table.
Si vous n'indiquez aucune valeur, elle est définie par défaut sur le compartiment root.
Vous pouvez trouver l'OCID de votre compartiment dans la fenêtre Explorateur de compartiment sous Gouvernance dans la console cloud OCI.
-
Type de données : chaîne
-
Obligatoire (O/N) : O, si la table ne se trouve pas dans le compartiment racine de la location OU lorsque le paramètre useInstancePrincipal est défini sur True.
Remarque : si le paramètre useInstancePrincipal est défini sur True, le compartiment doit indiquer 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" -
Pas de valeur fournie. Par défaut, le compartiment racine est utilisé.
"compartment": "" -
OCID du compartiment.
"compartment" : "ocid1.tenancy.oc1...4ksd"
-
-
Objectif : indique si les métadonnées de durée de vie des lignes de table fournies par la source doivent être incluses lors de l'import des tables Oracle NoSQL Database.
Si vous n'indiquez pas ce paramètre, la valeur par défaut est
false. Dans ce cas, NoSQL Database Migrator n'inclut pas de métadonnées de durée de vie pour les lignes de table fournies par la source lors de l'import de tables Oracle NoSQL Database.Si la valeur est True, l'outil NoSQL Database Migrator effectue les vérifications suivantes sur les métadonnées de durée de vie lors de l'import d'une ligne de table :
-
Si vous importez une ligne sans définition
_metadata, l'outil NoSQL Database Migrator définit la durée de vie sur 0, ce qui signifie que la ligne n'expire jamais. -
Si vous importez une ligne avec 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 ligne est importée. Si la ligne a déjà expiré par rapport à l'heure de référence, elle est ignorée. Si la ligne n'a pas expiré, elle est importée avec la valeur de durée de vie. Par défaut, l'heure de référence de l'opération d'import correspond à l'heure en cours, en millisecondes, obtenue à partir de System.currentTimeMillis(), de l'ordinateur sur lequel l'outil NoSQL Database Migrator est exécuté. Toutefois, vous pouvez également définir une heure de référence personnalisée à l'aide du paramètre de configurationttlRelativeDatesi vous souhaitez prolonger la durée d'expiration et importer des lignes qui, autrement, expireraient immédiatement.La formule permettant de 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.
Remarque : Etant donné que les limites de durée de vie Oracle NoSQL sont en heures et en jours, dans certains cas, la durée de vie de la ligne importée peut être ajustée à l'heure ou au jour le plus proche. Par exemple, considérons une ligne 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 ligne n'a pas expiré par rapport à l'heure de référence lors de l'import de ces données, la nouvelle durée de vie de la ligne est1629712800000 (2021-08-23 10:00:00). -
-
Type de données : booléen
-
Obligatoire (O/N) : N
-
Exemple :
"includeTTL" : true
-
Objectif : indiquez une date UTC au format AAAA-MM-JJ hh:mm:ss utilisée pour définir l'expiration de la durée de vie des lignes de table lors de l'import dans Oracle NoSQL Database.
Si une ligne de table dans les données que vous exportez a expiré, vous pouvez définir le paramètre
ttlRelativeDatesur une date antérieure à la date d'expiration de la ligne de table dans les données exportées.Si vous n'indiquez pas ce paramètre, la valeur par défaut est l'heure actuelle 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 au bout de 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 lignes 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 actuelle). Toutefois, si vous souhaitez prolonger la date d'expiration des lignes de 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 lignes de la table de cinq jours, définissez la valeur des paramètres de configurationttlRelativeDatesur 3 janvier 2021, qui est utilisée comme heure de référence lors de l'import des lignes de la table.
-
Objectif : indique le schéma des données en cours de migration.
Si vous n'indiquez pas ce paramètre, NoSQL Database Migrator 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 récepteur, la migration échoue.
-
Type de données : objet
-
Obligatoire (O/N) : N
-
Objectif : indique le chemin absolu d'un fichier contenant des instructions 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 plusieurs instructions LDD par ligne dans le fichier
schemaPath. -
Type de données : chaîne
-
Obligatoire (O/N) : N
Remarque : defaultSchema et schemaPath s'excluent mutuellement.
- Exemple :
"schemaPath" : "/home/user/schema_file"
-
Objectif : si vous définissez ce paramètre sur Oui, le processus NoSQL Database Migrator doit créer une table avec un schéma par défaut. Le schéma par défaut est défini par le migrateur lui-même. Pour plus d'informations sur les définitions de schéma par défaut, reportez-vous à Schéma par défaut dans Utilisation d'Oracle NoSQL Data Migrator.
-
Type de données : booléen
-
Obligatoire (O/N) : N
Remarque :
defaultSchemaetschemaPaths'excluent mutuellement.
-
Objectif : indique 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
Remarque : les paramètres defaultSchema, schemaPath et useSourceSchema s'excluent mutuellement. Définissez uniquement l'un 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 }
-
-
Objectif : indique la clé de partition DynamoDB et le type Oracle NoSQL Database correspondant à utiliser dans la table Oracle NoSQL Database du récepteur. Cette clé sera utilisée en tant que clé de shard de table de base de données NoSQL. Ceci s'applique uniquement lorsque
defaultSchemaest défini sur True et que le format source estdynamodb_json. Pour plus d'informations, reportez-vous à Mise en correspondance de types DynamoDB avec des types Oracle NoSQL. -
Obligatoire (O/N) : O, si
defaultSchemaa la valeur True et que la source estdynamodb_json. -
Exemple :
"DDBPartitionKey" : "PersonID:INTEGER"Remarque : si la clé de partitionnement contient un tiret (-) ou un point (.), le migrateur la remplacera par un trait de soulignement (_) car le nom de colonne NoSQL ne prend pas en charge les points et les tirets.
-
Objectif : indique la clé de tri DynamoDB et le type Oracle NoSQL Database correspondant à utiliser dans la table Oracle NoSQL Database cible. Si la table d'import DynamoDB 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 partagée de la clé primaire dans la table de base de données NoSQL. Ceci s'applique uniquement lorsque
defaultSchemaest défini sur True et que la source estdynamodb_json. Pour plus d'informations, reportez-vous à Mise en correspondance de types DynamoDB avec des types Oracle NoSQL. -
Obligatoire (O/N) : N
-
Exemple :
"DDBSortKey" : "Skey:STRING"Remarque : si la clé de tri contient un tiret (-) ou un point (.), le migrateur la remplacera par un trait de soulignement (_) car le nom de colonne NoSQL ne prend pas en charge les points et les tirets.
-
Objectif : indique de créer la table avec un débit de lecture et d'écriture à la demande. Si ce paramètre n'est pas défini, la table est créée avec une capacité provisionnée.
La valeur par défaut est
false.
Remarque : ce paramètre n'est pas applicable aux tables enfant 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"
-
Objectif : indique le débit de lecture de la nouvelle table.
div class="infoboxnote" markdown="1">
Remarque :
-
Ce paramètre n'est pas applicable aux tables provisionnées avec une capacité à la demande.
-
Ce paramètre n'est pas applicable aux tables enfant car elles partagent le débit de lecture de la table parent de niveau supérieur.
</div>
-
-
Data Type : entier
-
Obligatoire (O/N) : O, si la table n'est pas une table enfant ou si le paramètre schemaInfo.onDemandThroughput est défini sur
false, sinon N. -
Exemple :
"readUnits" : 100
-
Objectif : indique le débit d'écriture de la nouvelle table.
Remarque :
- Ce paramètre n'est pas applicable aux tables provisionnées avec une capacité à la demande.
- Ce paramètre n'est pas applicable aux tables enfant car elles partagent le débit d'écriture de la table parent de niveau supérieur.
-
Data Type : entier
-
Obligatoire (O/N) : O, si la table n'est pas une table enfant ou si le paramètre schemaInfo.onDemandThroughput est défini sur
false, sinon N. -
Exemple :
"writeUnits" : 100
-
Objectif : indique la taille de stockage de la nouvelle table en Go.
Remarque : ce paramètre n'est pas applicable aux tables enfant car elles partagent la taille de stockage de la table parent de niveau supérieur.
-
type de données : nombre entier
-
Obligatoire (O/N) : O, si la table n'est pas une table enfant, sinon N.
-
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 }
-
-
Objectif : indique le pourcentage d'unités d'écriture de table à utiliser au cours 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. La plage valide est un nombre entier compris entre 1 et 100.
Pour savoir comment utiliser cet attribut afin d'améliorer la vitesse de migration des données, reportez-vous à Dépannage d'Oracle NoSQL Database Migrator.
-
Data Type : entier
-
Obligatoire (O/N) : N
-
Exemple :
"writeUnitsPercent" : 90
-
Objectif : indique le comportement de NoSQL Database Migrator lorsque l'enregistrement en cours de migration à partir de la source est déjà présent dans le récepteur.
Si la valeur est définie sur False, 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 définie sur True, lors de la migration des tables, NoSQL Database Migrator écrase les enregistrements pour lesquels la même clé primaire existe déjà dans le récepteur.
Si aucune valeur n'est indiquée, la valeur par défaut est True.
-
Type de données : booléen
-
Obligatoire (O/N) : N
-
Exemple :
"overwrite" : false
Modèles de configuration de transformation
Cette rubrique explique les paramètres de configuration des différentes transformations prises en charge par le processus de migration Oracle NoSQL Database. Pour obtenir le modèle de fichier de configuration complet, reportez-vous à Fichier de configuration dans Terminologie utilisée avec NoSQL Data Migrator.
Oracle NoSQL Database Migrator 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 ce cas, l'ordre des transformations est vital car les données source 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 ligne source avant d'écrire dans l'évier. |
renameFields |
Renommez les colonnes identifiées de la ligne source avant d'écrire dans le puits. |
aggregateFields |
Regroupez 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.
ignorerChamps
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
ignorerChamps
-
Objectif : tableau des noms de colonne à ignorer à partir des enregistrements source.
Remarque : 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) : O
-
Exemple : Pour ignorer les colonnes nommées "name" et "address" de l'enregistrement source, procédez comme suit :
"ignoreFields" : ["name","address"]
includeFields
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
includeFields
-
Objectif : Tableau des noms de colonne à inclure à partir des enregistrements source. Il inclut uniquement les champs spécifiés dans le tableau, les autres champs sont ignorés.
Remarque : l'outil NoSQL Database Migrator génère une erreur si vous indiquez un tableau vide. En outre, vous ne pouvez spécifier que les champs de niveau supérieur. L'outil NoSQL Database Migrator n'applique pas de transformations aux données des champs imbriqués.
-
Type de données : tableau de chaînes
-
Obligatoire (O/N) : O
-
Exemple : Pour inclure les colonnes nommées "age" et "gender" à partir de l'enregistrement source :
"includeFields" : ["age","gender"]
Renommer les champs
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
Renommer les champs
-
Objectif : paires clé-valeur des anciens et nouveaux noms des colonnes à renommer.
Remarque : 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) : O
-
Exemple : pour renommer la colonne nommée "residence" en "address" et la colonne nommée "_id" en "id" :
"renameFields" : { "residence" : "address", "_id" : "id" }
champs agrégés
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 agrégés
-
Objectif : nom du champ agrégé dans le récepteur.
-
Type de données : chaîne
-
Obligatoire (O/N) : O
-
Exemple : Si l'enregistrement donné 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 de l'évier se présente comme suit :
{ "id": 100, "document": { "name": "john", "address": "USA", "age": 20 } }
Mise en correspondance de types DynamoDB avec des types Oracle NoSQL
Le tableau ci-dessous présente la correspondance entre les types DynamoDB et les types Oracle NoSQL.
Table - Mise en correspondance du type DynamoDB avec le type Oracle NoSQL
| # | Type DynamoDB | Type JSON pour la colonne JSON NoSQL | Type Oracle NoSQL |
|---|---|---|---|
| 1 | Chaîne (S) | Chaîne JSON | STRING |
| 2 | Type de nombre (N) | Numéro JSON | NOMBRE ENTIER/LONG/FLOTTANT/DOUBLE/NOMBRE |
| 3 | Boolean (BOOL) | Booléen JSON | BOOLEAN |
| 4 | Type binaire (B) - Tampon d'octets | Chaîne JSON encodée BASE-64 | BINARY |
| 5 | NULL | JSON NULL | NULL |
| 6 | Jeu de chaînes (SS) | Tableau JSON de variables String | TABLEAU (CHAÎNE) |
| 7 | Ensemble de nombres (NS) | Tableau JSON des nombres | TABLEAU (ENTIER/LONG/FLOTTANT/DOUBLE/NOMBRE) |
| 8 | Ensemble binaire (BS) | Tableau JSON de chaînes codé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É FARD |
| 12 | TRIER LA CLÉ | S/O | PRIMARY KEY |
| 13 | Noms d'attribut avec un tiret et un point | Noms de champ JSON avec un trait de soulignement | Noms de colonne avec trait de soulignement |
Quelques points supplémentaires à prendre en compte lors de la mise en correspondance des types DynamoDB avec les types Oracle NoSQL :
-
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 parmi lesquels choisir en fonction de la plage et de la précision des données. Vous pouvez sélectionner le type de nombre approprié qui correspond à la plage de vos données d'entrée. Si vous n'êtes pas sûr de la nature des données, vous pouvez utiliser le type NoSQL NUMBER.
-
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 parmi lesquels choisir en fonction de la plage et de la précision des données. Vous pouvez sélectionner le type de nombre approprié qui correspond à la plage de vos données d'entrée. Si vous n'êtes pas sûr de la nature des données, vous pouvez utiliser le type NoSQL NUMBER.
-
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/la clé de shard.
-
La clé de tri dans DynamoDB est limitée à 1024 octets, mais Oracle NoSQL Cloud Service est limité à 64 octets pour la clé primaire.
-
Les noms d'attribut dans DynamoDB peuvent contenir 64 ko, mais les noms de colonne du service Oracle NoSQL Cloud ne peuvent pas comporter plus de 64 caractères.
Correspondance de type d'informations Oracle NoSQL vers Parquet
Décrit la correspondance entre les types de données Oracle NoSQL et Parquet.
| Type NoSQL | Type de parquet |
|---|---|
| BOOLEAN | BOOLEAN |
| INTEGER | INT32 |
| LONG | INT64 |
| FLOAT | DOUBLE |
| DOUBLE | DOUBLE |
| BINARY | BINARY |
| FIXE_BINAIRE | BINARY |
| STRING | BINAIRE (CHAÎNE) |
| ENUM | BINAIRE (CHAÎNE) ou BINARY(ENUM), si l'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 |
| nom_champ ARRAY(T) | |
| nom_champ MAP(T) | |
| nom_champ ENREGISTREMENT(K1 T1 N1, K ⁇ 2 T2 N2, ....) où : K = Nom de la clé T = Type N = Nullable ou non |
|
| JSON | BINAIRE (CHAÎNE) ou BINARY(JSON), si le JSON logique est configuré |
Remarque : lorsque le type de nombre NoSQL est converti en type Parquet double, il peut y avoir une perte de précision si la valeur ne peut pas être représentée en double. Si le nombre est trop grand pour représenter Double, il est converti en Double.NEGATIVE_INFINITY ou Double.POSITIVE_INFINITY.
Mise en correspondance de la table DynamoDB avec la table Oracle NoSQL
Dans DynamoDB, une table est un ensemble d'éléments, et chaque élément est un ensemble d'attributs. Chaque élément de la table possède un identificateur unique ou une clé primaire. Outre 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é primaire 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 dans 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 partitionnement 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 attribut est la clé de tri. DynamoDB utilise la valeur de clé de partition comme entrée pour 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 partitionnement sont stockés ensemble, triés par valeur de clé de tri.
En revanche, les tables Oracle NoSQL prennent en charge des modèles de données flexibles avec une conception sans schéma et sans schéma.
Il existe deux façons de modéliser une table DynamoDB :
-
Modélisation de la table DynamoDB en tant que document JSON (recommandé) : dans cette modélisation, vous mettez en correspondance tous les attributs des tables Dynamo DB en une colonne JSON de la table NoSQL, à l'exception de la clé de partitionnement et de la clé de tri. Vous modéliserez la clé de partitionnement et la clé de tri en tant que colonnes de clé primaire de la table NoSQL. Vous allez utiliser la transformation
AggregateFieldsafin d'agréger les données de clé secondaire en une colonne JSON.Remarque : le migrateur fournit une configuration conviviale
defaultSchemapermettant de créer automatiquement une table LDD sans schéma qui agrège également les attributs en une colonne JSON. -
Modélisation de la 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 indiqué dans la mise en correspondance des types DynamoDB avec les types Oracle NoSQL. Vous modéliserez les attributs de clé de partitionnement et de clé de tri en tant que clés primaires. Cela ne doit être utilisé que lorsque vous êtes certain que l'import 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 grand nombre de colonnes NoSQL avec des valeurs vides.
Remarque : nous vous recommandons vivement d'utiliser des tables sans schéma lors de la migration de données de DynamoDB vers Oracle NoSQL Database en raison de la nature des tables DynamoDB sans schéma. C'est particulièrement le cas 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 que vous pouvez rencontrer lors de l'utilisation de , et comment les résoudre.
Echec de la migration. Comment résoudre ce problème ?
L'échec de la migration des données peut être dû à 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 |
Le migrateur n'a pas pu établir de connexion à la base de données NoSQL. |
|
Failed to connect to Oracle NoSQL Database Cloud Service |
Le migrateur 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 du 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 récepteur. |
|
Request timeout |
L'opération de la source ou du récepteur ne s'est pas terminée dans le délai prévu. |
|
Que dois-je prendre en compte avant de redémarrer une migration qui a échoué ?
Lorsqu'une tâche de migration de données échoue, le récepteur se trouve à 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 recommence et traite toutes les données depuis le début. Il n'existe aucun moyen de point de reprise et de redémarrer la migration à partir du point d'échec. Par conséquent, NoSQL Database Migrator écrase tout enregistrement qui a déjà été migré vers le récepteur.
La durée de la migration des données dépend de plusieurs facteurs tels que le volume de données en cours de migration, la vitesse du réseau et la charge actuelle sur la base de données. Dans le cas d'un service cloud, 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'allouer la machine virtuelle où NoSQL Database Migrator s'exécutera, de définir la source de données et de définir le récepteur de données dans la même région OCI pour garantir des latences réseau minimales.
-
Dans le cas d'Oracle NoSQL Database Cloud Service, vérifiez si le stockage alloué à la table est suffisant. Si NoSQL Database Migrator ne crée pas la table, vous pouvez augmenter le débit d'écriture. Si le migrateur crée la table, envisagez de spécifier une valeur supérieure pour le paramètre
schemaInfo.writeUnitsdans la configuration du récepteur. Une fois la migration des données terminée, vous pouvez réduire cette valeur.Remarque : vous ne pouvez pas limiter le nombre de fois où vous pouvez augmenter les limites de débit ou de stockage. Vous ne pouvez réduire les limites de débit ou de stockage que jusqu'à 4 fois sur une période de 24 heures. Reportez-vous à Limites cloud et à Modèles de configuration de récepteur.
L'utilitaire Migrator est intrinsèquement conçu pour atteindre une vitesse de migration plus élevée en traitant plusieurs flux en parallèle. Les points suivants suggèrent comment exploiter cette fonctionnalité pour différents scénarios de migration :
-
Migration à partir d'Oracle NoSQL Database Cloud Service/des tables sur site vers le système de fichiers/le récepteur Object Storage :
Définissez les paramètres useMultiFiles et chunkSize dans la configuration du migrateur. Le paramètre
useMultiFilescrée plusieurs fichiers/objets au niveau du récepteur. Le paramètrechunkSizedétermine la taille de chaque fichier lors de l'export de données.Par exemple : pour exporter des données de 2 Go, définir le paramètre
useMultiFilessur True et le paramètrechunkSizesur 40 Mo entraîne l'écriture par l'utilitaire de migration de 50 fichiers de 40 Mo chacun.Remarque : l'utilitaire Migrator peut actuellement traiter 100 flux en parallèle. Par conséquent, définissez le paramètre
chunkSizesur une valeur de taille de fichier optimale de sorte que l'utilitaire Migrator crée un maximum de 100 fichiers lors de l'export de données. -
Migration à partir d'un système de fichiers/d'Object Storage vers Oracle NoSQL Database Cloud Service/un récepteur sur site :
-
Si votre système de fichiers/Object Storage a exporté des données contenant plusieurs fichiers/objets 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'import des données.
-
Si vous migrez des données à partir d'autres systèmes de fichiers/Object Storage externes, envisagez de fractionner les données en plusieurs fichiers/objets multiples au niveau de la source de données.
Remarque :
-
Dans le cas d'un récepteur 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 source, l'utilitaire Migrator crée un maximum de 100 flux et distribue les fichiers entre eux lors de l'importation des données. Les fichiers de chaque flux seront migrés de manière séquentielle.
-
-
J'ai une migration longue impliquant des ensembles de données volumineux. Comment suivre la progression de la migration ?
Vous pouvez activer la journalisation supplémentaire pour suivre la progression d'une migration longue. 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 le package NoSQL Database Migrator et disponible dans le répertoire dans lequel le package Oracle NoSQL Database Migrator a été décompressé. Les différents niveaux de journalisation dans l'ordre de niveau de détail croissant sont OFF, SEVERE, WARNING, INFO, FINE, et ALL.
La définition du niveau de journalisation sur OFF désactive toutes les informations de journalisation, tandis que la définition du niveau de journalisation sur ALL fournit les informations de journalisation complètes.
Le niveau de journalisation par défaut est WARNING. Par défaut, toutes les sorties de journalisation sont configurées pour accéder à la console.
Vous pouvez voir des commentaires dans le fichier logging.properties pour connaître chaque niveau de journalisation.