Paquete DBMS_DCAT

El paquete DBMS_DCAT proporciona funciones y procedimientos para ayudar a los usuarios de la base de datos de IA autónoma a aprovechar la detección de datos y el sistema centralizado de gestión de metadatos de OCI Data Catalog.

Data Catalog recopila metadatos de los activos de almacenamiento de objetos de un lago de datos. El proceso de recogida crea entidades lógicas, que se pueden considerar tablas con columnas y tipos de dato asociados. Los procedimientos y las funciones de DBMS_DCAT conectan la base de datos de IA autónoma al catálogo de datos y, a continuación, sincronizan los activos con la base de datos, creando esquemas protegidos y tablas externas. A continuación, puede consultar el almacén de objetos mediante esas tablas externas, uniendo fácilmente los datos externos con los datos almacenados en Autonomous AI Database. Esto simplifica drásticamente el proceso de gestión; hay un único almacén de metadatos gestionado centralmente que se comparte entre varios servicios de OCI (incluidas las base de datos de IA autónoma). También hay vistas de diccionario de base de datos de IA autónoma que le permiten inspeccionar el contenido de Data Catalog mediante SQL y mostrar cómo estas entidades de Data Catalog se asignan a sus esquemas y tablas de base de datos de IA autónoma.

Usuarios y roles de Data Catalog

El paquete DBMS_DCAT soporta usuarios/esquemas sincronizados, usuarios dcat_admin y usuarios locales. Los usuarios deben tener el rol dcat_sync para poder utilizar este paquete.

Usuarios de Data Catalog

  • Usuarios/esquemas sincronizados

    Las tablas externas sincronizadas se organizan en esquemas de base de datos correspondientes a combinaciones de activo/bloque de datos o según las propiedades personalizadas definidas por el usuario. Los esquemas sincronizados se crean/suprimen automáticamente durante la sincronización de Data Catalog. Se crean como no usuarios de autenticación sin el privilegio CREATE SESSION. Los esquemas sincronizados también se crean mediante la cláusula protegida, de modo que los usuarios locales no pueden modificarlos (ni siquiera el administrador de PDB) y solo se pueden modificar mediante la sincronización.

  • Usuario dcat_admin

    El usuario dcat_admin es un usuario de base de datos local que puede ejecutar una sincronización y otorgar el privilegio READ en las tablas sincronizadas a otros usuarios o roles. El usuario se crea como un usuario sin autenticación sin el privilegio CREATE SESSION.

  • usuarios locales

    Los usuarios de la base de datos que consultan las tablas externas deben otorgar explícitamente privilegios de lectura en las tablas externas sincronizadas por los usuarios dcat_admin o ADMIN. Por defecto, una vez finalizada la sincronización, solo los usuarios dcat_admin y ADMIN tienen acceso a las tablas externas sincronizadas.

Roles de Data Catalog

  • dcat_sync

    El rol dcat_sync tiene todos los privilegios necesarios para utilizar el paquete DBMS_DCAT. Los usuarios deben tener este rol para poder utilizar la API para navegar por Data Catalog y ejecutar la sincronización.

Credenciales y políticas de IAM necesarias

En este tema se describen las credenciales de usuario y las políticas de Oracle Cloud Infrastructure Identity and Access Management (IAM) necesarias para otorgar a los usuarios de la base de datos de IA autónoma permiso para gestionar un catálogo de datos y leer desde el almacenamiento de objetos.

Requisitos de políticas y credenciales de OCI Data Catalog:

Requisitos de políticas y credenciales del catálogo de datos de AWS Glue

Las siguientes credenciales y políticas de usuario son necesarias para otorgar a los usuarios de la base de datos de IA autónoma permiso para acceder a los catálogos de datos de pegamento de Amazon Web Services (AWS) y leer desde el almacenamiento de objetos S3:
  • Se requiere un objeto de credencial con permiso para acceder a un catálogo de datos de AWS Glue. Para obtener información sobre la gestión de credenciales, consulte DBMS_CLOUD para Access Management.

    Para acceder a un catálogo de datos de AWS Glue se requieren los siguientes privilegios: pegue:GetDatabases , pegue:GetTables y pegue:GetTable.

    Además, se necesita el privilegio s3:GetBucketLocation durante la sincronización para generar URL https que se puedan resolver y que apunten a los objetos S3 subyacentes.
  • Se necesita un objeto de credencial con permiso para acceder a los archivos almacenados en S3 para que la base de datos de IA autónoma pueda consultar los archivos de datos.
  • Se admiten credenciales de AWS. No se admiten las credenciales de AWS Amazon Resource Names (ARN).

Ejemplo: creación de un objeto de credencial de autenticación nativa de OCI

En este ejemplo, creamos una credencial de autenticación nativa de OCI que se puede utilizar al crear un catálogo de datos o un objeto de credencial de almacén de objetos. Para obtener más información, consulte el procedimiento DBMS_DCAT SET_DATA_CATALOG_CREDENTIAL y el procedimiento DBMS_DCAT SET_OBJECT_STORE_CREDENTIAL respectivamente.

En la autenticación nativa de OCI, el procedimiento DBMS_CLOUD.CREATE_CREDENTIAL incluye los siguientes parámetros: credential_name, user_ocid, tenancy_ocid, private_key y fingerprint. Consulte DBMS_CLOUD CREATE_CREDENTIAL Procedure para obtener una descripción completa de este procedimiento.

credential_name es el nombre del objeto de credencial. Los parámetros user_ocid y tenancy_ocid corresponden a los OCID del usuario y del arrendamiento, respectivamente.

El parámetro private_key especifica la clave privada generada en formato PEM. Las claves privadas creadas con una frase de contraseñas no están soportadas. Por lo tanto, debemos asegurarnos de generar una clave sin frase de contraseña. Consulte Cómo generar una clave de firma de API para obtener más detalles sobre cómo crear una clave privada sin frase de contraseña. Además, la clave privada que proporcionamos para este parámetro solo debe contener la clave en sí sin ningún encabezado o pie de página (por ejemplo, '-----BEGIN RSA PRIVATE KEY-----', '-----END RSA PRIVATE KEY-----').

El parámetro fingerprint especifica la huella que se obtiene después de cargar la clave pública en la consola o mediante los comandos OpenSSL. Consulte How to Upload the Public Key y How to Get the Key's Fingerprint para obtener más información sobre la obtención de la huella.

Una vez que se recopile toda la información necesaria y se genere la clave privada, estamos listos para ejecutar el siguiente procedimiento CREATE_CREDENTIAL:

BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL (
    credential_name => 'OCI_NATIVE_CRED',
    user_ocid              => 'ocid1.user.oc1..aaaaaaaatfn77fe3fxux3o5lego7glqjejrzjsqsrs64f4jsjrhbsk5qzndq',
    tenancy_ocid           => 'ocid1.tenancy.oc1..aaaaaaaapwkfqz3upqklvmelbm3j77nn3y7uqmlsod75rea5zmtmbl574ve6a',
    private_key            => 'MIIEogIBAAKCAQEA...t9SH7Zx7a5iV7QZJS5WeFLMUEv+YbYAjnXK+dOnPQtkhOblQwCEY3Hsblj7Xz7o=',
    fingerprint            => '4f:0c:d6:b7:f2:43:3c:08:df:62:e3:b2:27:2e:3c:7a');
END;
/
Después de crear el objeto de credencial, se muestra en la tabla dba_credentials:
SELECT owner, credential_name
FROM dba_credentials 
WHERE credential_name LIKE '%NATIVE%';

OWNER CREDENTIAL_NAME
----- ---------------
ADMIN OCI_NATIVE_CRED

Ejemplo: uso de la entidad de recurso de base de datos de IA autónoma

En este ejemplo, se crea un grupo dinámico que incluye los miembros de recursos adecuados, al grupo dinámico se le otorga permiso para gestionar un catálogo de datos y, a continuación, al grupo dinámico se le otorga permiso para leer desde el almacenamiento de objetos.

  1. Cree un grupo dinámico denominado adb-grp-1. Agregue una regla de coincidencia a adb-grp-1 que incluya la instancia de base de datos de IA autónoma con el OCID ocid1.autonomousdatabase.oc1.iad.abuwcljr...fjkfe como miembro de recurso.

    Regla de coincidencia de grupo dinámico:

    resource.id = 'ocid1.autonomousdatabase.oc1.iad.abuwcljr...fjkfe'
  2. Defina una política que otorgue al grupo dinámico adb-grp-1 acceso completo a las instancias de Data Catalog, en el compartimento mycompartment.

    allow dynamic-group adb-grp-1 to manage data-catalog-family in compartment mycompartment
  3. Defina una política que permita al grupo dinámico adb-grp-1 leer cualquier cubo del compartimento denominado mycompartment.
    allow dynamic-group adb-grp-1 to read objects in compartment mycompartment

