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.

La base de datos de IA autónoma 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 manualmente tablas externas 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 AI Database que se mantienen actualizados con los cambios en Data Catalog.

Acerca de las consultas con Data Catalog

Al sincronizar con los metadatos de Data Catalog, la base de datos de IA autónoma crea automáticamente tablas externas para cada entidad lógica recogida por Data Catalog. Estas tablas externas se definen en esquemas de base de datos que se gestionan por completo mediante el proceso de sincronización de metadatos. Los usuarios pueden consultar datos inmediatamente sin tener que derivar manualmente el esquema (columnas y tipos de dato) para orígenes de datos externos y crear tablas externas manualmente.

La sincronización es dinámica y mantiene actualizada la base de datos de IA autónoma con respecto a los cambios en los datos subyacentes, lo que reduce los costos de administración, ya que mantiene automáticamente cientos o miles de tablas. También permite que varias instancias de Autonomous AI Database compartan el mismo catálogo de datos, lo que reduce aún más los costos de gestión y proporciona un conjunto común de definiciones de negocio.

Las carpetas/cubos de Data Catalog son contenedores que se sincronizan con los esquemas de Autonomous Database. Las entidades lógicas de esas carpetas/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:

Para utilizar esta capacidad, un administrador de Database Data Catalog 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 recopilados y las entidades lógicas seleccionados 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 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 DBMS_DCAT package.

Conceptos relacionados con consultas con Data Catalog

Para realizar consultas con Data Catalog es necesario comprender los siguientes conceptos.

Data Catalog: Data Catalog recopila activos de datos que apuntan a los orígenes de datos del almacén de objetos que desea consultar con la base de datos de IA autónoma. En Data Catalog, puede especificar cómo se organizan los datos durante la recopilación, 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 dentro del activo. Para obtener más información, consulte Visió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 que se encuentran en estos cubos incluyen: archivos CSV, parquet, avro, json y ORC. Los cubos generalmente tienen 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 subcarpetas se utilizan a menudo para representar particiones de tabla (por ejemplo, una subcarpeta para cada día). Data Catalog hace referencia a cada carpeta de nivel superior como entidad lógica y esta entidad lógica se asigna a una tabla externa de base de datos de IA autónoma.

Conexión: una conexión es una conexión de base de datos de IA autónoma a una instancia de Data Catalog. Para cada instancia de base de datos de IA autónoma puede haber conexiones a varias instancias de Data Catalog. La credencial de base de datos de IA autónoma debe tener derechos para acceder a los activos de Data Catalog que se han recopilado desde Object Storage.

Recopilación: 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 AI Database aprovecha los activos de Oracle Object Storage para la sincronización de metadatos.

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

Entidad lógica: en los lagos de datos, numerosos archivos suelen constar de una sola 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 y entidades de datos.

Patrón de nombre de archivo: en un lago de datos, los datos se pueden organizar de diferentes formas. Normalmente, las carpetas capturan archivos del mismo esquema y tipo. Debe registrarse en Data Catalog como 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, las entidades lógicas se crean en función del 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 en función del patrón de nombre de archivo.

Sincronizar (sincronizar): la base de datos de IA autónoma realiza sincronizaciones con Data Catalog para mantener automáticamente la base de datos actualizada 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 externas en función de 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 la base de datos de IA autónoma reflejarán los cambios después de ejecutar la siguiente sincronización. Para obtener más información, consulte Sincronización de asignaciones.

Asignación de sincronización

El proceso de sincronización crea y actualiza esquemas de bases de datos de IA autónomas y tablas externas en función de los activos de datos de Data Catalog, las carpetas, las entidades lógicas, los atributos y las sustituciones personalizadas relevantes.

Data Catalog Base de datos de IA autónoma Descripción de asignación
Activo de datos y carpeta (cubo de almacenamiento de objetos) Nombre del Esquema

Valores predeterminados:

Por defecto, el nombre de esquema generado en la base de datos de IA autónoma tiene el siguiente formato:

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

  • dcat-con-id es el identificador de conexión único de Data Catalog. Para obtener detalles sobre la especificación de este identificador, consulte el parámetro dcat_con_id en el procedimiento RUN_SYNC de DBMS_DCAT.
  • data-asset-name es el nombre del activo de datos de Data Catalog.
  • folder-name es el nombre de la 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 sustituir definiendo la propiedad personalizada oracle-db-schema-prefix para el activo de datos en Data Catalog.
  • folder-name se puede sustituir 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:
    • Propiedad personalizada oracle-db-schema
    • Nombre del Negocio
    • 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 propiedad 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 de la entidad lógica correspondiente o del nombre de negocio.

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

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

Atributos de entidad lógica Columnas de tabla externa

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

Para las entidades lógicas derivadas de los archivos 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.

En el caso de los atributos correspondientes a una entidad lógica derivada de archivos CSV, se utilizan los siguientes campos de atributos 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 tipos de dato 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 tipos de dato TIME_MICROS, TIME_MILLIS, TIMESTAMP_MICROS o TIMESTAMP_MILLIS, debe definir el valor 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 el catálogo de datos

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

