Executando o Oracle NoSQL Database Analytics Integrator
Criar um arquivo de configuração para o integrador
Para poder executar o Oracle NoSQL Database Analytics Integrator, primeiro crie um arquivo de configuração. Este arquivo de configuração será usado ao chamar o utilitário. O arquivo de configuração deve ter as entradas em um formato JSON, conforme mostrado nos exemplos abaixo. Veja a seguir apenas dois exemplos de arquivos de configuração. Nem todos os parâmetros usados abaixo são obrigatórios. A tabela abaixo explica cada parâmetro que está sendo usado no exemplo e destaca se ele é opcional ou obrigatório.
{
"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
}
A configuração é dividida em três seções - nosqlstore, objectstore e banco de dados - cujas entradas são usadas para especificar como o utilitário interage com cada respectivo serviço de nuvem: o NoSQL Cloud Service, o Oracle ObjectStorage e o Oracle Autonomous Data Warehouse.
Tabela - Parâmetros Comuns para todas as seções
Nome do parâmetro | Detalhes do parâmetro |
---|---|
tipo | No momento, esse parâmetro pode ter um dos três valores: nosqldb_cloud (para a seção nosqlstore), object_storage_oci (para a seção objectstore) e database_cloud (para a seção do banco de dados).
|
ponto final | O valor desta entrada deve ser definido para a região na qual o recurso associado está localizado. O valor especificado para essa entrada pode ser o ponto final da API da região ou o identificador da região do recurso. Por exemplo, se cada recurso estiver localizado na região Leste dos EUA (Ashburn), a entrada do ponto final em cada seção poderá ser especificada usando o identificador da região ("US-ashburn-1") ou o ponto final da API da região para o serviço desejado. |
Tabela - Parâmetros no arquivo de configuração
Nome do parâmetro | Seção Especificada | Detalhes da secção |
---|---|---|
useInstancePrincipal |
nosqlstore(Opcional) objectstore (Opcional) |
A entrada useInstancePrincipal poderá ser especificada como o valor booliano verdadeiro se as seguintes condições forem atendidas:
Se true for especificado para a entrada useInstancePrincipal e a entrada de credenciais também for especificada, a entrada de credenciais terá precedência e as credenciais do usuário referenciadas no valor dessa entrada serão usadas para interagir com o recurso associado.
Observação: As credenciais do usuário devem ser especificadas na seção do banco de dados porque o Autonomous Database hospedado no ADW exige isso. |
compartimento |
nosqlstore(Opcional) objectstore (Opcional) |
|
credentials |
nosqlstore(Opcional) objectstore (Opcional) banco de dados (Obrigatório) |
A entrada de credenciais é obrigatória na seção do banco de dados em todas as circunstâncias. Ele é necessário nas seções nosqlstore e objectstore em uma ou mais das seguintes circunstâncias:
O valor especificado para essa entrada deve fazer referência a um arquivo no sistema de arquivos local que especifique credenciais de usuário que podem ser usadas para interagir com segurança com o recurso associado. |
credentialsProfile |
nosqlstore(Opcional) objectstore (Opcional) banco de dados (Opcional) |
A entrada credentialsProfile é opcional em cada seção e, mesmo que especificada, só se aplica quando uma entrada de credenciais correspondente também é especificada. |
tabela | nosqlstore(Obrigatório) |
A entrada da tabela é obrigatória e deve ser especificada na seção nosqlstore. O valor dessa entrada é uma string que consiste em uma lista de nomes separada por vírgulas; em que cada nome faz referência ao nome de uma tabela no NoSQL Database Cloud Service cujo conteúdo deve ser recuperado e copiado para o Autonomous Data Warehouse. |
readUnitsPercent | nosqlstore(Opcional) |
A entrada readUnitsPercent é opcional e só é aplicável na seção nosqlstore. O valor desta entrada é uma string que consiste em uma lista de inteiros separados por vírgulas; entre 1 e 100, representando a porcentagem de unidades de leitura que podem ser consumidas ao recuperar dados da tabela correspondente. Esta entrada permite especificar diferentes porcentagens de unidade de leitura para cada uma das tabelas referenciadas na entrada da tabela; onde o primeiro percentual na lista corresponde à primeira tabela na lista de tabelas, o segundo percentual corresponde à segunda tabela e assim por diante. Não é necessário que o número de porcentagens nessa lista seja igual ao número de tabelas na lista de tabelas. Um valor padrão de 90% será atribuído a qualquer tabela na lista de tabelas que não tenha um percentual correspondente nessa lista. Por exemplo, suponha que quatro nomes de tabela sejam especificados na entrada da tabela, mas a entrada readUnitsPercent seja definida com o valor "50,80". Nesse caso, os dados da primeira tabela serão recuperados usando 50% das unidades de leitura disponíveis, enquanto 80% das unidades de leitura serão usadas ao recuperar dados da segunda tabela. E, finalmente, para as duas tabelas restantes, 90% das unidades de leitura (o padrão) serão usadas ao recuperar os dados de cada uma dessas tabelas. |
requestTimeoutMs | nosqlstore(Opcional) |
A entrada requestTimeoutMs é opcional e só é aplicável na seção nosqlstore. O valor dessa entrada é uma string que consiste em uma lista separada por vírgulas de números inteiros positivos; em que cada número inteiro representa o número de milissegundos permitidos para que cada solicitação de recuperação de dados seja concluída para a tabela correspondente. Essa entrada permite especificar valores de timeout diferentes para cada uma das tabelas referenciadas na entrada da tabela. Se esta entrada não for especificada ou se esta entrada especificar um timeout para apenas um subconjunto das tabelas, o valor padrão de 5000 será atribuído às tabelas restantes. |
bucket | objectstore (Obrigatório) | A entrada do bucket é obrigatória e deve ser especificada na seção de armazenamento de objetos. O valor dessa entrada é uma string que representa o nome do bucket do OCI Object Storage, no qual o utilitário copia os dados recuperados das tabelas NoSQL. |
compactação | objectstore (Opcional) |
A entrada de compactação é opcional e é aplicável somente na seção objectstore. O valor especificado para essa entrada é uma string que representa como os dados são recuperados da(s) tabela(s) especificada(s) no nosqlstore. Se isso for definido, os dados da tabela serão compactados ao serem copiados para o armazenamento de objetos. O valor especificado para esta entrada deve ser um dos seguintes:
Observação: Se a entrada de compactação não for especificada, a compactação instantânea será executada. |
databaseName | banco de dados (Obrigatório) | A entrada dabaseName é obrigatória e deve ser especificada na seção do banco de dados. Esta entrada é uma string cujo valor é o nome do banco de dados criado no Oracle Autonomous Data Warehouse Cloud Service. |
databaseUser | banco de dados (Opcional) |
A entrada databaseUser é opcional e deve ser especificada na seção do banco de dados. Essa entrada é uma string cujo valor é o nome da conta de usuário no Autonomous Database especificado na entrada dabaseName. Se essa entrada não for especificada, você será solicitado na linha de comandos a fornecer o valor. |
databaseWallet | banco de dados (Obrigatório) | A entrada databaseWallet é obrigatória e deve ser especificada na seção do banco de dados. Esta entrada é uma string cujo valor é o caminho do sistema de arquivos para o diretório que contém o conteúdo do Oracle Wallet baixado da conta de usuário do Autonomous Database especificada na entrada databaseUser no arquivo de configuração.
|
abortOnError | Opcional | Especifica a ação a ser tomada diante de um erro. O valor padrão é verdadeiro. |
Observação:
Cada entrada no arquivo de configuração pode ser substituída na linha de comando definindo uma propriedade do sistema com o nome do formulário, section.entry por exemplo, -Dnosqlstore.table=tableName1,tableName3
. Se uma entrada não estiver localizada dentro de uma seção, o nome a ser usado para essa propriedade será simplesmente o nome da própria entrada; por exemplo, -DabortOnError=false.
Esse recurso pode ser útil ao testar ou gravar scripts que executam o utilitário em intervalos regulares.
Especificando informações de configuração no arquivo de credenciais:
O Oracle Cloud Infrastructure requer informações básicas de configuração, como credenciais do usuário, OCID da tenancy etc., que podem ser especificadas no arquivo de configuração. O local padrão deste arquivo de configuração é ~/.oci. Você pode especificar vários conjuntos de credenciais de usuário neste arquivo de configuração.
[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>
Observação:
No arquivo de configuração acima, há três entradas separadas para nosql-db-user, objectstorage-user e adw-user. Isso não é obrigatório e um arquivo de configuração pode existir com apenas um perfil DEFAULT. No entanto, ter perfis separados é uma boa prática, em vez de combinar todos os parâmetros no perfil DEFAULT.Tabela - Parâmetros no arquivo de credenciais
Nome do Parâmetro | Detalhes do parâmetro |
---|---|
user | O OCID do usuário |
impressão digital | Uma sequência curta de bytes usados para identificar uma chave pública mais longa para o usuário padrão |
arquivo de chave | O caminho/nome do arquivo que contém a chave privada do usuário padrão |
tenancy | O OCID da tenancy |
regiões | O ponto final da região |
compartimento | nome do compartimento ou OCID do compartimento do usuário padrão |
dbmsOcid | OCID do Autonomous Database |
dbmsCredentialName |
Este é o nome da credencial que o banco de dados do ADW usará para autenticação com o Object Storage; que é o nome |
Executando a ferramenta
- Navegue até o diretório nosqlanalytics no diretório de instalação
(/home/opc/nosqlanalytics-<version>)
.cd /home/opc/nosqlanalytics-1.0.1/nosqlanalytics
- Chame o utilitário usando o comando a seguir. O arquivo de configuração
oci-nosqlanalytics-config.json
está presente no diretório.oci
dentro do diretório 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
Observação:
As propriedades do sistema que configuram os loggers usados durante a execução são opcionais. Se essas propriedades do sistema não forem especificadas, o utilitário não produzirá saída de log.Log
java.util.logging
e outro para loggers com base em Log4j2
.
Observação:
Por padrão, os arquivos de configuração do logger fornecidos com o utilitário são projetados para produzir uma saída mínima à medida que o utilitário é executado. Mas se você deseja ver saída detalhada dos vários componentes que são empregados pelo utilitário, então você deve aumentar os níveis de registro dos loggers específicos cujo comportamento você deseja analisar.Executando o Oracle NoSQL Database Analytics Integrator