Ejemplo: uso de principales de usuario

En este ejemplo, user1 es un miembro del grupo adb-admins. Todos los miembros de este grupo tienen permiso para gestionar todos los catálogos de datos en mycompartment y para leer desde el almacén de objetos en mycompartment.

  1. Permite a los usuarios que son miembros de adb-admins gestionar todos los catálogos de datos en mycompartment.
    allow group adb-admins to manage data-catalog-family in compartment mycompartment
  2. Permitir a los usuarios que sean miembros de adb-admins leer cualquier objeto de cualquier cubo de mycompartment.
    allow group adb-admins to read objects in compartment mycompartment

Resumen de Subprogramas de Gestión de Conexiones

En esta tabla se muestran los procedimientos de paquete DBMS_DCAT utilizados para crear, consultar y borrar conexiones de Data Catalog.

Subprograma Descripción
SET_DATA_CATALOG_CONN Procedimiento Crear una conexión al catálogo de datos proporcionado
SET_DATA_CATALOG_CREDENTIAL Procedimiento Definir la credencial de acceso al catálogo de datos utilizada por una conexión específica al catálogo de datos
SET_OBJECT_STORE_CREDENTIAL Procedimiento Definir la credencial utilizada por el identificador de conexión único proporcionado para acceder al almacén de objetos
UNSET_DATA_CATALOG_CONN Procedimiento Eliminar una conexión de Data Catalog existente

SET_DATA_CATALOG_CREDENTIAL Procedimiento

Este procedimiento define la credencial de acceso a Data Catalog que utiliza una conexión específica a Data Catalog.

Sintaxis

PROCEDURE DBMS_DCAT.SET_DATA_CATALOG_CREDENTIAL(
    credential_name VARCHAR2(128) DEFAULT NULL,
    dcat_con_id     VARCHAR2 DEFAULT NULL
  );

Parámetros

Parámetro Descripción

credential_name

(Opcional) Credencial utilizada para acceder a Data Catalog.

dcat_con_id Identificador de conexión único de Data Catalog. Esta credencial se utiliza para la conexión identificada por dcat_con_id. El valor por defecto es Null.

Uso

Esta credencial debe tener permisos de gestión de Data Catalog; consulte Políticas de Data Catalog. El valor por defecto es la entidad de recurso; consulte Acceso a los recursos en la nube mediante la configuración de políticas y roles.

SET_OBJECT_STORE_CREDENTIAL Procedimiento

Este procedimiento define la credencial que utiliza el identificador de conexión único proporcionado para acceder al almacén de objetos. El cambio de la credencial de acceso al almacén de objetos modifica todas las tablas sincronizadas existentes para utilizar la nueva credencial.

Sintaxis

PROCEDURE DBMS_DCAT.SET_OBJECT_STORE_CREDENTIAL(
    credential_name  VARCHAR2(128),
    dcat_con_id      IN VARCHAR2 DEFAULT NULL
  );

Parámetros

Parámetro Descripción

credential_name

Credencial utilizada por las tablas externas para acceder al almacén de objetos.

dcat_con_id Identificador de conexión único de Data Catalog. El valor por defecto es NULL.

SET_DATA_CATALOG_CONN Procedimiento

Este procedimiento crea una conexión al catálogo de datos proporcionado. Se necesita la conexión para sincronizar los metadatos con Data Catalog. Una instancia de base de datos de IA autónoma puede conectarse a varias instancias de Data Catalog y admite la conexión a OCI Data Catalogs, AWS Glue Data Catalogs y Apache Iceberg REST Catalogs.

Sintaxis

PROCEDURE DBMS_DCAT.SET_DATA_CATALOG_CONN (
   region         VARCHAR2 DEFAULT NULL,
   endpoint       VARCHAR2 DEFAULT NULL,
   catalog_id     VARCHAR2 DEFAULT NULL,
   dcat_con_id    VARCHAR2 DEFAULT NULL,
   catalog_type   VARCHAR2 DEFAULT NULL,
   token_endpoint VARCHAR2 DEFAULT Null
 );

Parámetros

Parámetro Descripción

region

Región de Data Catalog. Si se especifica endpoint, region es opcional. Si se proporcionan endpoint y region, endpoint tiene prioridad. El valor por defecto es NULL.

endpoint

Punto final de Data Catalog. Si se especifica region, endpoint es opcional. Si se proporcionan endpoint y region, endpoint tiene prioridad. El valor por defecto es NULL.

catalog_id

Identificador único de Oracle Cloud (OCID) para la instancia de Data Catalog. Al conectarse a los catálogos de datos de AWS Glue, catalog_id es opcional.

