Esecuzione di Oracle NoSQL Database Analytics Integrator
Creare un file di configurazione per l'integratore
Prima di poter eseguire Oracle NoSQL Database Analytics Integrator, è necessario creare un file di configurazione. Questo file di configurazione verrà utilizzato quando si richiama la utility. Il file di configurazione deve avere le voci in formato JSON come illustrato negli esempi riportati di seguito. Di seguito sono riportati solo due file di configurazione di esempio. Non tutti i parametri utilizzati di seguito sono obbligatori. Nella tabella seguente vengono illustrati tutti i parametri utilizzati nell'esempio e viene evidenziato se è facoltativo o obbligatorio.
{
"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 configurazione è suddivisa in tre sezioni: nosqlstore, objectstore e database, le cui voci vengono utilizzate per specificare la modalità di interazione della utility con ciascun rispettivo servizio cloud: NoSQL Cloud Service, Oracle ObjectStorage e Oracle Autonomous Data Warehouse.
Tabella - Parametri comuni per tutte le sezioni
Nome parametro | Dettagli del parametro |
---|---|
type | Attualmente, questo parametro può assumere uno dei tre valori seguenti: nosqldb_cloud (per la sezione nosqlstore), object_storage_oci (per la sezione dell'area di memorizzazione degli oggetti) e database_cloud (per la sezione del database).
|
endpoint | Il valore di questa voce deve essere impostato sull'area in cui si trova la risorsa associata. Il valore specificato per questa voce può essere l'endpoint API dell'area o l'identificativo area per la risorsa. Ad esempio, se ogni risorsa si trova nell'area orientale degli Stati Uniti (Ashburn), la voce dell'endpoint in ogni sezione può essere specificata utilizzando l'identificativo dell'area ("US-ashburn-1") o l'endpoint API dell'area per il servizio desiderato. |
Tabella - Parametri nel file di configurazione
Il nome del parametro | Sezione specificata | Dettagli della sezione |
---|---|---|
useInstancePrincipal |
nosqlstore (facoltativo) objectstore (facoltativo) |
La voce useInstancePrincipal può essere specificata come valore booleano vero se vengono soddisfatte le seguenti condizioni:
Se si specifica true per la voce useInstancePrincipal e si specifica anche la voce delle credenziali, la voce delle credenziali ha la precedenza e le credenziali utente a cui viene fatto riferimento nel valore della voce verranno utilizzate per interagire con la risorsa associata.
Nota È necessario specificare le credenziali utente nella sezione del database perché l'Autonomous Database ospitato in ADW lo richiede. |
compartimento |
nosqlstore (facoltativo) objectstore (facoltativo) |
|
credenziali |
nosqlstore (facoltativo) objectstore (facoltativo) database (obbligatorio) |
La voce delle credenziali è obbligatoria nella sezione del database in tutte le circostanze. È obbligatorio nelle sezioni nosqlstore e objectstore in una o più delle seguenti circostanze:
Il valore specificato per questa voce deve fare riferimento a un file nel file system locale che specifica le credenziali utente che possono essere utilizzate per interagire in modo sicuro con la risorsa associata. |
credentialsProfile |
nosqlstore (facoltativo) objectstore (facoltativo) database (facoltativo) |
La voce credentialsProfile è facoltativa in ogni sezione e, anche se specificata, si applica solo quando viene specificata anche una voce di credenziali corrispondente. |
Tabella | nosqlstore(Obbligatorio) |
La voce della tabella è obbligatoria e deve essere specificata nella sezione nosqlstore. Il valore di questa voce è una stringa costituita da una lista di nomi separata da virgole, in cui ogni nome fa riferimento al nome di una tabella nel servizio NoSQL Database Cloud il cui contenuto deve essere recuperato e copiato in Autonomous Data Warehouse. |
readUnitsPercent | nosqlstore (facoltativo) |
La voce readUnitsPercent è facoltativa ed è applicabile solo nella sezione nosqlstore. Il valore di questa voce è una stringa costituita da un elenco di numeri interi separati da virgole; compreso tra 1 e 100, che rappresenta la percentuale di unità di lettura che è possibile utilizzare durante il recupero dei dati dalla tabella corrispondente. Questa voce consente di specificare percentuali di unità di lettura diverse per ciascuna delle tabelle a cui si fa riferimento nella voce della tabella; dove la prima percentuale nell'elenco corrisponde alla prima tabella nell'elenco delle tabelle, la seconda percentuale corrisponde alla seconda tabella e così via. Non è necessario che il numero di percentuali in questo elenco sia uguale al numero di tabelle nell'elenco di tabelle. Un valore predefinito del 90% verrà assegnato a qualsiasi tabella dell'elenco di tabelle che non ha una percentuale corrispondente in questo elenco. Si supponga, ad esempio, che nella voce della tabella siano specificati quattro nomi di tabella, ma che la voce readUnitsPercent sia impostata sul valore "50,80". In questo caso, i dati della prima tabella verranno recuperati utilizzando il 50% delle unità di lettura disponibili, mentre l'80% delle unità di lettura verrà utilizzato durante il recupero dei dati dalla seconda tabella. Infine, per le rimanenti due tabelle, verrà utilizzato il 90% delle unità di lettura (impostazione predefinita) durante il recupero dei dati da ciascuna di tali tabelle. |
requestTimeoutMs | nosqlstore (facoltativo) |
La voce requestTimeoutMs è facoltativa ed è applicabile solo nella sezione nosqlstore. Il valore di questa voce è una stringa costituita da una lista separata da virgole di numeri interi positivi, in cui ogni numero intero rappresenta il numero di millisecondi consentiti per il completamento di ogni richiesta di recupero dati per la tabella corrispondente. Questa voce consente di specificare valori di timeout diversi per ciascuna delle tabelle a cui si fa riferimento nella voce della tabella. Se questa voce non viene specificata o se questa voce specifica un timeout solo per un subset delle tabelle, il valore predefinito di 5000 verrà assegnato alle tabelle rimanenti. |
bucket | objectstore (obbligatorio) | La voce del bucket è obbligatoria e deve essere specificata nella sezione dell'area di memorizzazione degli oggetti. Il valore di questa voce è una stringa che rappresenta il nome del bucket di OCI Object Storage, in cui la utility copia i dati recuperati dalle tabelle NoSQL. |
compressione | objectstore (facoltativo) |
La voce di compressione è facoltativa ed è applicabile solo nella sezione dell'area di memorizzazione degli oggetti. Il valore specificato per questa voce è una stringa che rappresenta la modalità di recupero dei dati dalle tabelle specificate nel nosqlstore. Se questa opzione è impostata, i dati della tabella vengono compressi durante la copia nello storage degli oggetti. Il valore specificato per questa voce deve essere uno dei seguenti:
Nota Se la voce di compressione non viene specificata, verrà eseguita la compressione scattante. |
databaseName | database (obbligatorio) | La voce dabaseName è obbligatoria e deve essere specificata nella sezione del database. Questa voce è una stringa il cui valore è il nome del database creato in Oracle Autonomous Data Warehouse Cloud Service. |
databaseUser | database (facoltativo) |
La voce databaseUser è facoltativa e deve essere specificata nella sezione del database. Questa voce è una stringa il cui valore è il nome dell'account utente nell'Autonomous Database specificato nella voce dabaseName. Se questa voce non viene specificata, verrà richiesto nella riga di comando di fornire il valore. |
databaseWallet | database (obbligatorio) | La voce databaseWallet è obbligatoria e deve essere specificata nella sezione del database. Questa voce è una stringa il cui valore è il percorso del file system della directory contenente il contenuto di Oracle Wallet scaricato dall'account utente di Autonomous Database specificato nella voce databaseUser nel file di configurazione.
|
abortOnError | Facoltativo | Specifica l'azione da eseguire per affrontare un errore. Il valore predefinito è true. |
Nota
È possibile eseguire l'override di ogni voce del file di configurazione impostando una proprietà di sistema con il nome del modulo, section.entry ad esempio -Dnosqlstore.table=tableName1,tableName3
. Se una voce non si trova all'interno di una sezione, il nome da utilizzare per tale proprietà è semplicemente il nome della voce stessa, ad esempio -DabortOnError=false.
Questa funzione può essere utile durante il test o la scrittura di script che eseguono l'utility a intervalli regolari.
Specifica delle informazioni di configurazione nel file delle credenziali:
Oracle Cloud Infrastructure richiede informazioni di configurazione di base, come credenziali utente, OCID tenancy e così via, che possono essere specificate nel file di configurazione. La posizione predefinita per questo file di configurazione è ~/.oci. In questo file di configurazione è possibile specificare più set di credenziali utente.
[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>
Nota
Nel file di configurazione sopra riportato sono disponibili tre voci separate per nosql-db-user, objectstorage-user e adw-user. Questo non è obbligatorio e può esistere un file di configurazione con un solo profilo DEFAULT. Tuttavia, avere profili separati è una buona prassi piuttosto che combinare tutti i parametri nel profilo DEFAULT.Tabella - Parametri nel file delle credenziali
Nome parametro | Dettagli del parametro |
---|---|
utente | OCID dell'utente |
impronta | Breve sequenza di byte utilizzata per identificare una chiave pubblica più lunga per l'utente predefinito |
file di chiave | Percorso/nome file del file che contiene la chiave privata per l'utente predefinito |
tenancy | OCID della tenancy |
aree | L'endpoint della regione |
compartimento | nome o OCID del compartimento dell'utente predefinito |
dbmsOcid | OCID di Autonomous Database |
dbmsCredentialName |
Nome della credenziale che il database ADW utilizzerà per l'autenticazione con lo storage degli oggetti, ovvero il nome |
Esecuzione dello strumento
- Passare alla directory nosqlanalytics nella directory di installazione
(/home/opc/nosqlanalytics-<version>)
.cd /home/opc/nosqlanalytics-1.0.1/nosqlanalytics
- Richiamare la utility utilizzando il comando seguente. Il file di configurazione
oci-nosqlanalytics-config.json
è presente nella directory.oci
all'interno della directory home.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
Nota
Le proprietà di sistema che configurano i logger utilizzati durante l'esecuzione sono facoltative. Se tali proprietà di sistema non vengono specificate, l'utility non produrrà alcun output di log.Log
java.util.logging
e uno per i logger basati su Log4j2
.
Nota
Per impostazione predefinita, i file di configurazione del logger forniti con l'utilità sono progettati per produrre output minimo durante l'esecuzione dell'utilità. Ma se si desidera visualizzare un output dettagliato dai vari componenti utilizzati dall'utilità, è necessario aumentare i livelli di log dei logger specifici di cui si desidera analizzare il comportamento.Esecuzione di Oracle NoSQL Database Analytics Integrator