Consulta de datos externos con Data Catalog

Oracle Cloud Infrastructure Data Catalog es el servicio de gestión de metadatos de Oracle Cloud que le ayuda a detectar datos y a soportar la gobernanza de datos. Proporciona un inventario de activos, un glosario de negocio y un metastore común para lagos de datos.

Autonomous Database puede aprovechar estos metadatos para simplificar drásticamente la gestión para acceder al almacén de objetos de su lago de datos. En lugar de definir tablas externas manualmente para acceder al lago de datos, utilice las tablas externas que se definen y gestionan automáticamente. Estas tablas se encontrarán en los esquemas protegidos de Autonomous Database que se mantienen actualizados con los cambios en Data Catalog.

Para obtener más información sobre Data Catalog, consulte la documentación de Data Catalog.

Acerca de las consultas con Data Catalog

Mediante la sincronización con los metadatos de Data Catalog, Autonomous Database crea automáticamente tablas externas para cada entidad lógica que recopile Data Catalog. Estas tablas externas se definen en los esquemas de base de datos que gestiona completamente el proceso de sincronización de metadatos. Los usuarios pueden consultar datos inmediatamente sin tener que derivar manualmente el esquema (columnas y tipos de datos) para orígenes de datos externos y crear manualmente tablas externas.

La sincronización es dinámica y permite mantener la actualización de Autonomous Database con respecto a los cambios en los datos subyacentes, lo que reduce el costo de administración, ya que mantiene automáticamente cientos a miles de tablas. También permite que varias instancias de Autonomous Database compartan el mismo Data Catalog, lo que reduce aún más los costos de gestión y proporciona un juego común de definiciones de negocio.

Los bloques o las carpetas de Data Catalog son contenedores que se sincronizan con los esquemas de Autonomous Database. Las entidades lógicas de esas carpetas o cubos se asignan a tablas externas de Autonomous Database. Estos esquemas y tablas externas se generan y mantienen automáticamente mediante el proceso de sincronización:

  • Las carpetas o los cubos se asignan a esquemas de base de datos que solo tienen fines organizativos.
  • La organización está diseñada para ser coherente con el lago de datos y minimizar la confusión al acceder a los datos a través de diferentes rutas.
  • Data Catalog es la fuente de datos de las tablas incluidas en los esquemas. Los cambios realizados en Data Catalog actualizarán las tablas del esquema durante una sincronización posterior.

Para utilizar esta capacidad, un administrador de Data Catalog de base de datos inicia una conexión a una instancia de Data Catalog, selecciona los activos de datos y las entidades lógicas que se van a sincronizar y ejecuta la sincronización. El proceso de sincronización crea esquemas y tablas externas en función de los activos de datos y las entidades lógicas seleccionados y recopilados de Data Catalog. Tan pronto como se crean las tablas externas, los analistas de datos pueden empezar a consultar sus datos sin tener que derivar manualmente el esquema para los orígenes de datos externos y crear tablas externas.

Nota

El paquete DBMS_DCAT está disponible para realizar las tareas necesarias para consultar los activos de datos del almacén de objetos de Data Catalog. Consulte Paquete DBMS_DCAT.

Conceptos relacionados con las consultas con Data Catalog

Es necesario comprender los siguientes conceptos para consultar con Data Catalog.

Catálogo de datos

Data Catalog recopila activos de datos que apuntan a los orígenes de datos del almacén de objetos que desea consultar con Autonomous Database. En Data Catalog, puede especificar cómo se organizan los datos durante la recogida, soportando diferentes patrones de organización de archivos. Como parte del proceso de recogida de Data Catalog, puede seleccionar los cubos y archivos que desea gestionar en el activo. Para obtener más información, consulte Descripción general de Data Catalog.

Almacenes de Objetos

Los almacenes de objetos tienen cubos que contienen una variedad de objetos. Algunos tipos comunes de objetos encontrados en estos cubos incluyen: archivos CSV, parquet, avro, json y ORC. Los bloques suelen tener una estructura o un patrón de diseño para los objetos que contienen. Hay muchas formas diferentes de estructurar los datos y muchas formas diferentes de interpretar estos patrones.

Por ejemplo, un patrón de diseño típico utiliza carpetas de nivel superior que representan tablas. Los archivos de una carpeta determinada comparten el mismo esquema y contienen datos para esa tabla. Las subcarpadas se suelen utilizar para representar particiones de tabla (por ejemplo, una subcarpeta para cada día). Data Catalog hace referencia a cada carpeta de nivel superior como una entidad lógica y esta entidad lógica se asigna a una tabla externa de Autonomous Database.