dcat_con_id Identificador de conexión único de Data Catalog. Este identificador es necesario al conectarse a varios catálogos de datos y es opcional al conectarse solo a uno. Se utiliza para hacer referencia a la conexión de Data Catalog en llamadas posteriores o al consultar vistas. Si no se especifica ningún identificador, este procedimiento genera un identificador de conexión NULL. Las siguientes restricciones se aplican a dcat_con_id:
  • Debe ser único en la instancia de Autonomous AI Database.
  • Debe empezar por una letra.
  • Puede contener caracteres alfanuméricos, guiones bajos (_), signos de dólar ($) y signos de almohadilla (#).
  • Debe tener al menos 16 caracteres.
catalog_type Tipo de catálogo de datos que se va a conectar. Valores permitidos:
  • OCI_DCAT - Catálogo de datos de OCI
  • AWS_GLUE - Catálogo de datos de AWS Glue
  • ICEBERG_UNITY - Catálogo Databricks Unity Iceberg
  • ICEBERG_POLARIS - Catálogo Polaris Iceberg
  • NULL: el tipo de catálogo se detecta automáticamente desde la región o el punto final proporcionados.
token_endpoint Punto final de token de acceso para la autenticación OAuth. El valor por defecto es NULL.

Uso

Solo necesita llamar a este procedimiento una vez para establecer la conexión. Como parte del proceso de conexión, Autonomous AI Database agrega propiedades personalizadas a Data Catalog. Los usuarios de Data Catalog pueden acceder a estas propiedades personalizadas y permiten sustituir nombres por defecto (para esquemas, tablas y columnas) y tipos de dato de columna.

Antes de crear una conexión, se deben crear y definir credenciales. Para obtener una descripción del proceso de conexión, consulte Flujo de trabajo típico con Data Catalog para catálogos de datos de OCI y Flujo de trabajo de usuario para consultas con AWS Glue Data Catalog para catálogos de datos de AWS Glue.

Ejemplo: conexión con un OCID conocido

En este ejemplo, la base de datos de IA autónoma se conecta a Data Catalog en la región uk-london-1. El parámetro catalog_id utiliza el identificador de Oracle Cloud (ocid) para la instancia de Data Catalog. El tipo de Data Catalog se determina automáticamente: AWS Glue Data Catalog o OCI Data Catalog.

BEGIN
  DBMS_DCAT.SET_DATA_CATALOG_CONN(
    region=>'uk-london-1',
    catalog_id=>'ocid1.datacatalog.oc1.uk-london-1...');
END;
/

Ejemplo: conexión a un catálogo de datos de AWS Glue

Una conexión es la asociación entre una instancia de base de datos de IA autónoma y un catálogo de datos de AWS Glue. Después de una conexión correcta, la instancia de la base de datos de IA autónoma puede sincronizarse con AWS Glue. Cada cuenta de AWS tiene un catálogo de datos de AWS Glue por región y se puede acceder a cada catálogo utilizando el punto final de servicio correspondiente para cada región. Una instancia de base de datos de IA autónoma se puede asociar a un catálogo de datos de AWS Glue llamando a la API DBMS_DCAT.SET_DATA_CATALOG_CONN y especificando el punto final de la región en la que reside el catálogo.

Consulte Puntos finales y cuotas de AWS Glue.

En este ejemplo, la base de datos de IA autónoma se conecta a un catálogo de datos de AWS Glue en la región uk-london-1. Debido a que se trata de una conexión de AWS Glue Data Catalog, el parámetro catalog_id no es necesario.

BEGIN
  DBMS_DCAT.SET_DATA_CATALOG_CONN(
    region=>'uk-london-1',
    catalog_type=>'AWS_GLUE'
END;
/

Ejemplos: conexión a un catálogo REST de Databricks Unity Iceberg

En este ejemplo, Autonomous AI Database se conecta a un catálogo REST de Databricks Unity Iceberg mediante un token de acceso personal (de larga duración).

DBMS_CLOUD.create_credential('MY_DATABRICKS_CRED','username', '<personal access token>');
DBMS_DCAT.set_data_catalog_credential(dcat_con_id=>'ICEBERG_CATALOG',credential_name=>'MY_DATABRICKS_CRED');
DBMS_DCAT.set_object_store_credential(dcat_con_id=>'ICEBERG_CATALOG',credential_name=>'SOMECRED');
DBMS_DCAT.set_data_catalog_conn (
  dcat_con_id  => 'ICEBERG_CATALOG',
  catalog_type => 'ICEBERG_UNITY',
  endpoint     => 'https://adb-...azuredatabricks.net/api/2.1/unity-catalog/iceberg/v1/');

En este ejemplo, Autonomous AI Database se conecta a un catálogo REST de Databricks Unity Iceberg con un principal de servicio mediante OAuth.

DBMS_CLOUD.create_credential('MY_DATABRICKS_SP_CRED','<client id for the service principal>', '<client secret for the service principal>');
DBMS_DCAT.set_data_catalog_credential(dcat_con_id=>'ICEBERG_CATALOG',credential_name=>'MY_DATABRICKS_SP_CRED');
DBMS_DCAT.set_object_store_credential(dcat_con_id=>'ICEBERG_CATALOG',credential_name=>'MY_OS_CRED');
DBMS_DCAT.set_data_catalog_conn (
  dcat_con_id    => 'ICEBERG_CATALOG',
  catalog_type   => 'ICEBERG_UNITY',
  endpoint       => 'https://adb-...azuredatabricks.net/api/2.1/unity-catalog/iceberg/v1',
  token_endpoint => 'https://adb-...azuredatabricks.net/oidc/v1/token');

Ejemplo: Conexión a un catálogo REST de Apache Polaris Iceberg

En este ejemplo, Autonomous AI Database se conecta a un catálogo REST de Apache Polaris Iceberg mediante OAuth.

DBMS_CLOUD.create_credential('MY_POLARIS_CRED','<client id>', '<client secret>');
DBMS_DCAT.set_data_catalog_credential(dcat_con_id=>'ICEBERG_CATALOG',credential_name=>'MY_POLARIS_CRED');
DBMS_DCAT.set_object_store_credential(dcat_con_id=>'ICEBERG_CATALOG',credential_name=>'SOMECRED');
DBMS_DCAT.set_data_catalog_conn (
  dcat_con_id    => 'ICEBERG_CATALOG',
  catalog_type   => 'ICEBERG_POLARIS',
  endpoint       => 'https://dev-iceberg.subnet...vcn...oraclevcn.com/api/catalog/v1/quickstart_catalog',
  token_endpoint => 'https://dev-iceberg.subnet...vcn...oraclevcn.com/api/catalog/v1/oauth/tokens');

UNSET_DATA_CATALOG_CONN Procedimiento

Este procedimiento elimina una conexión existente a Data Catalog.

Sintaxis

Nota

Al llamar a este procedimiento se borran todos los esquemas protegidos y las tablas externas que se han creado como parte de las sincronizaciones anteriores. No afecta a los metadatos de Data Catalog.
PROCEDURE DBMS_DCAT.UNSET_DATA_CATALOG_CONN (
    dcat_con_id IN VARCHAR2 DEFAULT NULL
);

Parámetros

Parámetro Descripción
dcat_con_id Identificador de conexión único de Data Catalog. El valor por defecto es Null.

Resumen de Subprogramas de Sincronización

La ejecución de una sincronización, la creación y el borrado de un trabajo de sincronización y el borrado de esquemas sincronizados se pueden realizar con los procedimientos que se muestran en esta tabla.

Nota

El 4 de abril de 2022, los parámetros sync_option y grant_read se agregaron al procedimiento DBMS_DCAT.RUN_SYNC. Para garantizar un rendimiento correcto de los trabajos de sincronización programados creados antes de esa fecha, debe borrar y volver a crear los trabajos de sincronización programados. Consulte Procedimiento DBMS_DCAT.DROP_SYNC_JOB y Procedimiento DBMS_DCAT.CREATE_SYNC_JOB.
Subprograma Descripción
CREATE_SYNC_JOB Procedimiento Crear un trabajo del programador para llamar a RUN_SYNC periódicamente
DROP_SYNC_JOB Procedimiento Borrar un trabajo de sincronización existente para el identificador de conexión único proporcionado
DROP_SYNCED_SCHEMAS Procedimiento Borrar todos los esquemas sincronizados previamente para el identificador de conexión único proporcionado
RUN_SYNC Procedimiento Ejecutar una operación de sincronización

RUN_SYNC Procedimiento

Este procedimiento ejecuta una operación de sincronización y es el punto de entrada de la sincronización. Como entrada, toma listas de activos, carpetas y entidades del catálogo de datos seleccionados y los materializa mediante la creación, el borrado y la modificación de tablas externas.

El parámetro sync_option especifica la operación que realiza el procedimiento RUN_SYNC: SYNC, DELETE o REPLACE. La operación se realiza en entidades dentro del ámbito del parámetro synced_objects.

Cada llamada al procedimiento RUN_SYNC devuelve un único operation_id que se puede utilizar para consultar la vista USER_LOAD_OPERATIONS para obtener información sobre el estado de la sincronización y el log_table correspondiente. Se puede consultar la vista DBMS_DCAT$SYNC_LOG para acceder fácilmente a log_table para la última operación de sincronización ejecutada por el usuario actual. Para obtener más información, consulte la vista DBMS_DCAT$SYNC_LOG y Supervisión y solución de problemas de cargas.

Nota

El 4 de abril de 2022, los parámetros sync_option y grant_read se agregaron al procedimiento RUN_SYNC. Para garantizar un rendimiento correcto de los trabajos de sincronización programados creados antes de esa fecha, debe borrar y volver a crear los trabajos de sincronización programados. Consulte Procedimiento DBMS_DCAT.DROP_SYNC_JOB y Procedimiento DBMS_DCAT.CREATE_SYNC_JOB.

Sincronización de Entidades Lógicas Particionadas o Tablas de Pegado

El procedimiento RUN_SYNC crea una tabla externa particionada para cada entidad lógica o tabla Glue cuando se aplican las tres de las siguientes opciones:

  1. La entidad lógica del catálogo de datos de OCI o la tabla Glue tienen uno o más atributos particionados.
  2. Para los catálogos de datos de OCI, la entidad lógica se deriva de un patrón de nombre de archivo basado en prefijos. Las entidades lógicas particionadas derivadas de patrones basados en expresiones regulares no están soportadas.
  3. Para los catálogos de datos de OCI, la entidad lógica se basa en datos particionados que siguen el formato de carpeta de tipo colmena o no colmada. Las entidades lógicas basadas en datos particionados que siguen el formato de estilo no dinámico con nombres de objeto no están soportadas.
    • Ejemplo 1. Entidades lógicas basadas en objetos recopilados que siguen el formato de partición de estilo de Hive con patrones de nombre de archivo basados en prefijos.

      Considere los siguientes objetos:
      Bucket: MYBUCKET
      cluster1/db1.db/sales/country=USA/year=2020/month=01/sales1.csv
      cluster1/db1.db/sales/country=USA/year=2020/month=01/sales2.csv
      cluster1/db1.db/sales/country=USA/year=2020/month=02/sales1.csv

      Al recopilar el cubo mediante un patrón de nombre de archivo con un prefijo de carpeta inicial cluster1/db1.db, se genera una entidad lógica denominada SALES con tres atributos de partición: country, year y month. El tipo de los atributos particionados es Partition mientras que el tipo de los atributos no particionados es Primitive.

    • Ejemplo 2. Entidades lógicas basadas en objetos recopilados que siguen el formato de partición de estilo no Hive con patrones de nombre de archivo basados en prefijos.
      Considere los siguientes objetos:
      Bucket: MYBUCKET
      cluster2/db2.db/sales/USA/2020/01/sales1.csv
      cluster2/db2.db/sales/USA/2020/01/sales2.csv
      cluster2/db2.db/sales/USA/2020/02/sales1.csv

      Al recopilar el cubo mediante un patrón de nombre de archivo con un prefijo de carpeta inicial cluster2/db2.db, se genera una entidad lógica denominada SALES con tres atributos de partición: name0, name1 y name2. La única diferencia entre la entidad lógica generada en comparación con el Ejemplo 1 es que los nombres de los atributos particionados se generan automáticamente, mientras que en el Ejemplo 1 se extraen de la URL (country, year y month respectivamente).

Para obtener un ejemplo completo de extremo a extremo de la sincronización de entidades lógicas particionadas, consulte Ejemplo: escenario de datos particionados.

Sincronización Incremental de Entidades Lógicas Particionadas/Tablas de Valores

Cada llamada al procedimiento RUN_SYNC especifica un juego de entidades lógicas del catálogo de datos de OCI o tablas de AWS Glue que se sincronizarán con la base de datos. Cuando una entidad lógica o tabla de pegado está presente en dos llamadas RUN_SYNC, la segunda llamada conserva y posiblemente modifica las tablas externas existentes. La siguiente tabla muestra qué cambios de entidad lógica o tabla de pegado están soportados cuando se particiona la entidad lógica o la tabla de pegado:

Cambio de entidad lógica o tabla de pegado Acción

Adición, eliminación o actualización de una partición

Todas las particiones de la tabla particionada externa se actualizan, independientemente de si el catálogo de datos ha detectado un cambio.

Adición de un atributo particionado

No está soportada la adición de una columna particionada a una tabla particionada externa. Se ha emitido una excepción.

Supresión de un atributo de partición

No está soportado borrar una columna particionada de una tabla particionada externa. Se ha emitido una excepción.

Cambio de Nombre de un Atributo Particionado

No se admite el cambio de nombre de una columna particionada en una tabla particionada externa. Se ha emitido una excepción.

Sintaxis

PROCEDURE DBMS_DCAT.RUN_SYNC (
    synced_objects   IN  CLOB,
    sync_option      IN VARCHAR2 DEFAULT 'SYNC',
    error_semantics  IN VARCHAR2 DEFAULT 'SKIP_ERRORS',
    log_level        IN VARCHAR2 DEFAULT 'INFO',
    grant_read       IN VARCHAR2 DEFAULT NULL,
    dcat_con_id      IN VARCHAR2 DEFAULT NULL
 );
PROCEDURE DBMS_DCAT.RUN_SYNC (
    synced_objects   IN  CLOB,
    sync_option      IN VARCHAR2 DEFAULT 'SYNC',
    error_semantics  IN VARCHAR2 DEFAULT 'SKIP_ERRORS',
    log_level        IN VARCHAR2 DEFAULT 'INFO',
    grant_read       IN VARCHAR2 DEFAULT NULL,
    operation_id     OUT NOCOPY NUMBER,
    dcat_con_id      IN VARCHAR2 DEFAULT NULL
 );

Parámetros

Parámetro Descripción

synced_objects

Este parámetro es un documento JSON que especifica los objetos del catálogo de datos que sincronizar.

Para OCI Data Catalogs, el documento JSON especifica un juego de entidades con varias granularidades: activos de datos, carpetas (cubos del almacén de objetos) o entidades lógicas. Contiene una asset_list que es una matriz de objetos de activos o una matriz que contiene una única cadena "*" que significa "sync all (object store) data assets en el catálogo".

Para los catálogos de datos de AWS Glue, el documento JSON especifica una lista de tablas con granularidad múltiple: bases de datos, tablas. El documento especifica una lista de bases de datos. Los usuarios pueden restringir el juego de tablas que se van a sincronizar especificando tablas individuales en una base de datos.

Para los catálogos de datos de Iceberg, el documento JSON especifica espacios de nombres y tablas.

sync_option (Opcional) Hay tres opciones:
  • SYNC (valor por defecto): esta opción garantiza que lo que hay en el catálogo de datos, en el ámbito synced_objects, se represente en la base de datos de IA autónoma. Si se ha suprimido una entidad lógica o una tabla de pegado del catálogo de datos desde la última operación de sincronización, se suprime en la base de datos de IA autónoma. Las siguientes operaciones se realizan en el ámbito synced_objects:
    • Agrega tablas para nuevas entidades del catálogo de datos
    • Elimina tablas para entidades suprimidas del catálogo de datos
    • Actualiza las propiedades (como nombre, columnas y tipos de dato) de las tablas existentes
  • DELETE: suprime las tablas dentro del ámbito synced_objects.
  • REPLACE: sustituye todos los objetos sincronizados actualmente por los objetos dentro del ámbito synced_objects.

error_semantics

(Opcional) Este parámetro especifica el comportamiento del error. Si se define en SKIP_ERRORS, la sincronización intenta continuar a pesar de los errores encontrados para entidades individuales. Si se define en STOP_ON_ERROR, el procedimiento falla en el primer error encontrado. El valor por defecto es SKIP_ERRORS.

log_level

(Opcional) Este parámetro especifica los siguientes valores para aumentar el nivel de detalle de registro: (OFF, FATAL, ERROR, WARN, INFO, DEBUG, TRACE, ALL). El valor por defecto es INFO.
grant_read (Opcional) Este parámetro es una lista de usuarios/roles a los que se otorgan automáticamente privilegios READ en todas las tablas externas procesadas por esta llamada de RUN_SYNC. A todos los usuarios/roles de la lista grant_read se les otorgan privilegios de lectura en todas las tablas externas nuevas o ya existentes que corresponden a entidades especificadas por el parámetro synced_objects. El procedimiento RUN_SYNC conserva los privilegios ya otorgados en las tablas externas sincronizadas.

operation_id

(Opcional) Este parámetro se utiliza para buscar la entrada correspondiente en USER_LOAD_OPERATIONS para la sincronización y determinar el nombre de la tabla de logs.

Nota: Hay disponible una versión de RUN_SYNC que no devuelve un valor operation_id para que los usuarios puedan consultar USER_LOAD_OPERATIONS para la última sincronización.

dcat_con_id Este parámetro es el identificador de conexión único del catálogo de datos que se especificó cuando se creó la conexión al catálogo de datos. Consulte DBMS_DCAT SET_DATA_CATALOG_CONN Procedure. Este parámetro identifica qué conexión se utiliza para la sincronización y se convierte en parte del nombre de esquema derivado. Consulte Asignación de Sincronización para obtener una descripción de cómo se deriva el nombre del esquema. El parámetro por defecto es NULL.

Ejemplo: sincronización de todas las entidades de OCI Data Catalog

En el siguiente ejemplo, se sincronizan todas las entidades de Data Catalog.

EXEC DBMS_DCAT.RUN_SYNC(synced_objects=>'{"asset_list":["*"]}');

Ejemplo: parámetro synced_objects para sincronizar todos los activos de datos de OCI Data Catalog

A continuación se muestra un parámetro synced_objects de ejemplo para sincronizar todos los activos de datos (Object Storage) en Data Catalog.

{"asset_list" : ["*"]}

Ejemplo: parámetro synced_objects para sincronizar activos de datos específicos de OCI Data Catalog

A continuación se muestra un parámetro synced_objects de ejemplo para sincronizar dos activos de datos.

{"asset_list": [
        {
            "asset_id":"...-9e2e7f78fd5f"
        },
        {
            "asset_id":"...-9e2e7f74523"
        }
    ]}

Ejemplo: parámetro synced_objects para sincronizar entidades específicas de OCI Data Catalog en un activo de datos

A continuación, se muestra un parámetro synced_objects de ejemplo para sincronizar dos entidades en el activo de datos.

{"asset_list": [
        {
            "asset_id":"...-9e2e7f78fd5f",
            "folder_list":[
                "f1",         
                "f2" 
           ]
        }   
    ]}

Ejemplo: parámetro synced_objects para sincronizar entidades y carpetas específicas de OCI Data Catalog en un activo de datos

A continuación, se muestra un parámetro synced_objects de ejemplo para sincronizar dos carpetas y dos entidades dentro del activo de datos.

{"asset_list":[
        {
            "asset_id":"...-9e2e7f78fd5f",
            "entity_list": [
                "entity1",     
                "entity2"
            ],
             "folder_list": [
                "f1",         
                "f2"
            ]
        }   
    ]}

Ejemplo: parámetro synced_objects para sincronizar todas las bases de datos del catálogo de datos de AWS Glue

A continuación, se muestra un parámetro synced_objects de ejemplo para sincronizar todas las bases de datos en el catálogo de datos de AWS Glue.

{"database_list":["*"]}

Ejemplo: parámetro synced_objects para sincronizar dos bases de datos del catálogo de datos de AWS Glue

A continuación, se muestra un parámetro synced_objects de ejemplo para sincronizar dos bases de datos de AWS Glue Data Catalog.

{"database_list":[
    {"database":"tpcdscsv"},
    {"database":"tpcdsparquet"} ]}

Ejemplo: parámetro synced_objects para sincronizar tres bases de datos del catálogo de datos de AWS Glue

A continuación, se muestra un parámetro synced_objects de ejemplo para sincronizar tres tablas desde una base de datos de AWS Glue Data Catalog.

{"database_list":[
 {"database":"tpcdsparquet",
     "table_list": [ "tpcdsparquet_customer",
                     "tpcdsparquet_item",
                     "tpcdsparquet_web_sales" ] } ]}

Ejemplo: llame a DBMS_DCAT.run_sync para sincronizar todos los espacios de nombres en un catálogo de Iceberg

Para un catálogo Iceberg, esta llamada de ejemplo sincroniza todos los espacios de nombres:

DBMS_DCAT.run_sync(
  dcat_con_id     => 'MY_ICEBERG_CON',
  synced_objects  => '{"namespace_list" : ["*"]}',
  sync_option     => 'SYNC',     
  error_semantics => 'STOP_ON_ERROR,     
  log_level       => 'DEBUG',     
  grant_read      => 'DB_USER');

Ejemplo: Llame a DBMS_DCAT.run_sync para sincronizar todas las tablas en un espacio de nombres Iceberg y algunas tablas en otro espacio de nombres Iceberg

Para un catálogo Iceberg, esta llamada de ejemplo sincroniza todas las tablas del espacio de nombres warehouse y tres tablas del espacio de nombres ["bigdata","tpcdsparquet"]:

DBMS_DCAT.run_sync(
  dcat_con_id     => 'MY_ICEBERG_CON',
  synced_objects  => '{"namespace_list": [
                          { "namespace": ["warehouse"] },
                          { "namespace": ["bigdata", "tpcdsparquet"],
                                "table_list": [ "tpcdsparquet_customer",
                                                "tpcdsparquet_item",
                                                "tpcdsparquet_web_sales" ] } ]}',
  sync_option     => 'SYNC',    
  error_semantics => 'STOP_ON_ERROR,    
  log_level       => 'DEBUG',    
  grant_read      => 'DB_USER');

