Seguimos con la segunda parte de este tutorial, en el cual vamos a continuar con el proceso de cargar datos en nuestra base de datos autónoma.
Si no has visto los tutoriales anteriores aquí te dejo los enlaces:
Tutorial 1: Conectar SQL Developer con la Base de Datos de Procesamiento de Transacciones Autónomo
Tutorial 2: Crear Tablas SH en nuestra Base de Datos de Procesamiento de Transacciones Autónomo
Tutorial 3: Oracle Cloud Infrastructure (OCI): Crear un Compartimento
Crear un token de autenticación de almacenamiento de objeto
Para cargar datos de un almacén de objetos de Oracle Cloud Infrastructure Object Storage, debemos crear un token de autenticación para nuestra cuenta de almacén de objetos. La comunicación entre nuestra base de datos de procesamiento de transacciones autónomo y el almacén de objetos se basa en el Auth Token y la autenticación de nombre de usuario/contraseña.
1. Ingresamos a nuestra cuenta y pasamos el cursor sobre el ícono de la figura humana en la parte superior derecha de la consola y hacemos clic en Configuración de usuario en el menú desplegable.
2. En la pantalla de configuración hacemos clic en Tokens de autenticación en la parte inferior de la pantalla, debajo de Recursos y luego hacemos clic en el botón Generar token.
3. En el cuadro de diálogo ingresamos una descripción, luego hacemos clic en el botón Generar token.
Crear credenciales de almacenamiento de objetos en nuestro esquema de procesamiento de transacciones autónomo
Ahora que hemos creado un almacén de objetos Auth Token, almacenaremos en nuestro esquema de procesamiento de transacciones autónomo atpc_user las credenciales del almacén de objetos en el que se almacenan nuestros datos.
1. Abrimos el SQL Developer y nos conectamos con nuestra base de datos de procesamiento de transacciones autónomo como usuario atpc_user. (Al inicio del artículo tienes los enlaces a las distintas partes de esta serie de tutoriales donde muestro como conectarte con el usuario atpc_user).
2. En una hoja de trabajo de SQL Developer, usamos el procedimiento create_credential del paquete DBMS_CLOUD para almacenar las credenciales del almacén de objetos en nuestro esquema atpc_user.
- Creamos un nombre de credencial. Hacemos referencia a este nombre de credencial en el procedimiento copy_data en el siguiente paso.
- Especificamos las credenciales para nuestro servicio Oracle Cloud Infrastructure Object Storage: el nombre de usuario y el token de autenticación del almacén de objetos que generamos en el paso anterior.
begin
DBMS_CLOUD.create_credential (
credential_name => 'OBJ_STORE_CRED',
username => '<your username>',
password => '<your Auth Token>'
) ;
end;
/
Después de ejecutar esta secuencia de comandos, las credenciales de nuestro almacén de objetos se almacenan en nuestro esquema atpc_user de la base de datos ATP.
Copiar datos del almacén de objetos a tablas de bases de datos ATP
El procedimiento copy_data del paquete DBMS_CLOUD requiere que las tablas de destino ya existan en nuestra base de datos de procesamiento de transacciones autónomo. Ver el tutorial 2 donde creamos las tablas dentro del esquema atpc_user.
Ahora vamos a ejecutar el procedimiento copy_data para copiar los datos almacenados en nuestro almacén de objetos a nuestras tablas atpc_user de nuestra base de datos de procesamiento de transacciones autónomo.
1. En una hoja de trabajo de SQL Developer, utilizamos el procedimiento copy_data del paquete DBMS_CLOUD para copiar los datos almacenados en nuestro almacén de objetos.
- Para credential_name, especificamos el nombre de la credencial que definimos anteriormente, «Crear credenciales de almacenamiento de objetos en nuestro esquema de procesamiento de transacciones autónomo».
- Para file_uri_list, especificamos la URL que apunta a la ubicación del archivo almacenado en nuestro almacén de objetos. La URL está estructurada de la siguiente manera. Los valores que especificamos están en negrita:
https://swiftobjectstorage.<region name>.oraclecloud.com/v1/<tenant name>/<bucket name>/<file name> - Hacer clic aquí para ver un script de ejemplo. En el script, debemos usar nuestros propios nombres de tabla, nombre de región, nombre de tenant, nombre de depósito/cubo y nombres de archivo.
Nota: El nombre de la región, el nombre del tenant y el nombre del depósito se pueden encontrar en un solo lugar haciendo clic en el menú de opciones de puntos suspensivos y yendo a los detalles del archivo.
Ejemplo de código para llamar al procedimiento copy_data desde el SQL Developer.
Si obtenemos error de privilegios del usuario atpc_user, le otorgamos los privilegios conectándonos con el usuario ADMIN a nuestra base de datos ATP.
Ejecutamos el procedimiento para cada uno de los archivos:
2. Después de ejecutar el procedimiento, observamos que los datos se han copiado del almacén de objetos a las tablas en nuestra base de datos de procesamiento de transacciones autónomo.
Confirmar la Carga de Datos
Todas las operaciones de carga de datos realizadas con el paquete PL/SQL DBMS_CLOUD se registran en las tablas dba_load_operations y user_load_operations. Estas tablas contienen lo siguiente:
- dba_load_operations: muestra todas las operaciones de carga.
- user_load_operations: muestra las operaciones de carga en nuestro esquema.
Consultamos estas tablas para ver información sobre cargas de datos en curso y completadas. Por ejemplo:
SELECT table_name, owner_name, type, status, start_time, update_time, logfile_table, badfile_table
FROM user_load_operations WHERE type = 'COPY';
2. Examinamos los resultados. El registro y los archivos defectuosos son accesibles como tablas.
De esta forma hemos llegado al final de este tutorial en el cual aprendimos como cargar los datos de las tablas SH del ejemplo del esquema de Oracle en nuestra base de datos de transacciones autónoma conectándonos desde nuestro SQL Developer local.
Te espero en siguientes tutoriales!