Conexión

Una conexión es una conexión de Autonomous Database a una instancia de Data Catalog. Para cada instancia de Autonomous Database puede haber conexiones a varias instancias de Data Catalog. La credencial de Autonomous Database debe tener derechos para acceder a los activos de Data Catalog que se hayan recopilado desde el almacenamiento de objetos.

Recogida

Un proceso de Data Catalog que explora el almacenamiento de objetos y genera las entidades lógicas a partir de los juegos de datos.

Activo de datos

Un activo de datos de Data Catalog representa un origen de datos, que incluye bases de datos, Oracle Object Storage, Kafka, etc. Autonomous Database aprovecha los activos de Oracle Object Storage para la sincronización de metadatos.

Entidad de datos

Una entidad de datos de Data Catalog es una recopilación de datos, como una tabla o una vista de base de datos, o un único archivo, y normalmente tiene muchos atributos que describen los datos.

Entidad lógica

En los lagos de datos, muchos archivos normalmente constan de una única entidad lógica. Por ejemplo, puede tener archivos de flujo de clics diarios y estos archivos comparten el mismo esquema y tipo de archivo.

Una entidad lógica de Data Catalog es un grupo de archivos de Object Storage que se derivan durante la recogida mediante la aplicación de patrones de nombre de archivo que se han creado y asignado a un activo de datos.

Objeto de Datos

Un objeto de datos en Data Catalog hace referencia a activos de datos y entidades de datos.

Patrón de nombre de archivo

En un lago de datos, los datos se pueden organizar de distintas formas. Normalmente, las carpetas capturan archivos del mismo esquema y tipo. Debe registrarse en Data Catalog para saber cómo se organizan los datos. Los patrones de nombre de archivo se utilizan para identificar cómo se organizan los datos. En Data Catalog, puede definir patrones de nombre de archivo mediante expresiones regulares. Cuando Data Catalog recopila un activo de datos con un patrón de nombre de archivo asignado, se crean entidades lógicas basadas en el patrón de nombre de archivo. Al definir y asignar estos patrones a los activos de datos, se pueden agrupar varios archivos como entidades lógicas basadas en el patrón de nombre de archivo.

Sincronizar (sinc)

Autonomous Database realiza sincronizaciones con Data Catalog para mantener automáticamente actualizada su base de datos con respecto a los cambios en los datos subyacentes. La sincronización se puede realizar manualmente o según un programa.

El proceso de sincronización crea esquemas y tablas externos basados en los activos de datos y las entidades lógicas de Data Catalog. Estos esquemas están protegidos, lo que significa que sus metadatos los gestiona Data Catalog. Si desea modificar los metadatos, debe realizar los cambios en Data Catalog. Los esquemas de Autonomous Database reflejarán cualquier cambio después de ejecutar la siguiente sincronización. Para obtener más información, consulte Asignación de sincronizaciones.

Asignación de sincronizaciones

El proceso de sincronización crea y actualiza esquemas y tablas externos de Autonomous Database basados en activos de datos, carpetas, entidades lógicas, atributos y sustituciones personalizadas relevantes de Data Catalog.

Catálogo de datos Autonomous Database Descripción de Asignación

Activo de datos y carpeta (bloque de almacenamiento de objetos)

Nombre del Esquema

Valores por defecto:

Por defecto, el nombre de esquema generado en Autonomous Database tiene el siguiente formato:

DCAT$<dcat-con-id>_<data-asset-name>_<folder-name>

  • dcat-con-id es el identificador de conexión único de Data Catalog. Para obtener más información sobre la especificación de este identificador, consulte el parámetro dcat_con_id en el procedimiento DBMS_DCAT RUN_SYNC.
  • data-asset-name es el nombre del activo de datos de Data Catalog.
  • folder-name es el nombre de carpeta de Data Catalog. Esta carpeta se asigna a un cubo de almacenamiento de objetos.

Personalizaciones:

Los valores por defecto data-asset-name y folder-name se pueden personalizar definiendo propiedades personalizadas, nombres de negocio y nombres mostrados para sustituir estos nombres por defecto.
  • data-asset-name se puede sobrescribir definiendo la propiedad personalizada oracle-db-schema-prefix para el activo de datos en Data Catalog.
  • folder-name se puede sobrescribir definiendo la propiedad personalizada oracle-db-schema para la carpeta en Data Catalog, un nombre de negocio o un nombre mostrado. Los siguientes atributos se utilizan en orden de prioridad para generar folder-name:
    1. Propiedad personalizada oracle-db-schema
    2. Nombre del Negocio
    3. Nombre mostrado