CREATE_SYNC_JOB Procedimiento

Este procedimiento crea un trabajo del programador para llamar a RUN_SYNC periódicamente.

Toma como entrada el juego de objetos que se va a sincronizar, la semántica de error, el nivel de log y un intervalo de repetición. Consulte el procedimiento RUN_SYNC DBMS_DCAT para obtener más información sobre cómo funciona la sincronización.

Solo puede haber un único trabajo de sincronización. El procedimiento CREATE_SYNC_JOB falla si ya se ha especificado otro trabajo, a menos que el parámetro force se defina en TRUE. Si force se define en TRUE, se borra el trabajo anterior.

Si un trabajo del programador intenta ejecutarse mientras hay otra sincronización en curso, el trabajo del programador falla.

Nota

El 4 de abril de 2022, los parámetros sync_option y grant_read se agregaron al procedimiento RUN_SYNC. Para garantizar un rendimiento correcto de los trabajos de sincronización programados creados antes de esa fecha, debe borrar y volver a crear los trabajos de sincronización programados. Consulte Procedimiento DBMS_DCAT.DROP_SYNC_JOB y Procedimiento DBMS_DCAT.CREATE_SYNC_JOB.

Sintaxis

PROCEDURE DBMS_DCAT.CREATE_SYNC_JOB (
    synced_objects   IN CLOB,
    error_semantics  IN VARCHAR2 DEFAULT 'SKIP_ERRORS',
    log_level        IN VARCHAR2 DEFAULT 'INFO',
    repeat_interval  IN VARCHAR2,
    force            IN VARCHAR2 DEFAULT 'FALSE',
    grant_read       IN VARCHAR2 DEFAULT NULL,
    sync_option      IN VARCHAR2 DEFAULT 'SYNC',
    dcat_con_id      IN VARCHAR2 DEFAULT NULL
);

