Exécution d'Oracle NoSQL Database Analytics Integrator
Création d'un fichier de configuration pour l'intégrateur
Pour pouvoir exécuter Oracle NoSQL Database Analytics Integrator, vous devez d'abord créer un fichier de configuration. Ce fichier de configuration sera utilisé lors de l'appel de l'utilitaire. Le fichier de configuration doit contenir les entrées au format JSON, comme indiqué dans les exemples ci-dessous. Vous trouverez ci-dessous deux exemples de fichiers de configuration. Tous les paramètres utilisés ci-dessous ne sont pas requis. Le tableau ci-dessous explique chaque paramètre utilisé dans l'exemple et met en évidence s'il est facultatif ou requis.
{
"nosqlstore": {
"type" : "nosqldb_cloud",
"endpoint" : "us-ashburn-1",
"useInstancePrincipal" : true,
"compartment" : <ocid.of.compartment.containing.nosql.tables>,
"table" : <tableName1,tableName2,tableName3>,
"readUnitsPercent" : "90,90,90",
"requestTimeoutMs" : "5000"
},
"objectstore" : {
"type" : "object_storage_oci",
"endpoint" : "us-ashburn-1",
"useInstancePrincipal" : true,
"compartment" : <ocid.of.compartment.containing.bucket>,
"bucket" : <bucket-name-objectstorage>,
"compression" : "snappy"
},
"database": {
"type" : "database_cloud",
"endpoint" : "us-ashburn-1",
"credentials" : "/home/opc/.oci/config",
"credentialsProfile" : <profile-for-adw-auth>,
"databaseName" : <database-name>,
"databaseUser" : "ADMIN",
"databaseWallet"” : <path-where-wallet-unzipped>
}
}
{
"nosqlstore": {
"type" : "nosqldb_cloud",
"endpoint" : "us-ashburn-1",
"credentials" : "/home/opc/.oci/config",
"credentialsProfile" : <nosqldb-user-credentials>,
"table" : <tableName1,tableName2,tableName3>,
"readUnitsPercent" : "90,90,90",
"requestTimeoutMs" : "5000"
},
"objectstore" : {
"type" : "object_storage_oci",
"endpoint" : "us-ashburn-1",
"credentials" : "/home/opc/.oci/config",
"credentialsProfile" : <objectstorage-user-credentials>,
"bucket" : <bucket-name-objectstorage>,
"compression" : "snappy"
},
"database": {
"type" : "database_cloud",
"endpoint" : "us-ashburn-1",
"credentials" : "/home/opc/.oci/config",
"credentialsProfile" : <adw-user-credentials>,
"databaseName" : <database-name>,
"databaseUser" : "ADMIN",
"databaseWallet" : <path-where-wallet-unzipped>
}
"abortOnError" : false
}
La configuration est divisée en trois sections - nosqlstore, objectstore et base de données - dont les entrées sont utilisées pour indiquer comment l'utilitaire interagit avec chaque service cloud respectif : NoSQL Cloud Service, Oracle ObjectStorage et Oracle Autonomous Data Warehouse.
Tableau - Paramètres communs pour toutes les sections
Nom du paramètre | Détails du paramètre |
---|---|
type | Actuellement, ce paramètre peut prendre l'une des trois valeurs suivantes : nosqldb_cloud (pour la section nosqlstore), object_storage_oci (pour la section objectstore) et database_cloud (pour la section de base de données).
|
endpoint | La valeur de cette entrée doit être définie sur la région dans laquelle se trouve la ressource associée. La valeur indiquée pour cette entrée peut être l'adresse d'API de la région ou l'identificateur de région de la ressource. Par exemple, si chaque ressource est située dans la région Est des Etats-Unis (Ashburn), l'entrée d'adresse de chaque section peut être indiquée à l'aide de l'identificateur de la région ("US-ashburn-1") ou de l'adresse d'API de la région pour le service souhaité. |
Table - Paramètres dans le fichier de configuration
Nom de paramètre | Section spécifiée | Détails de la section |
---|---|---|
useInstancePrincipal |
nosqlstore (facultatif) objectstore (facultatif) |
L'entrée useInstancePrincipal peut être spécifiée en tant que valeur booléenne True si les conditions suivantes sont remplies :
Si true est spécifié pour l'entrée useInstancePrincipal et que l'entrée d'informations d'identification est également spécifiée, l'entrée d'informations d'identification est prioritaire et les informations d'identification utilisateur référencées dans la valeur de cette entrée sont utilisées pour interagir avec la ressource associée.
Remarques : Les informations d'identification utilisateur doivent être indiquées dans la section de base de données car l'instance Autonomous Database hébergée dans ADW l'exige. |
compartiment |
nosqlstore (facultatif) objectstore (facultatif) |
|
credentials |
nosqlstore (facultatif) objectstore (facultatif) Base de données (obligatoire) |
L'entrée d'informations d'identification est requise dans la section Base de données en toutes circonstances. Elle est requise dans les sections nosqlstore et objectstore dans une ou plusieurs des circonstances suivantes :
La valeur spécifiée pour cette entrée doit référencer un fichier sur le système de fichiers local qui spécifie les informations d'identification utilisateur pouvant être utilisées pour interagir en toute sécurité avec la ressource associée. |
credentialsProfile |
nosqlstore (facultatif) objectstore (facultatif) base de données (facultatif) |
L'entrée credentialsProfile est facultative dans chaque section et, même si elle est spécifiée, s'applique uniquement lorsqu'une entrée d'informations d'identification correspondante est également spécifiée. |
table | nosqlstore(Obligatoire) |
L'entrée de table est obligatoire et doit être spécifiée dans la section nosqlstore. La valeur de cette entrée est une chaîne composée d'une liste de noms séparés par des virgules. Chaque nom fait référence au nom d'une table du service NoSQL Database Cloud dont le contenu doit être extrait et copié vers Autonomous Data Warehouse. |
readUnitsPercent | nosqlstore (facultatif) |
L'entrée readUnitsPercent est facultative et ne s'applique que dans la section nosqlstore. La valeur de cette entrée est une chaîne composée d'une liste d'entiers séparés par des virgules ; entre 1 et 100, représentant le pourcentage d'unités de lecture pouvant être consommées lors de l'extraction des données de la table correspondante. Cette entrée vous permet de spécifier des pourcentages d'unités de lecture différents pour chacune des tables référencées dans l'entrée de table ; où le premier pourcentage de la liste correspond à la première table de la liste de tables, le deuxième pourcentage correspond à la deuxième table, etc. Il n'est pas obligatoire que le nombre de pourcentages de cette liste soit égal au nombre de tables de la liste. Une valeur par défaut de 90 % sera affectée à toute table de la liste qui n'a pas de pourcentage correspondant dans cette liste. Par exemple, supposons que quatre noms de table soient spécifiés dans l'entrée de table, mais que l'entrée readUnitsPercent soit définie sur la valeur "50,80". Dans ce cas, les données de la première table seront extraites à l'aide de 50 % des unités de lecture disponibles, tandis que 80 % des unités de lecture seront utilisées lors de l'extraction des données de la deuxième table. Enfin, pour les deux tables restantes, 90 % des unités de lecture (valeur par défaut) seront utilisées lors de l'extraction des données de chacune de ces tables. |
requestTimeoutMs | nosqlstore (facultatif) |
L'entrée requestTimeoutMs est facultative et ne s'applique que dans la section nosqlstore. La valeur de cette entrée est une chaîne composée d'une liste d'entiers positifs séparés par des virgules, où chaque entier représente le nombre de millisecondes autorisé pour chaque demande d'extraction de données à terminer pour la table correspondante. Cette entrée vous permet de spécifier différentes valeurs de délai d'expiration pour chacune des tables référencées dans l'entrée de table. Si cette entrée n'est pas spécifiée ou si elle spécifie un délai d'expiration pour un seul sous-ensemble des tables, la valeur par défaut 5000 sera affectée aux tables restantes. |
bucket | objectstore (obligatoire) | L'entrée de bucket est obligatoire et doit être indiquée dans la section Objectstore. La valeur de cette entrée est une chaîne représentant le nom du bucket OCI Object Storage, dans lequel l'utilitaire copie les données extraites des tables NoSQL. |
compression | objectstore (facultatif) |
L'entrée de compression est facultative et s'applique uniquement à la section de la banque d'objets. La valeur indiquée pour cette entrée est une chaîne représentant la façon dont les données sont extraites des tables indiquées dans nosqlstore. Si cette option est définie, les données de la table sont compressées lors de la copie dans le stockage d'objets. La valeur spécifiée pour cette entrée doit être l'une des suivantes :
Remarques : Si l'entrée de compression n'est pas spécifiée, la compression snappy sera effectuée. |
databaseName | Base de données (obligatoire) | L'entrée dabaseName est requise et doit être indiquée dans la section de base de données. Cette entrée est une chaîne dont la valeur est le nom de la base de données créée dans Oracle Autonomous Data Warehouse Cloud Service. |
databaseUser | base de données (facultatif) |
L'entrée databaseUser est facultative et doit être indiquée dans la section de base de données. Cette entrée est une chaîne dont la valeur est le nom du compte utilisateur dans l'instance Autonomous Database indiquée dans l'entrée dabaseName. Si cette entrée n'est pas spécifiée, vous serez invité dans la ligne de commande à la fournir. |
databaseWallet | Base de données (obligatoire) | L'entrée databaseWallet est requise et doit être indiquée dans la section de base de données. Cette entrée est une chaîne dont la valeur est le chemin du système de fichiers vers le répertoire contenant le contenu d'Oracle Wallet téléchargé à partir du compte utilisateur Autonomous Database indiqué dans l'entrée databaseUser du fichier de configuration.
|
abortOnError | Facultatif | Indique l'action à effectuer en cas d'erreur. La valeur par défaut est True. |
Remarques :
Chaque entrée du fichier de configuration peut être remplacée sur la ligne de commande en définissant une propriété système avec le nom de la forme, section.entry par exemple, -Dnosqlstore.table=tableName1,tableName3
. Si une entrée n'est pas située dans une section, le nom à utiliser pour une telle propriété est simplement le nom de l'entrée elle-même ; par exemple, -DabortOnError=false.
Cette fonctionnalité peut être utile lors du test ou de l'écriture de scripts qui exécutent l'utilitaire à intervalles réguliers.
Spécification des informations de configuration dans le fichier d'informations d'identification :
Oracle Cloud Infrastructure requiert des informations de configuration de base, telles que les informations d'identification utilisateur, l'OCID de location, etc., qui peuvent être indiquées dans le fichier de configuration. L'emplacement par défaut de ce fichier de configuration est ~/.oci. Vous pouvez spécifier plusieurs ensembles d'informations d'identification utilisateur dans ce fichier de configuration.
[DEFAULT]
user=<ocid.of.default.user>
fingerprint=<fingerprint.of.default.user>
key_file=<path.to.default.user.oci.api.private.key.file.pem>
tenancy=<ocid.of.default.user.tenancy>
region=us-ashburn-1
compartment=<ocid.of.default.compartment>
[nosqldb-user-credentials]
user=<ocid.of.nosqldb.user>
fingerprint=<fingerprint.of.nosqldb.user>
key_file=<path.to.nosqldb.user.oci.api.private.key.file.pem>
tenancy=<ocid.of.nosqldb.user.tenancy>
region=us-ashburn-1
compartment=<ocid.of.nosqldb.compartment>
[objectstorage-user-credentials]
user=<ocid.of.objectstorage.user>
fingerprint=<fingerprint.of.objectstorage.user>
key_file=<path.to.objectstorage.user.oci.api.private.key.file.pem>
tenancy=<ocid.of.objectstorage.user.tenancy>
region=us-ashburn-1
compartment=<ocid.of.objectstorage.compartment>
[adw-user-credentials]
user=<ocid.of.adw.user>
fingerprint=<fingerprint.of.adw.user>
key_file=<path.to.adw.user.oci.api.private.key.file.pem>
tenancy=<ocid.of.adw.user.tenancy>
region=us-ashburn-1
compartment=<ocid.of.adw.compartment>
dbmsOcid=<ocid.of.autonomous.database.in.adw>
dbmsCredentialName=<OCI$RESOURCE_PRINCIPAL or NOSQLADWDB_OBJ_STORE_CREDENTIAL>
Remarques :
Dans le fichier de configuration ci-dessus, il existe trois entrées distinctes pour nosql-db-user, objectstorage-user et adw-user. Ce n'est pas obligatoire et un fichier de configuration ne peut exister qu'avec un seul profil DEFAULT. Toutefois, il est recommandé d'utiliser des profils distincts plutôt que de combiner tous les paramètres du profil DEFAULT.Table - Paramètres dans le fichier d'informations d'identification
Nom de paramètre | Détails du paramètre |
---|---|
user | OCID de l'utilisateur |
empreinte | Une courte séquence d'octets utilisée pour identifier une clé publique plus longue pour l'utilisateur par défaut |
fichier de clés | Chemin/nom de fichier du fichier contenant la clé privée de l'utilisateur par défaut |
location | OCID de la location |
régions | Adresse de la région |
compartiment | nom de compartiment ou OCID du compartiment de l'utilisateur par défaut |
dbmsOcid | OCID de l'instance Autonomous Database |
dbmsCredentialName |
Il s'agit du nom des informations d'identification que la base de données ADW utilisera pour l'authentification auprès d'Object Storage. Il s'agit soit du nom |
Exécution de l'outil
- Accédez au répertoire nosqlanalytics sous le répertoire d'installation
(/home/opc/nosqlanalytics-<version>)
.cd /home/opc/nosqlanalytics-1.0.1/nosqlanalytics
- Appelez l'utilitaire à l'aide de la commande suivante. Le fichier de configuration
oci-nosqlanalytics-config.json
est présent sous le répertoire.oci
dans le répertoire de base.java -Djava.util.logging.config.file=./src/main/resources/logging/java-util-logging.properties -Dlog4j.configurationFile=file:./src/main/resources/logging/log4j2-analytics.properties -jar ./lib/nosqlanalytics-1.0.1.jar -config ~/.oci/oci-nosqlanalytics-config.json
Remarques :
Les propriétés système qui configurent les journaliseurs utilisés pendant l'exécution sont facultatives. Si ces propriétés système ne sont pas spécifiées, l'utilitaire ne génère aucune sortie de journalisation.Logging
java.util.logging
et un pour les journaliseurs basés sur Log4j2
.
Remarques :
Par défaut, les fichiers de configuration du journaliseur fournis avec l'utilitaire sont conçus pour produire une sortie minimale lors de l'exécution de l'utilitaire. Toutefois, si vous souhaitez afficher une sortie détaillée des différents composants utilisés par l'utilitaire, vous devez augmenter les niveaux de journalisation des journaliseurs spécifiques dont vous souhaitez analyser le comportement.