Ejemplos:

  • Si el ID de conexión es DataModels, el nombre del activo es ObjectStorage, el nombre de la carpeta es HR y no hay sustituciones de propiedades personalizadas, el nombre del esquema derivado es: DCAT$DATAMODELS_OBJECTSTORAGE_HR
  • Si el nombre del activo de datos es MYASSET, el nombre de la carpeta es MYFOLDER y no hay sustituciones de propiedades personalizadas, el nombre del esquema es: DCAT$MYASSET_MYFOLDER
  • Si el activo de datos tiene oracle-db-prefix = FIRSTASSET y la carpeta tiene oracle-db-schema = FIRSTFOLDER, el nombre del esquema es: DCAT$FIRSTASSET_FIRSTFOLDER
Entidad lógica Tabla Externa

Las entidades lógicas se asignan a tablas externas. Si la entidad lógica tiene un atributo particionado, se asigna a una tabla externa particionada.

El nombre de la tabla externa se deriva del nombre mostrado o del nombre de negocio de la entidad lógica correspondiente.

Si se define oracle-db-schema, su valor sustituye todos los nombres y propiedades personalizadas de las correspondientes carpetas y activos de datos.

Por ejemplo, si oracle-db-schema para una entidad se define en EntitySchema, la tabla se crea en el esquema DCAT$ENTITYSCHEMA.

Atributos de la entidad lógica Columnas de tabla externa

Nombre de columna: los nombres de columna de la tabla externa se derivan de los nombres mostrados de atributo de la entidad lógica correspondiente o de negocio.

Para entidades lógicas derivadas de archivos de Parquet, Avro y ORC, el nombre de columna siempre es el nombre mostrado del atributo, ya que representa el nombre de campo derivado de los archivos de origen.

Para los atributos correspondientes a una entidad lógica derivada de archivos CSV, se utilizan los siguientes campos de atributo en orden de prioridad para generar el nombre de columna:

  1. oracle-db-column-name
  2. Nombre del Negocio
  3. Nombre mostrado

Tipo de columna: la propiedad personalizada oracle-db-column-type sustituye el tipo de columna por defecto derivado por Data Catalog.

Para los atributos correspondientes a una entidad lógica derivada de archivos Avro con los tipos de datos TIME_MICROS, TIME_MILLIS, TIMESTAMP_MICROS o TIMESTAMP_MILLIS, debe definir el valor oracle-db-column-type del atributo correspondiente en Data Catalog.

Longitud de columna: la propiedad personalizada oracle-db-column-length sustituye la longitud de columna por defecto para un campo de cadena derivado por Data Catalog.

Precisión de columna: la propiedad personalizada oracle-db-column-precision sustituye la precisión por defecto de un número derivado por Data Catalog.

Para los atributos correspondientes a una entidad lógica derivada de archivos Avro con los tipos de datos TIME_MICROS, TIME_MILLIS, TIMESTAMP_MICROS o TIMESTAMP_MILLIS, debe definir el oracle-db-column-precision del atributo correspondiente en Data Catalog.

Escala de columna: la propiedad personalizada oracle-db-column-scale sustituye la escala por defecto para un número derivado por Data Catalog.

Flujo de trabajo típico con Data Catalog

Hay un flujo de trabajo típico de acciones realizadas por usuarios que desean consultar con Data Catalog.

El administrador de Data Catalog de la base de datos crea una conexión entre la instancia de Autonomous Database y una instancia de Data Catalog y, a continuación, configura y ejecuta una sincronización (sinc) entre Data Catalog y Autonomous Database. Con la sincronización se crean tablas y esquemas externos en la instancia de Autonomous Database según el contenido sincronizado de Data Catalog.

El administrador de consultas de Data Catalog de la base de datos o el administrador de la base de datos otorgan acceso READ a las tablas externas generadas para que los analistas de datos y otros usuarios de la base de datos puedan examinar y consultar las tablas externas.

En la siguiente tabla, se describe en detalle cada una de las acciones. Para obtener una descripción de los diferentes tipos de usuario incluidos en esta tabla, consulte Usuarios y roles de Data Catalog.

Nota

El paquete DBMS_DCAT está disponible para realizar las tareas necesarias para consultar los activos de datos del almacén de objetos de Data Catalog. Consulte Paquete DBMS_DCAT.
Action Quién es el usuario Descripción

Creación de políticas

Administrador de base de datos de Data Catalog

La entidad de recurso de Autonomous Database o la credencial de usuario de Autonomous Database deben tener los permisos adecuados para gestionar Data Catalog y leer desde Object Storage.