Parámetros

Parámetro Descripción

synced_objects

Un objeto JSON que especifica los objetos que se van a sincronizar, como se describe en el procedimiento RUN_SYNC. Consulte RUN_SYNC Procedure.

error_semantics

(Opcional) Comportamiento de error, según se especifica para RUN_SYNC. El valor por defecto es SKIP_ERRORS.

log_level

(Opcional) Nivel de registro, según se especifica para RUN_SYNC. El valor por defecto es INFO.

repeat_interval

Repita el intervalo para el trabajo, con la misma semántica que el parámetro de intervalo de repetición del procedimiento DBMS_SCHEDULER.CREATE_JOB. Para obtener más información sobre repeat_interval, consulte Visión general de la creación de trabajos.

force

(Opcional) Si es TRUE, los trabajos de sincronización existentes se suprimen primero. Si FALSE, el procedimiento CREATE_SYNC_JOB falla si ya existe un trabajo de sincronización. El valor por defecto es FALSE.

grant_read (Opcional) Lista de usuarios/roles a los que se debe otorgar lectura en las tablas externas sincronizadas, como se describe para el procedimiento RUN_SYNC. Consulte DBMS_DCAT.RUN_SYNC Procedure.
sync_option (Opcional) Comportamiento con respecto a las entidades que ya se han sincronizado mediante una operación RUN_SYNC anterior, como se describe para el procedimiento RUN_SYNC. Consulte DBMS_DCAT.RUN_SYNC Procedure.
dcat_con_id Este parámetro es el identificador de conexión único de Data Catalog que se especificó cuando se creó la conexión a Data Catalog. Consulte DBMS_DCAT SET_DATA_CATALOG_CONN Procedure. Este parámetro identifica qué conexión se utiliza para la sincronización y se convierte en parte del nombre de esquema derivado. Consulte Asignación de Sincronización para obtener una descripción de cómo se deriva el nombre del esquema. El parámetro por defecto es NULL.

DROP_SYNC_JOB Procedimiento

Este procedimiento borra un trabajo de sincronización existente para el identificador de conexión único proporcionado.

Sintaxis

PROCEDURE DBMS_DCAT.DROP_SYNC_JOB (
    dcat_con_id IN VARCHAR2 DEFAULT NULL
  );

Parámetros

Parámetro Descripción
dcat_con_id Identificador de conexión único de Data Catalog. El valor por defecto es NULL.

DROP_SYNCED_SCHEMAS Procedimiento

Este procedimiento borra todos los esquemas sincronizados previamente para el identificador de conexión único proporcionado.

Sintaxis

PROCEDURE DBMS_DCAT.DROP_SYNCED_SCHEMAS (
    dcat_con_id IN VARCHAR2 DEFAULT NULL
  );

Parámetros

Parámetro Descripción
dcat_con_id Identificador de conexión único de Data Catalog. El valor por defecto es NULL.

Resumen de vistas de Data Catalog

La integración de Data Catalog con Autonomous AI Database proporciona numerosas tablas y vistas.

Estas tablas y vistas ayudan a comprender:

  • Activos disponibles de Data Catalog. Obtenga información sobre cualquier tipo de activo de Data Catalog, incluidos bases de datos, almacenes de objetos y mucho más.
  • Información sobre los activos y las entidades de Object Storage de Data Catalog que se han sincronizado con Autonomous AI Database. Esto incluye detalles sobre cómo se asignan los elementos del catálogo de datos (activos, carpetas y entidades) a objetos de la base de datos de IA autónoma (es decir, esquemas y tablas externas).
  • Ejecuciones de sincronización de metadatos. Revise los detalles sobre los trabajos de sincronización, incluidas las incidencias que se hayan producido durante la sincronización.

En esta tabla se muestran las tablas y vistas proporcionadas por el paquete DBMS_DCAT.

Ver Descripción
ALL_CLOUD_CATALOG_DATABASES Vista Mostrar información sobre los activos de datos de OCI Data Catalog y las bases de datos de AWS Glue Data Catalog
ALL_CLOUD_CATALOG_TABLES Vista Se utiliza para mostrar información sobre las entidades de datos para los catálogos de datos y tablas de OCI para los catálogos de datos de AWS Glue
ALL_DCAT_ASSETS Vista Enumerar los activos de catálogo de datos a los que está autorizada esta base de datos
ALL_DCAT_ATTRIBUTES Vista Enumerar atributos de catálogo de datos a los que esta base de datos tiene autorización para acceder
ALL_DCAT_CONNECTIONS Vista Vista que contiene información sobre los catálogos de datos conectados a esta instancia
ALL_DCAT_ENTITIES Vista

Muestra las entidades lógicas a las que esta base de datos tiene autorización para acceder

ALL_DCAT_FOLDERS Vista Mostrar los metadatos de los cubos de Object Storage que contienen los archivos de datos de las entidades lógicas
ALL_DCAT_GLOBAL_ACCESSIBLE_CATALOGS Vista Mostrar todos los catálogos accesibles en todas las regiones, junto con el nivel de privilegios de acceso para cada catálogo
ALL_DCAT_LOCAL_ACCESSIBLE_CATALOGS Vista Enumerar todos los catálogos accesibles en la región actual, junto con el nivel de privilegios de acceso para cada catálogo
ALL_GLUE_DATABASES Vista Muestra las bases de datos de AWS Glue Data Catalog a las que tiene autorización para acceder la credencial de Data Catalog
ALL_GLUE_TABLES Vista Muestra todas las tablas de AWS Glue Data Catalog a las que la credencial de Data Catalog tiene autorización para acceder
DCAT_ATTRIBUTES Vista Enumerar la asignación de atributos de entidad lógica a columnas de tabla externa
DCAT_ENTITIES Vista Describe la asignación de entidades lógicas a tablas externas
Vista de DBMS_DCAT$SYNC_LOG Proporciona un acceso sencillo a la tabla de logs para la última operación de sincronización ejecutada por el usuario actual

