Consulta de datos externos con Autonomous Database on Dedicated Exadata Infrastructure
Describe paquetes y herramientas para consultar y validar datos con Autonomous Database on Dedicated Exadata Infrastructure.
La base de datos no gestiona los datos externos; sin embargo, puede utilizar los procedimientos DBMS_CLOUD
para consultar los datos externos. Aunque las consultas de datos externos no serán tan rápidas como las consultas de tablas de base de datos, puede utilizar este enfoque para empezar rápidamente a ejecutar consultas en los archivos de origen externos y los datos externos.
Puede utilizar los procedimientos DBMS_CLOUD
para validar los datos de los archivos de origen externos de una tabla externa para poder identificar problemas y corregir los datos de la tabla externa o excluir datos no válidos antes de utilizar los datos.
Note:
Si no utiliza el usuarioADMIN
, asegúrese de que el usuario tiene los privilegios necesarios para las operaciones que debe realizar el usuario. Consulte Gestión de privilegios de usuario de base de datos para obtener más información.
Consulta de datos externos
Para consultar datos en archivos en la nube, primero debe almacenar las credenciales de almacenamiento de objetos en Autonomous Database y, a continuación, crear una tabla externa mediante el procedimiento PL/SQL DBMS_CLOUD.CREATE_EXTERNAL_TABLE
.
El archivo de origen de este ejemplo, channels.txt
, tiene los siguientes datos:
S,Direct Sales,Direct
T,Tele Sales,Direct
C,Catalog,Indirect
I,Internet,Indirect
P,Partners,Others
Validación de datos externos
Para validar una tabla externa, utilice el procedimiento DBMS_CLOUD.VALIDATE_EXTERNAL_TABLE
.
Antes de validar una tabla externa, debe crear la tabla externa mediante el procedimiento DBMS_CLOUD.CREATE_EXTERNAL_TABLE
. A continuación, utilice el procedimiento DBMS_CLOUD.VALIDATE_EXTERNAL_TABLE
para validarla. Por ejemplo:
BEGIN
DBMS_CLOUD.VALIDATE_EXTERNAL_TABLE
(
table_name => 'CHANNELS_EXT' );
END;
/
Este procedimiento examina los archivos de origen y los valida mediante las opciones de formato especificadas al crear la tabla externa.
La operación de validación, por defecto, examina todas las filas de los archivos de origen y se para cuando se rechaza una fila. Si desea validar solo un subjuego de las filas, utilice el parámetro rowcount
. Cuando se define el parámetro rowcount
, la operación de validación examina las filas y se para cuando se rechaza una fila o cuando se valida el número especificado de filas sin errores.
Por ejemplo, la siguiente operación de validación examina 100 filas y se para cuando se rechaza una fila o cuando se validan 100 filas sin errores:
BEGIN
DBMS_CLOUD.VALIDATE_EXTERNAL_TABLE (
table_name => 'CHANNELS_EXT',
rowcount => 100 );
END;
/
Si no desea que la validación se pare cuando se rechace una fila y desea ver todas las filas rechazadas, defina el parámetro stop_on_error
en FALSE
. En este caso, VALIDATE_EXTERNAL_TABLE
examina todas las filas e informa de todas las filas rechazadas.
Si desea validar solo un subjuego de filas, utilice el parámetro rowcount
. Cuando se define rowcount
y stop_on_error
se define en FALSE
, la operación de validación examina las filas y se para cuando se rechaza el número especificado de filas o cuando se valida el número especificado de filas sin errores. Por ejemplo, en el siguiente ejemplo se examinan 100 filas y se para cuando se rechazan 100 filas o cuando se validan 100 filas sin errores:
BEGIN
DBMS_CLOUD.VALIDATE_EXTERNAL_TABLE (
table_name => 'CHANNELS_EXT',
rowcount => 100,
stop_on_error => FALSE );
END;
/
Consulte Procedimiento VALIDATE_EXTERNAL_TABLE para obtener información detallada sobre los parámetros DBMS_CLOUD.VALIDATE_EXTERNAL_TABLE
.
Consulte Visualización de logs para validación de datos para ver los resultados de las operaciones de validación en las tablas dba_load_operations
y user_load_operations
.
Visualización de logs de validación de datos
Después de validar una tabla externa, puede ver el resultado de la operación de validación consultando una tabla de operaciones de carga:
-
dba_load_operations
: muestra todas las operaciones de validación. -
user_load_operations
: muestra las operaciones de validación del esquema.
Puede utilizar estas tablas para ver la información de validación de carga. Por ejemplo, utilice esta sentencia SELECT para consultar user_load_operations
:
SELECT table_name,owner_name,type,status,start_time,update_time,logfile_table,badfile_table
FROM user_load_operations
WHERE type = 'VALIDATE';
TABLE_NAME OWNER_NAME TYPE STATUS START_TIME UPDATE_TIME LOGFILE_TABLE BADFILE_TABLE
------------- ---------- ---------- ---------- -------------- ------------- --------------- ---------------
CHANNELS_EXT SH VALIDATE COMPLETED 13-NOV-17... 13-NOV-17... VALIDATE$21_LOG VALIDATE$21_BAD
Al utilizar esta sentencia SQL con la cláusula WHERE
en la columna TYPE
, se muestran todas las operaciones de carga con el tipo VALIDATE
.
La columna LOGFILE_TABLE
muestra el nombre de la tabla que puede consultar para ver el log de una operación de validación. Por ejemplo, en la siguiente consulta se muestra el log de esta operación de validación:
SELECT * FROM VALIDATE$21_LOG;
La columna BADFILE_TABLE
muestra el nombre de la tabla que puede consultar para ver las filas en las que se han producido errores durante la validación. Por ejemplo, en la siguiente consulta se muestran los registros rechazados de la operación de validación anterior:
SELECT * FROM VALIDATE$21_BAD;
En función de los errores que se muestran en el log y las filas que se muestran en BADFILE_TABLE
, puede corregir el error si borra la tabla externa mediante el comando DROP TABLE
y la vuelve a crear especificando las opciones de formato correctas en DBMS_CLOUD.CREATE_EXTERNAL_TABLE
.
Note:
Las tablasLOGFILE_TABLE
y BADFILE_TABLE
se almacenan durante dos días para cada operación de validación y, a continuación, se eliminan automáticamente.