Más información: Las credenciales y las políticas de IAM necesarias.

Crear credenciales

Administrador de base de datos de Data Catalog

Asegúrese de que las credenciales de base de datos están activas para acceder a Data Catalog y consultar el almacén de objetos. El usuario llama a DBMS_CLOUD.CREATE_CREDENTIAL para crear credenciales de usuario y/o a DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL para activar las entidades de recurso.

Más información: DBMS_CLOUD CREATE_CREDENTIAL Procedimiento Uso de la entidad de recurso con DBMS_CLOUD.

Creación de conexiones a Data Catalog

Administrador de base de datos de Data Catalog

Para iniciar una conexión entre una instancia de Autonomous Database y una instancia de Data Catalog, el usuario llama a DBMS_DCAT.SET_DATA_CATALOG_CONN para especificar la instancia de Data Catalog de destino. Las conexiones de una instancia de Autonomous Database a varias instancias de Data Catalog están soportadas.

La conexión a la instancia de Data Catalog debe utilizar un objeto de credencial de base de datos con suficientes privilegios de Oracle Cloud Infrastructure (OCI). Por ejemplo, se puede utilizar el token de servicio entidad de recurso para la instancia de Autonomous Database o un usuario de OCI con privilegios suficientes.

Una vez realizada la conexión, la instancia de Data Catalog se actualiza con el espacio de nombres DBMS_DCAT y las propiedades personalizadas (si aún no existen). El usuario puede ejecutar una consulta para ver la nueva conexión, incluidas todas las conexiones actuales:
select * from all_dcat_connections;

More information: SET_DATA_CATALOG_CONN Procedure, UNSET_DATA_CATALOG_CONN Procedure.

Crear una sincronización de selección

Administrador de base de datos de Data Catalog

Cree un trabajo de sincronización seleccionando los objetos de Data Catalog que desea sincronizar. El usuario puede:
  • Seleccione las carpetas/activos de datos que desea sincronizar.
  • Seleccione las entidades lógicas individuales que sincronizar.
  • Consulte las tablas externas resultantes antes de la sincronización.
  • Cambie las tablas externas (por ejemplo, el nombre) modificando las propiedades personalizadas en Data Catalog.

Más información: consulte CREATE_SYNC_JOB Procedure, DROP_SYNC_JOB Procedure, Synchronization Mapping

Sincronizar con Data Catalog

Administrador de base de datos de Data Catalog

El usuario inicia una operación de sincronización. La sincronización se inicia manualmente mediante la llamada al procedimiento DBMS_DCAT.RUN_SYNC o automáticamente como parte de un trabajo de sincronización programado.

La operación de sincronización permite crear, modificar y borrar tablas y esquemas externos según el contenido de Data Catalog y las selecciones de sincronización. La configuración manual se aplica mediante las propiedades personalizadas de Data Catalog.

Más información: consulte RUN_SYNC Procedure, CREATE_SYNC_JOB Procedure, Synchronization Mapping

Supervisión de la sincronización y visualización de logs

Administrador de base de datos de Data Catalog

El usuario puede ver el estado de sincronización consultando la vista USER_LOAD_OPERATIONS. Una vez completado el proceso de sincronización, el usuario puede ver un log de los resultados de la sincronización, incluidos los detalles sobre las asignaciones de entidades lógicas a tablas externas.

Más información: Supervisión y solución de problemas de cargas

Otorgar Privilegios

Administrador de consultas de Data Catalog de base de datos, administrador de base de datos

El administrador de consultas o el administrador de la base de datos de Data Catalog deben otorgar permiso READ en las tablas externas generadas a los usuarios del analista de datos. Esto permite a los analistas de datos consultar las tablas externas generadas.

Examen y consulta de tablas externas

Analista de datos

Los analistas de datos pueden consultar las tablas externas mediante cualquier herramienta o aplicación que soporte Oracle SQL.

Los analistas de datos pueden revisar los esquemas y tablas sincronizados en los esquemas DCAT$* y consultar las tablas mediante Oracle SQL.

Más información: Asignación de sincronizaciones

Terminación de conexiones en Data Catalog

Administrador de base de datos de Data Catalog

Para eliminar una asociación de Data Catalog existente, el usuario llama al procedimiento UNSET_DATA_CATALOG_CONN.

Esta acción solo se realiza cuando ya no tenga previsto utilizar Data Catalog y las tablas externas que se derivan del catálogo. Con esta acción se suprimirán los metadatos de Data Catalog y se borrarán las tablas externas sincronizadas de la instancia de Autonomous Database. Las propiedades personalizadas de Data Catalog y las políticas de OCI no se ven afectadas.