ALL_CLOUD_CATALOG_DATABASES Vista

Utilice la vista ALL_CLOUD_CATALOG_DATABASES para mostrar información sobre los activos de datos de OCI Data Catalog y las bases de datos de AWS Glue Data Catalog.

Columna Descripción
DCAT_CON_ID CON1
CATALOG_ID Identificador único de catálogo de datos.

Ejemplo de OCI Data Catalog:

ocid1.datacatalog.oc1.ap-mumbai-1.….y35a

Ejemplo de AWS Glue Data Catalog:

NULL

579294766787

NAME Nombre del activo de datos (OCI)/base de datos (AWS Glue).

Ejemplo de OCI Data Catalog:

OBJECT_STORE_AT_ASHBURN

Ejemplo de AWS Glue Data Catalog:

OBJECT_STORE_AT_N_CALIFORNIA

DESCRIPTION Descripción del activo de datos (OCI)/base de datos (AWS Glue).

Ejemplo de OCI Data Catalog:

Data stored in S3 (N. California)

Ejemplo de AWS Glue Data Catalog:

Data stored in S3 (N. California)
TIME_CREATED Fecha y hora en que se creó el activo de datos (OCI) / las bases de datos (AWS Glue) en el catálogo de datos.

Ejemplo de OCI Data Catalog:

26-SEP-22 10.56.01.395000 PM +00:00

Ejemplo de AWS Glue Data Catalog:

2022-06-15T09:45:35+01:00

DETAILS Documento JSON con metadatos sobre cada entidad de datos (OCI) / base de datos (AWS Glue).

Ejemplo de OCI Data Catalog:

{
  "catalog-id": "ocid1.datacatalog.oc1.ap-mumbai-1.amaaa...",
  "description": null,
  "display-name": "OBJECT_STORE_AT_ASHBURN",
  "external-key": "https://swiftobjectstorage.us-ashburn-1....",
  "key": "bc95181c-3ac3-4959-9e5f-4e460d3fb82a",
  "lifecycle-state": "ACTIVE",
  "time-created": "2022-09-26T22:56:01.395000+00:00",
  "type-key": "3ea65bc5-f60d-477a-a591-f063665339f9",
  "uri": "/dcat/20190325/dataAssets/bc95181c-3ac3-4959-9e5f-4e460d3fb82a"
}

Ejemplo de AWS Glue Data Catalog:

{
    "Name": "dbmsdcatpoc",
    "Parameters": {
        "somekey": "somevalue"
    },
    "CreateTime": "2022-06-15T09:45:35+01:00",
    "CreateTableDefaultPermissions": [
        {
            "Principal": {
                "DataLakePrincipalIdentifier": "IAM_ALLOWED_PRINCIPALS"
            },
            "Permissions": [
                "ALL"
            ]
        }
    ],
    "CatalogId": "579294766787"
}

ALL_CLOUD_CATALOG_TABLES Vista

La vista ALL_CLOUD_CATALOG_TABLES se utiliza para mostrar información sobre las entidades de datos de los catálogos de datos de OCI y las tablas de los catálogos de datos de AWS Glue.

Columna Descripción
DCAT_CON_ID Identificador único del catálogo de datos. ID de conexión.

Ejemplo de OCI Data Catalog: CON1

Ejemplo de catálogo de datos de AWS Glue: CON1

CATALOG_ID Identificador único de catálogo de datos.

Ejemplo de OCI Data Catalog: ocid1.datacatalog.oc1.ap-mumbai-1.….y35a

Ejemplo de catálogo de datos de AWS Glue: NULL

579294766787

DATABASE_NAME Nombre del activo de datos (OCI)/base de datos (AWS Glue).

Ejemplo de OCI Data Catalog: OBJECT_STORE_AT_ASHBURN

Ejemplo de catálogo de datos de AWS Glue: OBJECT_STORE_AT_N_CALIFORNIA

NAME Nombre de la entidad de datos (OCI) / tabla (AWS Glue).

Ejemplo de OCI Data Catalog: BIKES_TRIPS

Ejemplo de catálogo de datos de AWS Glue: BIKES_TRIPS

DESCRIPTION Descripción de la entidad de datos (OCI) / tabla (AWS Glue).

Ejemplo de OCI Data Catalog: Table storing bike trips

Ejemplo de AWS Glue Data Catalog: Table storing bike trips

TIME_CREATED Fecha y hora en que se creó la entidad de datos (OCI)/tabla (AWS Glue) en el catálogo de datos.

Ejemplo de OCI Data Catalog: 26-SEP-22 10.56.01.395000 PM +00:00

Ejemplo de AWS Glue Data Catalog: 2022-06-15T09:45:35+01:00

TIME_UPDATED La última vez que se realizó un cambio en la entidad de datos (OCI) / tabla (AWS Glue).

Ejemplo de OCI Data Catalog: 26-SEP-22 10.56.01.395000 PM +00:00

Ejemplo de AWS Glue Data Catalog: 2022-06-15T09:45:35+01:00

DETAILS Documento JSON con metadatos sobre cada entidad de datos (OCI) / tabla (AWS Glue)

Ejemplo de OCI Data Catalog:

{  
  "business-name": null,
  "data-asset-key": "bc95181c-3ac3-4959-9e5f-...",
  "description": null,
  "display-name": "bikes_trips",
  "external-key": "LE: https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/..._trips",
  "folder-key": "9c4b542d-d6eb-4b83-bf59-...",
  "folder-name": "hive",
  "is-logical": true,
  "is-partition": false,
  "key": "fde30a69-a07c-478a-ab62-...",
  "lifecycle-state": "ACTIVE",
  "object-storage-url": "https://objectstorage.us-ashburn-1.oraclecloud.com/n/...",
  "path": "OBJECT_STORE_AT_ASHBURN/hive/hive",
  "pattern-key": "db21b3f1-1508-4045-aa80-...",
  "properties": {
    "default": {
      "CONTENT-LENGTH": "4310321",
      "LAST-MODIFIED": "Fri, 9 Oct 2020 20:16:52 UTC",
      "archivedPECount": "0",
      "dataEntityExpression": "{logicalEntity:[^/]+}.db/{logicalEntity:[^/]+}/.*",
      "harvestedFile": "bikes.db/trips/p_start_month=2019-09/000000_0",
      "patternName": "bikes_trips"
    },
    "harvestProps": {
      "characterset": "UTF8",
      "compression": "none",
      "type": "PARQUET"
    }
  },
  "realized-expression": "bikes.db/trips/.*",
  "time-created": "2022-09-26T22:56:35.063000+00:00",
  "time-updated": "2022-09-26T22:56:35.063000+00:00",
  "type-key": "6753c3af-7f88-44b9-be52-1d57bef462fb",
  "updated-by-id": "ocid1.user.oc1..r5l3tov7a",
  "uri": "/dcat/20190325/dataAssets/bc95181c-3ac3-4959-9e5f-..."
}

Ejemplo de catálogo de datos de AWS Glue:

{
    "Name": "bikes_trips",
    "DatabaseName": "dbmsdcatpoc",
    "Owner": "owner",
    "CreateTime": "2022-06-23T13:24:20+01:00",
    "UpdateTime": "2022-06-23T13:24:20+01:00",
    "LastAccessTime": "2022-06-23T13:24:20+01:00",
    "Retention": 0,
    "StorageDescriptor": {
        "Columns": [
            {
                "Name": "trip_duration",
                "Type": "int"
            },
            {
                "Name": "start_month",
                "Type": "string"
            }, ...
        ],
        "Location": "s3://dbmsdcatpoc/hive/bikes.db/trips/",
        "InputFormat": "org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat",
        "OutputFormat": "org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat",
        "Compressed": false,
        "NumberOfBuckets": -1,
        "SerdeInfo":
 {            "SerializationLibrary": "org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe",
            "Parameters": {
                "serialization.format": "1"
            }
        },
        "BucketColumns": [],
        "SortColumns": [],
        "Parameters": {
            "CrawlerSchemaDeserializerVersion": "1.0",
            "CrawlerSchemaSerializerVersion": "1.0",
            "UPDATED_BY_CRAWLER": "crawler-bikes",
            "averageRecordSize": "86",
            "classification": "parquet",
            "compressionType": "none",
            "objectCount": "12",
            "recordCount": "404947",
            "sizeKey": "35312159",
            "typeOfData": "file"
        },
        "StoredAsSubDirectories": false
    },
    "PartitionKeys": [
        {
            "Name": "p_start_month",
            "Type": "string"
        }
    ],
    "TableType": "EXTERNAL_TABLE",
    "Parameters": {
        "CrawlerSchemaDeserializerVersion": "1.0",
        "CrawlerSchemaSerializerVersion": "1.0",
        "UPDATED_BY_CRAWLER": "crawler-bikes",
        "averageRecordSize": "86",
        "classification": "parquet",
        "compressionType": "none",
        "objectCount": "12",
        "recordCount": "404947",
        "sizeKey": "35312159",
        "typeOfData": "file"
    },
    "CreatedBy": "arn:aws:sts::579294766787:assumed-role/AWSGlueServiceRole-dbmsdcat/AWS-Crawler",
    "IsRegisteredWithLakeFormation": false,
    "CatalogId": "579294766787",
    "VersionId": "0"
}

