Ejecución de Oracle NoSQL Database Analytics Integrator

Pasos para ejecutar Oracle NoSQL Database Analytics Integrator.

Creación de un archivo de configuración para el integrador

Para poder ejecutar Oracle NoSQL Database Analytics Integrator, primero debe crear un archivo de configuración. Este archivo de configuración se utilizará al llamar a la utilidad. El archivo de configuración debe tener las entradas en formato JSON, como se muestra en los ejemplos siguientes. Los siguientes son solo dos archivos de configuración de ejemplo. No todos los parámetros utilizados a continuación son necesarios. La siguiente tabla explica cada parámetro que se utiliza en el ejemplo y resalta si es opcional o necesario.

Ejemplo 1: se ejecuta la utilidad desde una instancia informática de Oracle Cloud y se desea autenticar mediante un principal de instancia.
{
    "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>

    }
}
Ejemplo 2: prefiere autenticarse con sus propias credenciales de usuario o está ejecutando desde fuera de Oracle Cloud y, por lo tanto, la autenticación de principal de instancia no está disponible.
{
    "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 configuración se divide en tres secciones (nosqlstore, objectstore y database), cuyas entradas se utilizan para especificar cómo interactúa la utilidad con cada servicio en la nube correspondiente: NoSQL Cloud Service, Oracle ObjectStorage y Oracle Autonomous Data Warehouse.

Hay algunos parámetros que son comunes en las tres secciones.

Tabla - Parámetros comunes para todas las secciones

Nombre de parámetro Detalles del parámetro
type Actualmente, este parámetro puede tomar uno de los tres valores: nosqldb_cloud (para la sección nosqlstore), object_storage_oci (para la sección objectstore) y database_cloud (para la sección de base de datos).
punto final El valor de esta entrada se debe definir en la región en la que se encuentra el recurso asociado. El valor especificado para esta entrada puede ser el punto final de API de la región o el identificador de región del recurso. Por ejemplo, si cada recurso se encuentra en la región Este de EE. UU. (Ashburn), la entrada de punto final de cada sección se puede especificar mediante el identificador de la región ("US-ashburn-1") o el punto final de API de la región para el servicio deseado.

Tabla - Parámetros en el archivo de configuración

Nombre del parámetro Sección especificada Detalles de la sección
useInstancePrincipal

nosqlstore (opcional)

objectstore (opcional)

La entrada useInstancePrincipal se puede especificar como el valor booleano true si se cumplen las siguientes condiciones:
  • La utilidad se ejecutará desde una instancia informática de Oracle Cloud.
  • La sección que se está configurando no es la sección de base de datos
  • La instancia informática está autorizada, como principal de instancia, a realizar acciones en el recurso al que se hace referencia en la sección que se está configurando
  • La entrada de credenciales no se especifica
Si se especifica true para la entrada useInstancePrincipal y también se especifica la entrada de credenciales, la entrada de credenciales tiene prioridad y las credenciales de usuario a las que se hace referencia en el valor de esa entrada se utilizarán para interactuar con el recurso asociado.

Note:

Las credenciales de usuario se deben especificar en la sección de base de datos porque la instancia de Autonomous Database alojada en ADW la necesita.
compartimento

nosqlstore (opcional)

objectstore (opcional)

  • Si se especifica true para la entrada useInstancePrincipal, también se debe especificar el OCID del compartimento que contiene ese recurso.
  • Si se especifica false para la entrada useInstancePrincipal o se especifica la entrada de credenciales, la entrada de compartimento es opcional, aunque se debe especificar en el archivo al que hace referencia la entrada de credenciales.
credentials

nosqlstore (opcional)

objectstore (opcional)

base de datos (necesario)

La entrada de credenciales es necesaria en la sección de base de datos en todas las circunstancias. Es necesario en las secciones nosqlstore y objectstore en una o más de las siguientes circunstancias:
  • La utilidad se ejecutará desde fuera de Oracle Cloud o desde una instancia informática de Oracle Cloud que no sea una principal de instancia
  • La entrada useInstancePrincipal no se ha especificado o se ha definido en false.

El valor especificado para esta entrada debe hacer referencia a un archivo del sistema de archivos local que especifique las credenciales de usuario que se pueden utilizar para interactuar de forma segura con el recurso asociado.

credentialsProfile

nosqlstore (opcional)

objectstore (opcional)

base de datos (opcional)

La entrada credentialsProfile es opcional en cada sección e, incluso si se especifica, solo se aplica cuando también se especifica una entrada de credenciales correspondiente.

tabla nosqlstore(Necesario)

La entrada de tabla es necesaria y se debe especificar en la sección nosqlstore. El valor de esta entrada es una cadena que consta de una lista de nombres separada por comas; donde cada nombre hace referencia al nombre de una tabla en NoSQL Database Cloud Service cuyo contenido se debe recuperar y copiar en Autonomous Data Warehouse.

readUnitsPercent nosqlstore (opcional)

La entrada readUnitsPercent es opcional y solo se aplica en la sección nosqlstore. El valor de esta entrada es una cadena que consta de una lista de enteros separados por comas; entre 1 y 100, que representa el porcentaje de unidades de lectura que se pueden consumir al recuperar datos de la tabla correspondiente.

Esta entrada permite especificar diferentes porcentajes de unidades de lectura para cada una de las tablas a las que se hace referencia en la entrada de tabla; donde el primer porcentaje de la lista corresponde a la primera tabla de la lista de tablas, el segundo porcentaje corresponde a la segunda tabla, etc. No es necesario que el número de porcentajes de esta lista sea igual al número de tablas de la lista de tablas. Se asignará un valor por defecto del 90% a cualquier tabla de la lista de tablas que no tenga un porcentaje correspondiente en esta lista.

Por ejemplo, supongamos que se especifican cuatro nombres de tabla en la entrada de tabla, pero la entrada readUnitsPercent se define en el valor "50,80". En este caso, los datos de la primera tabla se recuperarán utilizando el 50 % de las unidades de lectura disponibles, mientras que el 80 % de las unidades de lectura se utilizarán al recuperar datos de la segunda tabla. Y, por último, para las dos tablas restantes, se utilizará el 90 % de las unidades de lectura (valor por defecto) al recuperar los datos de cada una de esas tablas.

requestTimeoutMs nosqlstore (opcional)

La entrada requestTimeoutMs es opcional y solo se aplica en la sección nosqlstore. El valor de esta entrada es una cadena que consta de una lista separada por comas de enteros positivos; donde cada entero representa el número de milisegundos permitidos para que cada solicitud de recuperación de datos se complete para la tabla correspondiente.

Esta entrada permite especificar diferentes valores de timeout para cada una de las tablas a las que se hace referencia en la entrada de tabla. Si no se especifica esta entrada, o si esta entrada especifica un timeout para sólo un subconjunto de las tablas, el valor por defecto de 5000 se asignará a las tablas restantes.

bucket objectstore (necesario) La entrada del cubo es necesaria y se debe especificar en la sección del almacén de objetos. El valor de esta entrada es una cadena que representa el nombre del cubo de OCI Object Storage, en el que la utilidad copia los datos recuperados de las tablas NoSQL.
compresión objectstore (opcional)
La entrada de compresión es opcional y solo se aplica en la sección del almacén de objetos. El valor especificado para esta entrada es una cadena que representa cómo se recuperan los datos de las tablas especificadas en nosqlstore. Si se define, los datos de la tabla se comprimen al copiarlos en el almacenamiento de objetos. El valor especificado para esta entrada debe ser uno de los siguientes:
  • snappy: para compresión snappy
  • gzip: para compresión gzip
  • none: no comprima los datos de tabla copiados en ObjectStorage

Note:

Si no se especifica la entrada de compresión, se realizará la compresión snappy.
databaseName base de datos (necesario) La entrada dabaseName es necesaria y se debe especificar en la sección de base de datos. Esta entrada es una cadena cuyo valor es el nombre de la base de datos creada en Oracle Autonomous Data Warehouse Cloud Service.
databaseUser base de datos (opcional)

La entrada databaseUser es opcional y se debe especificar en la sección de base de datos. Esta entrada es una cadena cuyo valor es el nombre de la cuenta de usuario en la instancia de Autonomous Database especificada en la entrada dabaseName. Si esta entrada no está especificada, se le solicitará en la línea de comando que proporcione el valor.

databaseWallet base de datos (necesario) La entrada databaseWallet es necesaria y se debe especificar en la sección de base de datos. Esta entrada es una cadena cuyo valor es la ruta del sistema de archivos al directorio que contiene el contenido de Oracle Wallet descargado de la cuenta de usuario de Autonomous Database especificada en la entrada databaseUser del archivo de configuración.
abortOnError Opcional Especifica la acción que se debe realizar al enfrentar un error. El valor por defecto es verdadero.

Note:

Cada entrada del archivo de configuración se puede sustituir en la línea de comandos estableciendo una propiedad del sistema con el nombre del formulario, section.entry, por ejemplo, -Dnosqlstore.table=tableName1,tableName3. Si una entrada no se encuentra dentro de una sección, el nombre que se utilizará para dicha propiedad es simplemente el nombre de la propia entrada; por ejemplo, -DabortOnError=false. Esta función puede ser útil al probar o escribir scripts que ejecuten la utilidad a intervalos regulares.

Especificando información de configuración en el archivo de credenciales:

Oracle Cloud Infrastructure necesita información básica de configuración, como credenciales de usuario, OCID de arrendamiento, etc., que se puede especificar en el archivo de configuración. La ubicación por defecto de este archivo de configuración es ~/.oci. Puede especificar varios juegos de credenciales de usuario en este archivo de configuración.

Un ejemplo de archivo de credenciales se muestra a continuación.
[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>

Note:

En el archivo de configuración anterior, hay tres entradas independientes para nosql-db-user, objectstorage-user y adw-user. Esto no es obligatorio y puede existir un archivo de configuración con un solo perfil DEFAULT. Sin embargo, tener perfiles separados es una buena práctica en lugar de combinar todos los parámetros en el perfil DEFAULT.

Tabla - Parámetros en archivo de credenciales

Nombre de parámetro Detalles del parámetro
usuario El OCID del usuario
huella Una breve secuencia de bytes utilizada para identificar una clave pública más larga para el usuario por defecto
archivo de claves La ruta/nombre de archivo del archivo que contiene la clave privada para el usuario por defecto
arrendamiento El OCID del arrendamiento
regiones Punto final de la región
compartimento nombre de compartimento u OCID del compartimento del usuario por defecto
dbmsOcid OCID de Autonomous Database
dbmsCredentialName

Éste es el nombre de la credencial que utilizará la base de datos de ADW para autenticarse con Object Storage; que es el nombre OCI$RESOURCE_PRINCIPAL (si decide emplear la autenticación de entidad de recurso) o el nombre de la credencial AUTH_TOKEN que se crea cuando el usuario o el administrador del sistema ejecutan el procedimiento DBMS_CLOUD.CREATE_CREDENTIAL (por ejemplo, NOSQLADWDB_OBJ_STORE_CREDENTIAL).

Ejecución de la herramienta

Después de que se hayan completado todos los requisitos para utilizar los servicios de Oracle Cloud necesarios (NoSQL Database, Object Storage y Autonomous Data Warehouse) y se haya creado un archivo de configuración válido, Oracle NoSQL Database Analytics Integrator se puede ejecutar simplemente escribiendo un comando en la línea de comandos.
  • Navegue hasta el directorio nosqlanalytics en el directorio de instalación (/home/opc/nosqlanalytics-<version>).
    cd /home/opc/nosqlanalytics-1.0.1/nosqlanalytics
  • Llame a la utilidad con el siguiente comando. El archivo de configuración oci-nosqlanalytics-config.json está presente en el directorio .oci dentro del directorio raíz.
    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

Note:

Las propiedades del sistema que configuran los registradores utilizados durante la ejecución son opcionales. Si no se especifican esas propiedades del sistema, la utilidad no producirá ninguna salida de registro.

Registro

Oracle NoSQL Database Analytics Integrator ejecuta software de varias bibliotecas de terceros, donde cada biblioteca define su propio juego de registradores con diferentes espacios de nombres. Para mayor comodidad, Oracle NoSQL Database Analytics Integrator proporciona dos archivos de configuración de registro como parte de la versión; uno para configurar los mecanismos de registro basados en java.util.logging y otro para los registradores basados en Log4j2.

Note:

Por defecto, los archivos de configuración del registrador proporcionados con la utilidad están diseñados para producir una salida mínima a medida que se ejecuta la utilidad. Pero si desea ver una salida detallada de los distintos componentes que utiliza la utilidad, debe aumentar los niveles de registro de los registradores específicos cuyo comportamiento desea analizar.