Más información: UNSET_DATA_CATALOG_CONN Procedimiento

Ejemplo: escenario MovieStream

En este escenario, Moviestream está capturando datos en una zona de llegada en Object Storage. Gran parte de estos datos, pero no necesariamente todos, se utilizan para suministrar información a una instancia de Autonomous Database. Antes de proporcionar información a Autonomous Database, los datos se transforman, limpian y, posteriormente, se almacenan en el área "dorada".

Data Catalog se utiliza para recopilar estos orígenes y, a continuación, proporcionar un contexto de negocio a los datos. Los metadatos de Data Catalog se comparten con Autonomous Database, lo que permite a los usuarios de Autonomous Database consultar esos orígenes de datos mediante Oracle SQL. Estos datos se pueden cargar en Autonomous Database o consultar dinámicamente mediante tablas externas.

Para obtener más información sobre el uso de Data Catalog, consulte Documentación de Data Catalog.

  1. Almacén de objetos: revisión de cubos, carpetas y archivos
    1. Revise los cubos del almacén de objetos.
      Por ejemplo, a continuación se muestran los cubos de destino (moviestream_landing) y de zona dorada (moviestream_gold) en Object Storage:Descripción de object_store_buckets_v1.png a continuación
    2. Revise las carpetas y los archivos de los cubos del almacén de objetos.
      Por ejemplo, estas son las carpetas del cubo de llegada (moviestream_landing) en Object Storage: Descripción de object_store_folders_v1.png a continuación
  2. Data Catalog - Create filename patterns
    1. Informe a Data Catalog cómo se organizan los datos mediante patrones de nombre de archivo. Son expresiones regulares que se utilizan para clasificar archivos. El servicio de recogida de Data Catalog utiliza los patrones de nombre de archivo para derivar entidades lógicas. Los dos patrones de nombre de archivo siguientes se utilizan para recopilar los cubos del ejemplo de MovieStream. Consulte Uso de archivos de Object Storage como entidades de datos lógicas para obtener más información sobre la creación de patrones de nombre de archivo.
      Estilo Hive Estilo de carpeta
      {bucketName:.*}/{logicalEntity:[^/]+}.db/{logicalEntity:[^/]+}/.* {bucketName:[\w]+}/{logicalEntity:[^/]+}(?<!.db)/.*$
      • Crea entidades lógicas para orígenes que contienen ".db" como primera parte del nombre del objeto.
      • Para garantizar la unicidad en el cubo, el nombre resultante es (db-name).(nombre de carpeta)
      • Crea una entidad lógica basada en el nombre de carpeta a partir de la raíz
      • Para evitar la duplicación con Hive, se omiten los nombres de objeto que contengan ".db".
    2. Para crear patrones de nombre de archivo, vaya al separador Patrones de nombre de archivo de Data Catalog y haga clic en Crear patrón de nombre de archivo. Por ejemplo, el siguiente es el separador Crear patrón de nombre de archivo para el moviestream Data Catalog:
      Descripción de create_filename_pat.png a continuación
  3. Data Catalog: creación de activos de datos
    1. Cree un activo de datos que se utilice para recopilar datos del almacén de objetos.
      Por ejemplo, se crea un activo de datos denominado phoenixObjStore en el moviestream Data Catalog:Descripción de create_data_asset_v2.png a continuación
    2. Agregue una conexión al activo de datos.
      En este ejemplo, el activo de datos se conecta al compartimento para el recurso de almacenamiento de objetos moviestream.Descripción de add_connection_v2.png a continuación
    3. Ahora, asocie sus patrones de nombre de archivo a su activo de datos. Seleccione Assign Filename Patterns, compruebe los patrones que desee y haga clic en Assign.
      Por ejemplo, estos son los patrones asignados al activo de datos phoenixObjStore:Descripción de assign_filename_patterns_v1.png a continuación
  4. Data Catalog: recopilación de datos del almacén
    1. Recopile el activo de datos de Data Catalog. Seleccione los cubos del almacén de objetos que contienen los datos de origen.
      En este ejemplo, los cubos moviestream_gold y moviestream_landing del almacén de objetos se seleccionan para la recogida.Descripción de harvest_v1.png a continuación
    2. Después de ejecutar el trabajo, verá las entidades lógicas. Utilice Explorar activos de datos para revisarlos.
      En este ejemplo, está examinando la entidad lógica customer-extension y sus atributos.Descripción de logical_entities_v1.png a continuación

      Si tiene un glosario, Data Catalog recomienda categorías y términos para asociarlos a la entidad y sus atributos. Esto proporciona un contexto de negocio para los artículos. Los esquemas, las tablas y las columnas a menudo no son autoexplicativos.

      En nuestro ejemplo, queremos diferenciar entre los distintos tipos de cubos y el significado de su contenido:
      • ¿Qué es una zona de llegada?
      • ¿Qué precisión tienen los datos?
      • ¿Cuándo se ha actualizado por última vez?
      • ¿Cuál es la definición de una entidad lógica o de su atributo?
  5. Autonomous Database: conexión a Data Catalog

    Conecte Autonomous Database a Data Catalog. Debe asegurarse de que la credencial utilizada para realizar esa conexión utiliza un principal de OCI autorizado para acceder al activo de Data Catalog. Para obtener más información, consulte Políticas de Data Catalog y Acceso a los recursos en la nube mediante la configuración de políticas y roles.

    1. Conexión a Data Catalog
      -- Variables are used to simplify usage later
      define oci_credential = 'OCI$RESOURCE_PRINCIPAL'
      define dcat_ocid = 'ocid1.datacatalog.oc1.iad.aaaaaaaardp66bg....twiq'
      define dcat_region='us-ashburn-1'
      define uri_root =    'https://objectstorage.us-ashburn-1.oraclecloud.com/n/mytenancy/b/landing/o'
      define uri_private = 'https://objectstorage.us-ashburn-1.oraclecloud.com/n/mytenancy/b/private_data/o'
      
      -- Run as admin
      -------
      -- Enable resource principal support
      -------
      exec dbms_cloud_admin.enable_resource_principal();
      
      -- Test to make sure credential was created. Returns a row if it was successful
      select * 
      from dba_credentials 
      where credential_name = 'OCI$RESOURCE_PRINCIPAL' and owner = 'ADMIN'; 
      
      -- Query a private bucket to test the principal and privileges.
      select * 
      from dbms_cloud.list_objects('&oci_credential', '&uri_private/');
      
      --------
      -- Set the credentials to use for object store and data catalog
      -- Connect to Data Catalog
      -- Review connection
      ---------
      -- Set credentials
      exec dbms_dcat.set_data_catalog_credential(credential_name => '&oci_credential');
      exec dbms_dcat.set_object_store_credential(credential_name => '&oci_credential');
      
      -- Connect to Data Catalog
      begin
         dbms_dcat.set_data_catalog_conn (
           region => '&dcat_region',
           catalog_id => '&dcat_ocid');
      end;
      /
      -- Review the connection
      select * from all_dcat_connections;
      
    2. Sincronice Data Catalog con Autonomous Database. Aquí, sincronizaremos todos los activos de almacenamiento de objetos:
      
      -- Sync Data Catalog with Autonomous Database
      ---- Let's sync all of the assets.
      begin
       dbms_dcat.run_sync('{"asset_list":["*"]}');
      end;
      /
      
      -- View log
      select type, start_time, status, logfile_table from user_load_operations;  -- Logfile_Table will have the name of the table containing the full log.
      select * from dbms_dcat$1_log;
      
      -- View the new external tables
      select * from dcat_entities;
      select * from dcat_attributes;
      
      
    3. Autonomous Database: ahora comience a ejecutar consultas en el almacén de objetos.
      -- Query the Data !
      select *from dcat$phoenixobjstore_moviestream_gold.genre
      ;
  6. Cambiar esquemas para objetos

    Los nombres de esquema por defecto son bastante complicados. Vamos a simplificarlos especificando tanto el activo como el atributo personalizado Oracle-Db-Schema de la carpeta en Data Catalog. Cambie el activo de datos a PHX y las carpetas a landing y gold respectivamente. El esquema es una concatenación de ambos.

    1. En Data Catalog, vaya al cubo moviestream_landing y cambie el activo a landing y gold respectivamente.

      Antes del Cambio:

      Descripción de change_schema_v1.png a continuación

      Después del Cambio:

      Descripción de change_folder.png
    2. Ejecute otra sincronización.