Ejemplo

ALL_DCAT_ASSETS Vista

Activos de Data Catalog a los que esta base de datos tiene autorización para acceder.

Columna Tipo de dato Descripción
DCAT_CON_ID VARCHAR2 (4000) Identificador de conexión único en la instancia

KEY

VARCHAR2(4000)

Clave de activo

DISPLAY_NAME VARCHAR2(4000) Nombre mostrado de activo
DESCRIPTION VARCHAR2(4000) Descripción de activo
CATALOG_ID VARCHAR2(4000) OCID del catálogo de datos que contiene el activo
EXTERNAL_KEY VARCHAR2(4000) URI de almacenamiento de objetos base para el activo
URI VARCHAR2(4000) URI de activo para la API de Data Catalog
TIME_CREATED TIMESTAMP(6) WITH TIMEZONE Fecha y hora en que se creó el activo de datos
TYPE_KEY VARCHAR2(4000) Clave del tipo de activo de datos (actualmente, solo están soportados los activos de datos de Object Storage). Las claves de tipo se pueden encontrar mediante el punto final del catálogo de datos '/types'.
LIFECYCLE_STATE VARCHAR2(4000) Estado actual del activo de datos. Para obtener más información sobre los posibles estados del ciclo de vida, consulte la Referencia de DataAsset de Data Catalog para obtener una lista de los posibles estados de lifecycleState.

ALL_DCAT_ATTRIBUTES Vista

Atributos del catálogo de datos a los que está autorizada esta base de datos.

Columna Tipo de dato Descripción
DCAT_CON_ID VARCHAR2 (4000) Identificador de conexión único en la instancia
KEY NUMBER Clave de atributo

DISPLAY_NAME

VARCHAR2(4000)

Nombre Mostrado del Atributo

BUSINESS_NAME VARCHAR2(4000) Nombre de negocio de atributo
DESCRIPTION VARCHAR2(4000) Descripción de atributo
DATA_ASSET_KEY VARCHAR2(4000) Clave de activo de datos
FOLDER_KEY VARCHAR2(4000) Clave de carpeta
ENTITY_KEY VARCHAR2(4000) Clave de entidad
EXTERNAL_KEY VARCHAR2(4000) Clave externa única para el atributo
LENGTH NUMBER Longitud máxima permitida del valor de atributo
PRECISION NUMBER Precisión del valor de atributo (normalmente se aplica al tipo de dato flotante)
SCALE NUMBER Escala del valor de atributo (normalmente se aplica al tipo de dato flotante)
IS_NULLABLE NUMBER Identifica si se pueden asignar valores nulos a este atributo
URI VARCHAR2(4000) URI de la instancia de atributo en la API de Data Catalog
LIFECYCLE_STATE VARCHAR2(4000) El estado actual del atributo. Para obtener más información sobre los posibles estados del ciclo de vida, consulte la Referencia de atributos de Data Catalog para obtener una lista de los posibles estados de lifecycleState.
TIME_CREATED TIMESTAMP(6) WITH TIME ZONE Fecha y hora de creación del atributo
EXTERNAL_DATA_TYPE VARCHAR2(4000) Tipo de datos del atributo según se define en el sistema externo
MIN_COLLECTION_COUNT NUMBER Número mínimo de elementos, si el tipo de atributo es un tipo de recopilación
MAX_COLLECTION_COUNT NUMBER Número máximo de elementos, si el tipo del atributo es un tipo de recopilación
DATATYPE_ENTITY_KEY VARCHAR2(4000) Clave de entidad que representa el tipo de dato de este atributo, aplicable si este atributo es un tipo complejo
EXTERNAL_DATATYPE_ENTITY_KEY VARCHAR2(4000) Clave de entidad externa que representa el tipo de dato de este atributo, aplicable si este atributo es un tipo complejo
PARENT_ATTRIBUTE_KEY VARCHAR2(4000) Clave de atributo que representa el atributo principal de este atributo, aplicable si el atributo principal es de tipo de dato complejo
EXTERNAL_PARENT_ATTRIBUTE_KEY VARCHAR2(4000) Clave de atributo externo que representa el atributo principal de este atributo, aplicable si el atributo principal es de tipo complejo
PATH VARCHAR2(4000) Ruta de acceso completa del atributo

ALL_DCAT_CONNECTIONS Vista

Vista que contiene información sobre los catálogos de datos conectados a esta instancia.

Columna Tipo de dato Descripción
DCAT_CON_ID VARCHAR2(4000) Identificador de conexión único en la instancia
COMPARTMENT_ID VARCHAR2(4000) OCID del compartimento en el que reside la instancia de Data Catalog
INSTANCE_ID VARCHAR2(4000)

OCID para la instancia de Catálogo de datos

REGION

VARCHAR2(4000)

Región para la instancia de Catálogo de datos

ENDPOINT VARCHAR2(4000) Punto final para la instancia de Catálogo de datos
CREATED TIMESTAMP Cuando se creó la instancia de Data Catalog
NAME VARCHAR2(4000) Nombre de la instancia del catálogo de datos
LAST_UPDATED TIMESTAMP Registro de hora de la última actualización de la conexión a la instancia de Data Catalog
LATEST_OPERATION_ID NUMBER ID de la última operación de sincronización
DATA_CATALOG_CREDENTIAL VARCHAR2(128) Credencial utilizada para acceder al catálogo de datos
OBJECT_STORE_CREDENTIAL VARCHAR2(128) Credencial utilizada por el controlador de tabla externa para acceder al almacén de objetos

ALL_DCAT_ENTITIES Vista

Entidades lógicas de Data Catalog a las que esta base de datos tiene autorización para acceder.

Columna Tipo de dato Descripción
DCAT_CON_ID VARCHAR2(4000) Identificador de conexión único en la instancia
CATALOG_ID VARCHAR2(4000) OCID del catálogo de datos que contiene el activo

KEY

VARCHAR2(4000)

Clave de entidad

DISPLAY_NAME VARCHAR2(4000)

Nombre mostrado de la entidad

BUSINESS_NAME VARCHAR2(4000)

Nombre de negocio de entidad

DESCRIPTION VARCHAR2(4000)

Descripción de entidad lógica

DATA_ASSET_KEY

VARCHAR2(4000)

Clave de activo

FOLDER_KEY

VARCHAR2(4000)

Clave única de carpeta

FOLDER_NAME VARCHAR2(4000) Nombre de carpeta (cubo)
EXTERNAL_KEY VARCHAR2(4000) Clave externa para la entidad lógica
PATTERN_KEY VARCHAR2(4000) Clave del patrón asociado para la entidad lógica
REALIZED_EXPRESSION VARCHAR2(4000) Expresión regular utilizada para obtener los archivos de esta entidad lógica
PATH VARCHAR2(4000) Ruta de acceso completa para la entidad lógica
TIME_CREATED TIMESTAMP(6) WITH TIME ZONE Fecha y hora de creación de la entidad
TIME_UPDATED TIMESTAMP(6) WITH TIME ZONE Última vez que se realizó un cambio en la entidad de datos
UPDATED_BY_ID VARCHAR2(4000) OCID del usuario que ha actualizado este objeto en Data Catalog
URI VARCHAR2(4000) URI de la instancia de entidad en la API
LIFECYCLE_STATE VARCHAR2(4000) El estado actual de la entidad. Para obtener más información sobre los posibles estados del ciclo de vida, consulte la Referencia de entidad de Data Catalog para obtener una lista de los posibles estados de lifecycleState.

ALL_DCAT_FOLDERS Vista

Metadatos para los cubos de Object Storage que contienen los archivos de datos para las entidades lógicas.

Columna Tipo de dato Descripción
DCAT_CON_ID VARCHAR2(4000) Identificador de conexión único en la instancia
CATALOG_ID VARCHAR2(4000) OCID del catálogo de datos que contiene el activo

KEY

VARCHAR2(4000)

Clave de carpeta

DISPLAY_NAME

VARCHAR2(4000)

Nombre mostrado de carpeta