La administración de Database Data Catalog crea una conexión entre la instancia de base de datos de IA autónoma y una instancia de Data Catalog y, a continuación, configura y ejecuta una sincronización (sincronización) entre Data Catalog y Autonomous AI Database. La sincronización crea tablas y esquemas externos en la instancia de la base de datos de IA autónoma según el contenido del catálogo de datos sincronizado.

El administrador de consultas del catálogo de datos de la base de datos o el administrador de la base de datos otorga acceso de lectura 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.

La siguiente tabla describe cada acción en detalle. 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.

Acción Quién es el usuario Descripción
Creación de políticas Administrador de catálogo de datos de base de datos

La credencial de usuario de la base de datos de IA autónoma debe tener los permisos adecuados para gestionar Data Catalog y leer desde Object Storage.

Más información: Credenciales necesarias y políticas de IAM.

Crear credenciales Administrador de catálogo de datos de base de datos

Asegúrese de que las credenciales de base de datos están en su lugar 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.

Más información: Procedimiento CREATE_CREDENTIAL de DBMS_CLOUD.

Crear conexiones a Data Catalog Administrador de catálogo de datos de base de datos

Para iniciar una conexión entre una instancia de base de datos de IA autónoma 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. Están soportadas las conexiones desde una instancia de base de datos de IA autónoma a varias instancias de Data Catalog.

La conexión a la instancia de Data Catalog debe utilizar una credencial de usuario con suficientes privilegios de Oracle Cloud Infrastructure (OCI).

Una vez que se ha realizado 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;

Más información: Procedimiento SET_DATA_CATALOG_CONN, Procedimiento UNSET_DATA_CATALOG_CONN.

Crear una sincronización selectiva Administrador de catálogo de datos de base de datos

Cree un trabajo de sincronización seleccionando los objetos de Data Catalog que desea sincronizar. El usuario puede:

  • Seleccione los activos/carpetas de datos que desea sincronizar.
  • Seleccione las entidades lógicas individuales que desea sincronizar.
  • Obtenga una vista previa de las tablas externas resultantes antes de sincronizarlas.
  • Cambie las tablas externas (por ejemplo, el nombre) modificando las propiedades personalizadas en Data Catalog.

Más información: consulte Procedimiento CREATE_SYNC_JOB, Procedimiento DROP_SYNC_JOB, Asignación de sincronización

Sincronizar con Data Catalog Administrador de catálogo de datos de base de datos

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 crea, modifica y borra 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 Procedimiento RUN_SYNC de DBMS_DCAT, Procedimiento CREATE_SYNC_JOB, Asignación de sincronización

Supervise los logs de sincronización y visualización Administrador de catálogo de datos de base de datos El usuario puede ver el estado de sincronización consultando la vista USER_LOAD_OPERATIONS. Una vez finalizado 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.
Otorgar Privilegios Administrador de consultas de Database Data Catalog, administrador de base de datos El administrador de consultas de Data Catalog de la base de datos o el administrador de la base de datos deben otorgar 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.
Examinar y consultar tablas externas Analista de datos

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

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

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

Terminar conexiones a Data Catalog Administrador de catálogo de datos de base de datos

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

Esta acción sólo se realiza cuando ya no se tiene previsto utilizar Data Catalog y las tablas externas que se derivan del catálogo. Esta acción suprime los metadatos de Data Catalog y borra las tablas externas sincronizadas de la instancia de la base de datos de IA autónoma. Las propiedades personalizadas de Data Catalog y las políticas de OCI no se ven afectadas.

Más información: procedimiento UNSET_DATA_CATALOG_CONN

Ejemplo: escenario MovieStream