Ejemplo: escenario de datos particionados

En este escenario se ilustra cómo crear tablas externas en Autonomous Database basadas en entidades lógicas de Data Catalog recogidas a partir de datos particionados en el almacén de objetos.

El siguiente ejemplo se basa en Ejemplo: escenario MovieStream y se ha adaptado para demostrar la integración con datos particionados. Data Catalog se utiliza para recopilar estos orígenes y, a continuación, proporcionar un contexto de negocio a los datos. Para obtener más detalles sobre este ejemplo, consulte Ejemplo: MovieStream Escenario.

Para obtener más información sobre el uso de Data Catalog, consulte Documentación de Data Catalog.

  1. Almacén de objetos: revisión de cubos, carpetas y archivos
    1. Revise los cubos del almacén de objetos.
      Por ejemplo, a continuación se muestran los cubos de destino (moviestream_landing) y de zona dorada (moviestream_gold) en Object Storage:Descripción de object_store_buckets_v1.png a continuación
    2. Revise las carpetas y los archivos de los cubos del almacén de objetos.
      Por ejemplo, estas son las carpetas del cubo de llegada (moviestream_landing) en Object Storage: A continuación se muestra la descripción de adb_object_store_folders_part.png
  2. Data Catalog - Create filename patterns
    1. Informe a Data Catalog cómo se organizan los datos mediante patrones de nombre de archivo. Son prefijo de carpeta o expresiones regulares que se utilizan para clasificar archivos. El servicio de recogida de Data Catalog utiliza los patrones de nombre de archivo para derivar entidades lógicas. Cuando se especifica un prefijo de carpeta, Data Catalog genera automáticamente entidades lógicas a partir del prefijo de carpeta especificado en el almacén de objetos. Se utiliza el siguiente patrón de nombre de archivo para recopilar los cubos del ejemplo MovieStream. Consulte Uso de archivos de Object Storage como entidades de datos lógicas para obtener más información sobre la creación de patrones de nombre de archivo.
      Prefijo de carpeta Descripción
      workshop.db/ Crea entidades lógicas para orígenes que contienen la ruta "workshop.db" en el almacén de objetos.
    2. Para crear patrones de nombre de archivo, vaya al separador Patrones de nombre de archivo de Data Catalog y haga clic en Crear patrón de nombre de archivo. Por ejemplo, el siguiente es el separador Crear patrón de nombre de archivo para el moviestream Data Catalog:
      Descripción de adb_create_filename_pat_part.png a continuación
  3. Data Catalog: creación de activos de datos
    1. Cree un activo de datos que se utilice para recopilar datos del almacén de objetos.
      Por ejemplo, se crea un activo de datos denominado amsterdamObjStore en el moviestream Data Catalog:A continuación se muestra la descripción de adb_create_data_asset_part.png
    2. Agregue una conexión al activo de datos.
      En este ejemplo, el activo de datos se conecta al compartimento para el recurso de almacenamiento de objetos moviestream.Descripción de adb_add_conn_part.png
    3. Ahora, asocie sus patrones de nombre de archivo a su activo de datos. Seleccione Assign Filename Patterns, compruebe los patrones que desee y haga clic en Assign.
      Por ejemplo, estos son los patrones asignados al activo de datos amsterdamObjStore:Descripción de adb_assign_filename_patt_part.png a continuación
  4. Data Catalog: recopilación de datos del almacén
    1. Recopile el activo de datos de Data Catalog. Seleccione los cubos del almacén de objetos que contienen los datos de origen.
      En este ejemplo, los cubos moviestream_gold y moviestream_landing del almacén de objetos se seleccionan para la recogida.Descripción de adb_harvest_part.png a continuación
    2. Después de ejecutar el trabajo, verá las entidades lógicas. Utilice Explorar activos de datos para revisarlos.
      En este ejemplo, está examinando la entidad lógica sales_sample_parquet y sus atributos. Tenga en cuenta que Data Catalog ha identificado el atributo month como particionado. Descripción de adb_browse_data_part.png a continuación
  5. Autonomous Database: conexión a Data Catalog

    Conecte Autonomous Database a Data Catalog. Debe asegurarse de que la credencial utilizada para realizar esa conexión utiliza un principal de OCI autorizado para acceder al activo de Data Catalog. Para obtener más información, consulte Políticas de Data Catalog y Acceso a los recursos en la nube mediante la configuración de políticas y roles.

    1. Conexión a Data Catalog
      -- Variables are used to simplify usage later
      define oci_credential = 'OCI$RESOURCE_PRINCIPAL'
      define dcat_ocid = 'ocid1.datacatalog.oc1.eu-amsterdam-1....leguurn3dmqa'
      define dcat_region='eu-amsterdam-1'
      define uri_root =    'https://objectstorage.us-ashburn-1.oraclecloud.com/n/mytenancy/b/landing/o'
      define uri_private = 'https://objectstorage.us-ashburn-1.oraclecloud.com/n/mytenancy/b/private_data/o'
      
      -- Run as admin
      -------
      -- Enable resource principal support
      -------
      exec dbms_cloud_admin.enable_resource_principal();
      
      -- Test to make sure credential was created. Returns a row if it was successful
      select * 
      from dba_credentials 
      where credential_name = 'OCI$RESOURCE_PRINCIPAL' and owner = 'ADMIN'; 
      
      -- Query a private bucket to test the principal and privileges.
      select * 
      from dbms_cloud.list_objects('&oci_credential', '&uri_private/');
      
      --------
      -- Set the credentials to use for object store and data catalog
      -- Connect to Data Catalog
      -- Review connection
      ---------
      -- Set credentials
      exec dbms_dcat.set_data_catalog_credential(credential_name => '&oci_credential');
      exec dbms_dcat.set_object_store_credential(credential_name => '&oci_credential');
      
      -- Connect to Data Catalog
      begin
         dbms_dcat.set_data_catalog_conn (
           region => '&dcat_region',
           catalog_id => '&dcat_ocid');
      end;
      /
      -- Review the connection
      select * from all_dcat_connections;
      
    2. Sincronice Data Catalog con Autonomous Database. Aquí, sincronizaremos todos los activos de almacenamiento de objetos:
      
      -- Sync Data Catalog with Autonomous Database
      ---- Let's sync all of the assets.
      begin
       dbms_dcat.run_sync('{"asset_list":["*"]}');
      end;
      /
      
      -- View log
      select type, start_time, status, logfile_table from user_load_operations;  -- Logfile_Table will have the name of the table containing the full log.
      select * from dbms_dcat$1_log;
      
      -- View the new external tables
      select * from dcat_entities;
      select * from dcat_attributes;
      
      
    3. Autonomous Database: ahora comience a ejecutar consultas en el almacén de objetos.
      -- Query the Data !
      select count(*) from DCAT$AMSTERDAMOBJSTORE_MOVIESTREAM_LANDING.SALES_SAMPLE_PARQUET;
      
      -- Examine the generated partitioned table
      select dbms_metadata.get_ddl('TABLE','SALES_SAMPLE_PARQUET','DCAT$AMSTERDAMOBJSTORE_MOVIESTREAM_LANDING') from dual;
      
      CREATE TABLE "DCAT$AMSTERDAMOBJSTORE_MOVIESTREAM_LANDING"."SALES_SAMPLE_PARQUET"
      (    "MONTH" VARCHAR2(4000) COLLATE "USING_NLS_COMP",
           "DAY_ID" TIMESTAMP (6),
           "GENRE_ID" NUMBER(20,0),
           "MOVIE_ID" NUMBER(20,0),
           "CUST_ID" NUMBER(20,0),
      ...
      )  DEFAULT COLLATION "USING_NLS_COMP"
      ORGANIZATION EXTERNAL
       ( TYPE ORACLE_BIGDATA
         ACCESS PARAMETERS
         ( com.oracle.bigdata.fileformat=parquet
           com.oracle.bigdata.filename.columns=["MONTH"]
           com.oracle.bigdata.file_uri_list="https://swiftobjectstorage.eu-amsterdam-1.oraclecloud.com/v1/tenancy/moviestream_landing/workshop.db/sales_sample_parquet/*"
      ...
         )
       )
      REJECT LIMIT 0
      PARTITION BY LIST ("MONTH")
      (PARTITION "P1"  VALUES (('2019-01'))
         LOCATION ( 'https://swiftobjectstorage.eu-amsterdam-1.oraclecloud.com/v1/tenancy/moviestream_landing/workshop.db/sales_sample_parquet/month=2019-01/*'),
      PARTITION "P2"  VALUES (('2019-02'))
         LOCATION ( 'https://swiftobjectstorage.eu-amsterdam-1.oraclecloud.com/v1/tenancy/moviestream_landing/workshop.db/sales_sample_parquet/month=2019-02/*'),
      ...PARTITION "P24"  VALUES (('2020-12'))
         LOCATION ( 'https://swiftobjectstorage.eu-amsterdam-1.oraclecloud.com/v1/tenancy/moviestream_landing/workshop.db/sales_sample_parquet/month=2020-12/*'))
      PARALLEL
  6. Cambiar esquemas para objetos

    Los nombres de esquema por defecto son bastante complicados. Vamos a simplificarlos especificando tanto el activo como el atributo personalizado Oracle-Db-Schema de la carpeta en Data Catalog. Cambie el activo de datos a PHX y las carpetas a landing y gold respectivamente. El esquema es una concatenación de ambos.

    1. En Data Catalog, vaya al cubo moviestream_landing y cambie el activo a landing y gold respectivamente.

      Antes del Cambio:

      Descripción de change_schema_v1.png a continuación

      Después del Cambio:

      Descripción de change_folder.png
    2. Ejecute otra sincronización.