BUSINESS_NAME VARCHAR2(4000) Nombre de negocio de carpeta
DESCRIPTION VARCHAR2(4000) Descripción de carpeta
DATA_ASSET_KEY VARCHAR2(4000) Clave para el activo de datos que contiene la carpeta
PARENT_FOLDER_KEY VARCHAR2(4000) Clave de la carpeta principal (actualmente, esta es la clave del activo de datos)
PATH VARCHAR2(4000) Ruta de acceso completa para la carpeta
EXTERNAL_KEY VARCHAR2(4000) URI de Object Storage para el cubo
TIME_EXTERNAL TIMESTAMP(6) WITH TIMEZONE Registro de hora de la última modificación de esta carpeta
TIME_CREATED TIMESTAMP(6) WITH TIMEZONE Fecha y hora en las que se creó la carpeta
URI VARCHAR2(4000) URI de la instancia de carpeta en la API de Data Catalog.
LIFECYCLE_STATE VARCHAR2(4000) Estado actual de la carpeta. Para obtener más información sobre los posibles estados del ciclo de vida, consulte Referencia de carpetas de Data Catalog para obtener una lista de los posibles estados de lifecycleState.

ALL_DCAT_GLOBAL_ACCESSIBLE_CATALOGS Vista

Esta vista muestra todos los catálogos a los que se puede acceder en todas las regiones, junto con el nivel de privilegios de acceso para cada catálogo.

Columna Tipo de dato Descripción

CATALOG_ID

VARCHAR2(4000)

OCID de catálogo

CATALOG_NAME VARCHAR2(4000) Nombre del catálogo
CATALOG_REGION VARCHAR2(4000) Nombre de la región del catálogo
CATALOG_SCORE NUMBER La puntuación del catálogo es un valor numérico calculado a partir de los privilegios configurados para la credencial de acceso a Data Catalog. Una puntuación de catálogo más alta significa mayores privilegios, lo que puede equivaler a una mayor probabilidad de que este catálogo se utilice con esta instancia de base de datos de IA autónoma.

ALL_DCAT_LOCAL_ACCESSIBLE_CATALOGS Vista

Esta vista muestra todos los catálogos a los que se puede acceder en la región actual, junto con el nivel de privilegios de acceso para cada catálogo.

Columna Tipo de dato Descripción

CATALOG_ID

VARCHAR2(4000)

OCID de catálogo

CATALOG_NAME VARCHAR2(4000) Nombre del catálogo
CATALOG_SCORE NUMBER La puntuación del catálogo es un valor numérico calculado a partir de los privilegios configurados para la credencial de acceso a Data Catalog. Una puntuación de catálogo más alta significa mayores privilegios, lo que puede equivaler a una mayor probabilidad de que este catálogo se utilice con esta instancia de base de datos de IA autónoma.

ALL_GLUE_DATABASES Vista

Bases de datos de AWS Glue Data Catalog a las que tiene autorización para acceder la credencial de Data Catalog.

Columna Tipo de datos Descripción
DCAT_CON_ID VARCHAR2(4000) Identificador único del ID de conexión del catálogo de datos.
CATALOG_ID VARCHAR2(255) Identificador único de Data Catalog.
NAME VARCHAR2(255) Nombre de la base de datos.
DESCRIPTION VARCHAR2(2048) Descripción de la base de datos.
LOCATION_URI VARCHAR2(1024) Ubicación de la base de datos.
CREATE_TIME TIMESTAMP Hora a la que se creó la base de datos en el catálogo de datos.
PARAMETERS CLOB Documento JSON con pares clave-valor que definen parámetros y propiedades de la base de datos.
TARGET_DATABASE VARCHAR2(4000) Documento JSON que describe una base de datos de destino para el enlace de recursos en AWS.

ALL_GLUE_TABLES Vista

Esta vista muestra todas las tablas de AWS Glue Data Catalog a las que la credencial de Data Catalog tiene autorización para acceder.

Columna Tipo de datos Descripción
DCAT_CON_ID VARCHAR2(4000) Identificador único del ID de conexión del catálogo de datos.
CATALOG_ID VARCHAR2(255) Identificador del catálogo
DATABASE_NAME VARCHAR2(255) Nombre de la base de datos
NAME VARCHAR2(255) Nombre de tabla
TABLE_TYPE VARCHAR2(255) Tipo de Tabla
CLASSIFICATION VARCHAR2(255)  
DESCRIPTION VARCHAR2(2048) Descripción de tabla
OWNER VARCHAR2(255) Propietario de tabla
CREATED_BY VARCHAR2(255) Creador de tabla
CREATE_TIME TIMESTAMP Hora a la que se creó la tabla en el catálogo de datos.
LAST_ANALYZED_TIME TIMESTAMP La última vez que se calcularon estadísticas de columna para esta tabla.
LAST_ACCESS_TIME TIMESTAMP La última vez que se accedió a la tabla.
UPDATE_TIME TIMESTAMP La última vez que se actualizó la tabla.
IS_REGISTERED_WITH_LAKE_FORMATION NUMBER Indica si la tabla está registrada con la formación de lago de AWS.
PARAMETERS CLOB Documento JSON con pares clave-valor que definen las propiedades de la tabla.
PARTITION_KEYS CLOB Documento JSON con una lista de columnas por las que se particiona la tabla.
RETENTION NUMBER Tiempo de retención de esta tabla.
STORAGE_DESCRIPTION CLOB Documento JSON con información sobre el almacenamiento físico de una tabla.
TARGET_TABLE VARCHAR2(4000) Documento JSON que describe una tabla de destino utilizada para el enlace de recursos en AWS.
VERSION_ID VARCHAR2(255) Identificador de versión de la tabla.
VIEW_EXPANDED_TEXT CLOB Introducido por AWS Glue para la compatibilidad con Hive. No lo utiliza AWS Glue.
VIEW_ORIGINAL_TEXT CLOB Introducido por AWS Glue para la compatibilidad con Hive. No lo utiliza AWS Glue.

DCAT_ATTRIBUTES Vista

Muestra la asignación de atributos de entidad lógica a columnas de tabla externa.

Columna Tipo de dato Descripción
DCAT_CON_ID VARCHAR2 (4000) Identificador de conexión único en la instancia
ASSET_KEY VARCHAR2(4000) Clave de activo de Data Catalog

ENTITY_KEY

VARCHAR2(4000)

Clave de entidad de catálogo de datos

ATTRIBUTE_KEY

VARCHAR2(4000)

Clave de atributo de catálogo de datos

ORACLE_COLUMN_NAME VARCHAR2(128) Nombre de columna asignado

DCAT_ENTITIES Vista

Describe la asignación de entidades lógicas a tablas externas.

Columna Tipo de dato Descripción
DCAT_CON_ID VARCHAR2(4000) Identificador de conexión único en la instancia
ASSET_KEY VARCHAR2(4000) Clave de activo de Data Catalog

ENTITY_KEY

VARCHAR2(4000)

Clave de entidad de catálogo de datos

FOLDER_KEY

VARCHAR2(4000)

Clave de carpeta de catálogo de datos

ORACLE_TABLE_NAME VARCHAR2(128) Nombre de tabla asignada
ORACLE_SCHEMA_NAME VARCHAR2(128) Nombre de esquema asignado
ENTITY_ORACLE_DB_SCHEMA VARCHAR2(4000) Propiedad personalizada de oracle-db-schema de la entidad utilizada para derivar el esquema
ASSET_ORACLE_DB_SCHEMA VARCHAR2(4000) Propiedad personalizada oracle-db-schema del activo de datos que se utiliza para derivar el esquema
FOLDER_ORACLE_DB_SCHEMA VARCHAR2(4000) Propiedad personalizada de oracle-db-schema de la carpeta utilizada para derivar el esquema

Vista de DBMS_DCAT$SYNC_LOG

La vista DBMS_DCAT$SYNC_LOG proporciona un acceso sencillo a la tabla de logs para la última operación de sincronización ejecutada por el usuario actual.

Cada llamada al procedimiento RUN_SYNC se registra en una nueva tabla de log, a la que apunta el campo LOGFILE_TABLE de USER_LOAD_OPERATIONS. Las tablas de log se borran automáticamente después de 2 días y los usuarios pueden borrar todos los logs de sincronización mediante el procedimiento DELETE_ALL_OPERATIONS, donde el tipo es DCAT_SYNC.

La vista DBMS_DCAT$SYNC_LOG identifica automáticamente la tabla de log más reciente. El esquema de la vista DBMS_DCAT$SYNC_LOG se describe a continuación y los permisos de acceso son idénticos a los de las tablas de log individuales. Por defecto, READ se otorga al rol dbms_dcat y al usuario ADMIN.

Las tablas de log tienen el siguiente formato:

Columna Tipo de dato Descripción

LOG_TIMESTAMP

TIMESTAMP

Indicador de fecha y hora para la entrada de log.

LOG_LEVEL

VARCHAR2(32)

El nivel de log de entrada puede tener uno de los siguientes valores: OFF, FATAL, ERROR, WARN, INFO, DEBUG, TRACE, ALL.

LOG_DETAILS VARCHAR2(32767) Mensaje de log.