En este escenario, Moviestream está capturando datos en una zona de llegada del almacenamiento de objetos. Gran parte de estos datos, pero no necesariamente todos, se utilizan para alimentar una base de datos de IA autónoma. Antes de alimentar la base de datos de IA autónoma, los datos se transforman, limpian y posteriormente se almacenan en el área de "oro".

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

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

  1. Object Store - Revisar cubos, carpetas y archivos

    1. Revise los cubos del almacén de objetos.

      Por ejemplo, a continuación se muestran los cubos de llegada (moviestream_landing) y zona dorada (moviestream_gold) en Object Storage:

    2. Revise las carpetas y los archivos de los cubos del almacén de objetos.

      Por ejemplo, a continuación se muestran las carpetas del cubo de llegada (moviestream_landing) en Object Storage:

  2. Data Catalog: creación de patrones de nombre de archivo

    1. Informe a Data Catalog cómo se organizan los datos mediante patrones de nombre de archivo. Se trata de expresiones regulares que se utilizan para clasificar archivos. Los patrones de nombre de archivo los utiliza el recopilador de Data Catalog para derivar entidades lógicas. Los dos siguientes patrones de nombre de archivo se utilizan para recoger los cubos en el ejemplo de MovieStream. Consulte Recopilación 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 los orígenes que contienen ".db" como la primera parte del nombre del objeto.
      • Para garantizar la unicidad en el cubo, el nombre resultante es (db-name).(nombre de la carpeta)
      • Crea una entidad lógica basada en el nombre de carpeta de la raíz
      • Para evitar la duplicación con Hive, se omiten los nombres de objetos que tienen ".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 catálogo de datos moviestream:

  3. Catálogo de datos - 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 catálogo de datos moviestream:

    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.

    3. Ahora, asocie sus patrones de nombre de archivo con su activo de datos. Seleccione Asignar Patrones de Nombre de Archivo, compruebe los patrones que desee y haga clic en Asignar.

      Por ejemplo, estos son los patrones asignados al activo de datos phoenixObjStore:

      Descripción de la ilustración assign_filename_patterns_v1.png

    4. Data Catalog: recopilación de datos del almacén de objetos

      a. 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 objeto están seleccionados para la recogida.

      b. Después de ejecutar el trabajo, verá las entidades lógicas. Utilice Examinar activos de datos para revisarlos.

      En este ejemplo, está viendo la entidad lógica customer-extension y sus atributos.

      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 elementos. Los esquemas, las tablas y las columnas a menudo no se explican por sí solos.

      En nuestro ejemplo, queremos diferenciar entre los diferentes tipos de cubos y el significado de su contenido:

      • ¿Qué es una zona de aterrizaje?

      • ¿Qué tan precisos son los datos?

      • ¿Cuándo se actualizó por última vez?

      • Definición de una entidad lógica o su atributo

    5. Base de datos de IA autónoma: conexión a Data Catalog

      Conecte la base de datos de IA autónoma a Data Catalog. Debe asegurarse de que la credencial utilizada para realizar esa conexión utiliza un principal de OCI que está autorizado para acceder al activo de Data Catalog. Para obtener más información, consulte Políticas de Data Catalog.

      a. Conectar a Data Catalog

      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;
      
      -- Variables are used to simplify usage later
      define oci_credential = 'OCI_NATIVE_CRED'
      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'
      
      -- Query a private bucket to test the 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;
      

      b. Sincroniza el catálogo de datos con la base de datos de IA autónoma. 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;
      

      c. Base de datos de IA autónoma: 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 los dos.

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

      Antes de los cambios:

      Después del cambio:

      b. Ejecute otra sincronización.

Ejemplo: escenario de datos particionados

En este escenario se muestra cómo crear tablas externas en la base de datos de IA autónoma basadas en entidades lógicas de Data Catalog recopiladas 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 información sobre este ejemplo, consulte Ejemplo: Escenario MovieStream.

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

  1. Object Store - Revisar cubos, carpetas y archivos

    1. Revise los cubos del almacén de objetos.

      Por ejemplo, a continuación se muestran los cubos de llegada (moviestream_landing) y zona dorada (moviestream_gold) en Object Storage:

    2. Revise las carpetas y los archivos de los cubos del almacén de objetos.

      Por ejemplo, a continuación se muestran las carpetas del cubo de llegada (moviestream_landing) en Object Storage:

  2. Data Catalog: creación de patrones de nombre de archivo

    1. Informe a Data Catalog cómo se organizan los datos mediante patrones de nombre de archivo. Se trata de prefijos de carpeta o expresiones regulares que se utilizan para clasificar archivos. Los patrones de nombre de archivo los utiliza el recopilador de Data Catalog 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. El siguiente patrón de nombre de archivo se utiliza para recoger los cubos en el ejemplo MovieStream. Consulte Recopilación 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 los 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 catálogo de datos moviestream:

  3. Catálogo de datos - 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 catálogo de datos moviestream:

    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.

    3. Ahora, asocie sus patrones de nombre de archivo con su activo de datos. Seleccione Asignar Patrones de Nombre de Archivo, compruebe los patrones que desee y haga clic en Asignar.

      Por ejemplo, estos son los patrones asignados al activo de datos amsterdamObjStore:

  4. Data Catalog: recopilación de datos del almacén de objetos

    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 objeto están seleccionados para la recogida.

    2. Después de ejecutar el trabajo, verá las entidades lógicas. Utilice Examinar activos de datos para revisarlos.

      En este ejemplo, está viendo la entidad lógica sales_sample_parquet y sus atributos. Tenga en cuenta que Data Catalog ha identificado el atributo month como particionado.

  5. Base de datos de IA autónoma: conexión a Data Catalog

    Conecte la base de datos de IA autónoma a Data Catalog. Debe asegurarse de que la credencial utilizada para realizar esa conexión utiliza un principal de OCI que está autorizado para acceder al activo de Data Catalog. Para obtener más información, consulte Políticas de Data Catalog.

    1. Conectar a Data Catalog

       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;
      
       -- Variables are used to simplify usage later
       define oci_credential = 'OCI_NATIVE_CRED'
       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'
      
      
       -- Query a private bucket to test the 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. Sincroniza el catálogo de datos con la base de datos de IA autónoma. 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 AI 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 los dos.

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

      Antes de los cambios:

      Después del cambio:

    2. Ejecute otra sincronización.