Interroger des données externes à l'aide du catalogue de données

Oracle Cloud Infrastructure Data Catalog est le service de gestion des métadonnées pour Oracle Cloud, qui vous aide à découvrir les données et à prendre en charge la gouvernance des données. Il fournit un inventaire des ressources, un glossaire d'entreprise et un magasin de métadonnées commun pour les lacs de données.

Autonomous AI Database peut tirer parti de ces métadonnées pour simplifier considérablement la gestion de l'accès au magasin d'objets de votre lac de données. Au lieu de définir manuellement des tables externes pour accéder à votre lac de données, utilisez les tables externes qui sont définies et gérées automatiquement. Ces tables se trouvent dans les schémas protégés par une base de données d'intelligence artificielle autonome qui sont tenus à jour avec les modifications apportées au catalogue de données.

Pour plus d'informations sur le catalogue de données, consultez la documentation relative au catalogue de données.

À propos de l'interrogation avec le catalogue de données

En se synchronisant avec les métadonnées du catalogue de données, Autonomous AI Database crée automatiquement des tables externes pour chaque entité logique collectée par le catalogue de données. Ces tables externes sont définies dans des schémas de base de données entièrement gérés par le processus de synchronisation des métadonnées. Les utilisateurs peuvent interroger immédiatement les données sans avoir à dériver manuellement le schéma (colonnes et types de données) pour les sources de données externes et créer manuellement des tables externes.

La synchronisation est dynamique, ce qui maintient la base de données autonome de l'IA à jour en ce qui concerne les modifications apportées aux données sous-jacentes, réduisant ainsi les coûts d'administration, car elle gère automatiquement des centaines à des milliers de tables. Il permet également à plusieurs instances de base de données autonome d'IA de partager le même catalogue de données, réduisant ainsi les coûts de gestion et fournissant un ensemble commun de définitions d'affaires.

Les dossiers/seaux du catalogue de données sont des conteneurs qui se synchronisent avec les schémas d'Autonomous Database. Les entités logiques de ces dossiers/seaux sont mappées aux tables externes Autonomous Database. Ces schémas et tables externes sont générés et mis à jour automatiquement au moyen du traitement de synchronisation :

  • Les dossiers/intervalles sont mappés aux schémas de base de données à des fins organisationnelles uniquement.
  • L'organisation est conçue pour être cohérente avec le lac de données et minimiser la confusion lors de l'accès aux données par différents chemins.
  • Le catalogue de données est la source de vérité pour les tables contenues dans les schémas. Les modifications apportées dans le catalogue de données mettent à jour les tables du schéma lors d'une synchronisation ultérieure.

Pour utiliser cette fonction, un administrateur de catalogue de données de base de données lance une connexion à une instance de catalogue de données, sélectionne les ressources de données et les entités logiques à synchroniser et exécute la synchronisation. Le processus de synchronisation crée des schémas et des tables externes en fonction des ressources de données collectées et des entités logiques du catalogue de données sélectionné. Dès que les tables externes sont créées, les analystes de données peuvent commencer à interroger leurs données sans avoir à dériver manuellement le schéma des sources de données externes et à créer des tables externes.

Note

L'ensemble DBMS_DCAT est disponible pour effectuer les tâches requises pour interroger les ressources de données du magasin d'objets du catalogue de données. Voir Ensemble DBMS_DCAT.

Concepts liés à l'interrogation avec le catalogue de données

Vous devez comprendre les concepts suivants pour effectuer des interrogations avec le catalogue de données.

Catalogue de données

Le catalogue de données collecte les ressources de données qui pointent vers les sources de données du magasin d'objets à interroger avec la base de données d'intelligence artificielle autonome. À partir du catalogue de données, vous pouvez spécifier comment les données sont organisées lors de la collecte, en prenant en charge différents modèles d'organisation de fichiers. Dans le cadre du processus de collecte du catalogue de données, vous pouvez sélectionner les seaux et les fichiers à gérer dans la ressource. Pour plus d'informations, voir Aperçu du catalogue de données.

Magasins d'objets

Les magasins d'objets comportent des seaux contenant divers objets. Certains types d'objet courants trouvés dans ces seaux sont les fichiers CSV, parquet, avro, json et ORC. Les seaux ont généralement une structure ou un motif de conception pour les objets qu'ils contiennent. Il existe de nombreuses façons différentes de structurer les données et de nombreuses façons différentes d'interpréter ces modèles.

Par exemple, un modèle de conception type utilise des dossiers de niveau supérieur qui représentent des tables. Les fichiers d'un dossier donné partagent le même schéma et contiennent des données pour cette table. Les sous-dossiers sont souvent utilisés pour représenter des partitions de table (par exemple, un sous-dossier pour chaque jour). Le catalogue de données fait référence à chaque dossier de niveau supérieur en tant qu'entité logique, et cette entité logique est mappée à une table externe de base de données IA autonome.

Connexion

Une connexion est une connexion de base de données IA autonome à une instance de catalogue de données. Pour chaque instance Autonomous AI Database, il peut y avoir des connexions à plusieurs instances de catalogue de données. Les données d'identification de la base de données de l'IA autonome doivent avoir les droits d'accès aux ressources du catalogue de données qui ont été collectées à partir du stockage d'objets.

Collecter

Processus de catalogue de données qui balaie le stockage d'objets et génère les entités logiques à partir de vos jeux de données.

Ressource de données

Une ressource de données dans le catalogue de données représente une source de données, qui comprend des bases de données, le service de stockage d'objets d'Oracle, Kafka et plus encore. Autonomous AI Database tire parti des ressources du service de stockage d'objets d'Oracle pour la synchronisation des métadonnées.

entité de données

Une entité de données dans le catalogue de données est une collection de données, telle qu'une table ou une vue de base de données, ou un fichier unique et comporte généralement de nombreux attributs qui décrivent ses données.

Entité logique

Dans Data Lakes, de nombreux fichiers comprennent généralement une seule entité logique. Par exemple, vous pouvez avoir des fichiers de parcours quotidiens et ces fichiers partagent le même schéma et le même type de fichier.

Une entité logique de catalogue de données est un groupe de fichiers de stockage d'objets qui sont dérivés lors de la collecte en appliquant des modèles de nom de fichier qui ont été créés et affectés à une ressource de données.

Objet de données

Le terme objet de données du catalogue de données fait référence aux ressources de données et aux entités de données.

Modèle de nom de fichier

Dans un lac de données, les données peuvent être organisées de différentes manières. En général, les dossiers capturent des fichiers du même schéma et du même type. Vous devez vous inscrire au catalogue de données pour savoir comment vos données sont organisées. Les modèles de nom de fichier sont utilisés pour identifier l'organisation de vos données. Dans le catalogue de données, vous pouvez définir des modèles de nom de fichier à l'aide d'expressions rationnelles. Lorsque le catalogue de données collecte une ressource de données avec un modèle de nom de fichier affecté, les entités logiques sont créées en fonction du modèle de nom de fichier. En définissant et en affectant ces modèles aux ressources de données, plusieurs fichiers peuvent être regroupés en tant qu'entités logiques en fonction du modèle de nom de fichier.

Synchroniser (synchroniser)

Autonomous AI Database effectue des synchronisations avec le catalogue de données pour maintenir automatiquement sa base de données à jour en ce qui concerne les modifications apportées aux données sous-jacentes. La synchronisation peut être effectuée manuellement ou selon un programme.

Le processus de synchronisation crée des schémas et des tables externes basés sur les ressources de données du catalogue de données et les entités logiques. Ces schémas sont protégés, ce qui signifie que leurs métadonnées sont gérées par le catalogue de données. Si vous voulez modifier les métadonnées, vous devez les modifier dans le catalogue de données. Les schémas de base de données d'IA autonome refléteront toute modification après l'exécution de la prochaine synchronisation. Pour plus de détails, voir Mappage de synchronisation.

Mappage de synchronisation

Le processus de synchronisation crée et met à jour des schémas et des tables externes de base de données d'intelligence artificielle autonome en fonction des ressources de données du catalogue de données, des dossiers, des entités logiques, des attributs et des remplacements personnalisés pertinents.

Catalogue de données Base de données autonome optimisée par l'IA Description du mappage

Ressource de données et dossier (seau de stockage d'objets)

Nom du schéma

Valeurs par défaut :

Par défaut, le nom du schéma généré dans Autonomous AI Database a le format suivant :

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

  • dcat-con-id est l'identificateur unique de connexion au catalogue de données. Pour plus de détails sur la spécification de cet identificateur, voir le paramètre dcat_con_id dans la procédure DBMS_DCAT RUN_SYNC.
  • data-asset-name est le nom de la ressource de données du catalogue de données.
  • folder-name est le nom du dossier du catalogue de données. Ce dossier est mappé à un seau de stockage d'objets.

Personnalisations :

Les valeurs par défaut data-asset-name et folder-name peuvent être personnalisées en définissant des propriétés, des noms d'affaires et des noms d'affichage personnalisés pour remplacer ces noms par défaut.
  • data-asset-name peut être masqué en définissant la propriété personnalisée oracle-db-schema-prefix pour la ressource de données dans le catalogue de données.
  • folder-name peut être masqué en définissant la propriété personnalisée oracle-db-schema pour le dossier dans le catalogue de données, un nom d'entreprise ou un nom d'affichage. Les attributs suivants sont utilisés par ordre de priorité pour générer folder-name :
    1. Propriété personnalisée oracle-db-schema
    2. Nom d'affaires
    3. Nom d'affichage

Exemples :

  • Si l'ID connexion est DataModels, le nom de la ressource est ObjectStorage, le nom du dossier est HR et il n'y a aucun remplacement de propriété personnalisée, le nom du schéma dérivé est : DCAT$DATAMODELS_OBJECTSTORAGE_HR
  • Si le nom de la ressource de données est MYASSET, que le nom du dossier est MYFOLDER et qu'il n'y a aucun remplacement de propriété personnalisée, le nom du schéma est : DCAT$MYASSET_MYFOLDER
  • Si la ressource de données contient oracle-db-prefix = FIRSTASSET et que le dossier contient oracle-db-schema = FIRSTFOLDER, le nom du schéma est : DCAT$FIRSTASSET_FIRSTFOLDER
Entité logique Table externe

Les entités logiques sont mappées avec des tables externes. Si l'entité logique a un attribut partitionné, elle est mappée à une table externe partitionnée.

Le nom de la table externe est dérivé du nom d'affichage de l'entité logique correspondante ou du nom d'entreprise.

Si oracle-db-schema est défini, sa valeur remplace tous les noms et propriétés personnalisées des dossiers et ressources de données correspondants.

Par exemple, si oracle-db-schema pour une entité est réglé à EntitySchema, la table est créée dans le schéma DCAT$ENTITYSCHEMA.

Attributs de l'entité logique Colonnes de table externe

Noms de colonne : Les noms de colonne de table externe sont dérivés des noms d'affichage d'attribut ou des noms d'affaires de l'entité logique correspondante.

Pour les entités logiques dérivées des fichiers Parquet, Avro et ORC, le nom de colonne est toujours le nom d'affichage de l'attribut, car il représente le nom de champ dérivé des fichiers sources.

Pour les attributs correspondant à une entité logique dérivée de fichiers CSV, les champs d'attribut suivants sont utilisés par ordre de priorité pour générer le nom de colonne :

  1. oracle-db-column-name
  2. Nom d'affaires
  3. Nom d'affichage

Type de colonne : La propriété personnalisée oracle-db-column-type remplace le type de colonne par défaut dérivé par le catalogue de données.

Pour les attributs correspondant à une entité logique dérivée des fichiers Avro avec les types de données TIME_MICROS, TIME_MILLIS, TIMESTAMP_MICROS ou TIMESTAMP_MILLIS, vous devez définir la valeur oracle-db-column-type de l'attribut correspondant dans le catalogue de données.

Longueur de colonne : La propriété personnalisée oracle-db-column-length remplace la longueur de colonne par défaut pour un champ de chaîne dérivé par le catalogue de données.

Précision de colonne : La propriété personnalisée oracle-db-column-precision remplace la précision par défaut pour un nombre dérivé par le catalogue de données.

Pour les attributs correspondant à une entité logique dérivée des fichiers Avro avec les types de données TIME_MICROS, TIME_MILLIS, TIMESTAMP_MICROS ou TIMESTAMP_MILLIS, vous devez définir la valeur oracle-db-column-precision de l'attribut correspondant dans le catalogue de données.

Échelle de colonne : La propriété personnalisée oracle-db-column-scale remplace l'échelle par défaut pour un nombre dérivé par le catalogue de données.

Flux de travail type avec le catalogue de données

Il existe un flux de travail type des actions effectuées par les utilisateurs qui souhaitent effectuer une interrogation avec le catalogue de données.

L'administrateur du catalogue de données de base de données crée une connexion entre l'instance de base de données d'IA autonome et une instance de catalogue de données, puis configure et exécute une synchronisation (synchronisation) entre le catalogue de données et la base de données d'IA autonome. La synchronisation crée des tables et des schémas externes dans l'instance de base de données de l'IA autonome en fonction du contenu du catalogue de données synchronisé.

L'administrateur d'interrogation du catalogue de données de base de données ou l'administrateur de base de données accorde l'accès READ aux tables externes générées afin que les analystes de données et les autres utilisateurs de base de données puissent parcourir et interroger les tables externes.

Le tableau ci-dessous décrit chaque action en détail. Pour une description des différents types d'utilisateur inclus dans ce tableau, voir Utilisateurs et rôles du catalogue de données.

Note

L'ensemble DBMS_DCAT est disponible pour effectuer les tâches requises pour interroger les ressources de données du magasin d'objets du catalogue de données. Voir Ensemble DBMS_DCAT.
Action Qui est l'utilisateur Description

Créer des politiques

Administrateur du catalogue de données de base de données

Le principal de ressource de base de données d'intelligence artificielle autonome ou les données d'identification d'utilisateur de base de données d'intelligence artificielle autonome doivent disposer des autorisations appropriées pour gérer le catalogue de données et pour effectuer des lectures à partir du stockage d'objets.

Informations supplémentaires : Données d'identification requises et politiques IAM.

Créer des données d'identification

Administrateur du catalogue de données de base de données

Assurez-vous que les données d'identification de la base de données sont en place pour accéder au catalogue de données et interroger le magasin d'objets. L'utilisateur appelle DBMS_CLOUD.CREATE_CREDENTIAL pour créer des données d'identification d'utilisateur ou DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL pour activer les principaux de ressource.

Informations supplémentaires : DBMS_CLOUD CREATE_CREDENTIAL Procédure, Utiliser le principal de ressource avec DBMS_CLOUD.

Créer des connexions au catalogue de données

Administrateur du catalogue de données de base de données

Pour lancer une connexion entre une instance de base de données d'intelligence artificielle autonome et une instance de catalogue de données, l'utilisateur appelle DBMS_DCAT.SET_DATA_CATALOG_CONN pour spécifier l'instance de catalogue de données cible. Les connexions entre une instance de base de données d'intelligence artificielle autonome et plusieurs instances de catalogue de données sont prises en charge.

La connexion à l'instance de catalogue de données doit utiliser un objet de données d'identification de base de données avec des privilèges Oracle Cloud Infrastructure (OCI) suffisants. Par exemple, le jeton de service Principal de ressource pour l'instance de base de données IA autonome ou un utilisateur OCI disposant de privilèges suffisants peut être utilisé.

Une fois la connexion établie, l'instance de catalogue de données est mise à jour avec l'espace de noms DBMS_DCAT et les propriétés personnalisées (s'ils n'existent pas déjà). L'utilisateur peut exécuter une interrogation pour voir la nouvelle connexion, y compris toutes les connexions courantes :
select * from all_dcat_connections;

Informations supplémentaires : Procédure SET_DATA_CATALOG_CONN, Procédure UNSET_DATA_CATALOG_CONN.

Créer une synchronisation sélective

Administrateur du catalogue de données de base de données

Créez une tâche de synchronisation en sélectionnant les objets du catalogue de données à synchroniser. L'utilisateur peut :
  • Sélectionnez les ressources/dossiers de données à synchroniser.
  • Sélectionnez les entités logiques individuelles à synchroniser.
  • Prévisualisez les tables externes résultantes avant la synchronisation.
  • Modifiez les tables externes (par exemple, le nom) en modifiant les propriétés personnalisées dans le catalogue de données.

Informations supplémentaires : Voir Procédure CREATE_SYNC_JOB, Procédure DROP_SYNC_JOB, Mappage de synchronisation

Synchroniser avec le catalogue de données

Administrateur du catalogue de données de base de données

L'utilisateur lance une opération de synchronisation. La synchronisation est lancée manuellement au moyen de l'appel de procédure DBMS_DCAT.RUN_SYNC ou automatiquement dans le cadre d'une tâche de synchronisation programmée.

L'opération de synchronisation crée, modifie et supprime des tables et des schémas externes en fonction du contenu du catalogue de données et des sélections de synchronisation. La configuration manuelle est appliquée à l'aide des propriétés personnalisées du catalogue de données.

Informations supplémentaires : Voir Procédure RUN_SYNC, Procédure CREATE_SYNC_JOB, Mappage de synchronisation

Surveiller la synchronisation et voir les journaux

Administrateur du catalogue de données de base de données

L'utilisateur peut voir le statut de synchronisation en interrogeant la vue USER_LOAD_OPERATIONS. Une fois le processus de synchronisation terminé, l'utilisateur peut consulter un journal des résultats de la synchronisation, y compris des détails sur les mappings des entités logiques avec des tables externes.

Informations supplémentaires : Surveillance et dépannage des chargements

accorder des privilèges

Administrateur d'interrogation du catalogue de données de base de données, administrateur de base de données

L'administrateur d'interrogation du catalogue de données de la base de données ou l'administrateur de base de données doit accorder la lecture sur les tables externes générées aux utilisateurs analystes de données. Cela permet aux analystes de données d'interroger les tables externes générées.

Parcourir et interroger les tables externes

Analyste des données

Les analystes de données peuvent interroger les tables externes au moyen de n'importe quel outil ou application prenant en charge Oracle SQL.

Les analystes de données peuvent vérifier les schémas et les tables synchronisés dans les schémas DCAT$* et interroger les tables à l'aide d'Oracle SQL.

Informations supplémentaires : Mappage de synchronisation

Mettre fin aux connexions au catalogue de données

Administrateur du catalogue de données de base de données

Pour supprimer une association de catalogue de données existante, l'utilisateur appelle la procédure UNSET_DATA_CATALOG_CONN.

Cette action n'est effectuée que lorsque vous ne prévoyez plus utiliser le catalogue de données et les tables externes dérivées du catalogue. Cette action supprime les métadonnées du catalogue de données et les tables externes synchronisées de l'instance de base de données de l'IA autonome. Les propriétés personnalisées du catalogue de données et des politiques OCI ne sont pas touchées.

Informations supplémentaires : Procédure UNSET_DATA_CATALOG_CONN

Exemple : Scénario MovieStream

Dans ce scénario, Moviestream capture des données dans une zone d'atterrissage sur le stockage d'objets. Une grande partie de ces données, mais pas nécessairement toutes, est ensuite utilisée pour alimenter une base de données IA autonome. Avant d'alimenter la base de données d'IA autonome, les données sont transformées, nettoyées et ensuite stockées dans la zone "or".

Le catalogue de données est utilisé pour collecter ces sources, puis fournir un contexte d'affaires aux données. Les métadonnées du catalogue de données sont partagées avec Autonomous AI Database, ce qui permet aux utilisateurs de Autonomous AI Database d'interroger ces sources de données à l'aide d'Oracle SQL. Ces données peuvent être chargées dans Autonomous AI Database ou interrogées dynamiquement à l'aide de tables externes.

Pour plus d'informations sur l'utilisation du catalogue de données, voir Documentation sur le catalogue de données.

  1. Magasin d'objets - Vérifier les seaux, dossiers et fichiers
    1. Vérifiez les seaux de votre magasin d'objets.
      Par exemple, ci-dessous se trouvent les seaux d'atterrissage (moviestream_landing) et de zone aurifère (moviestream_gold) dans le stockage d'objets :
    2. Vérifiez les dossiers et les fichiers dans les seaux du magasin d'objets.
      Par exemple, ci-dessous se trouvent les dossiers du seau de renvoi (moviestream_landing) dans le stockage d'objets :
  2. Catalogue de données - Créer des modèles de nom de fichier
    1. Informez le catalogue de données de l'organisation de vos données à l'aide de modèles de nom de fichier. Il s'agit d'expressions régulières utilisées pour catégoriser les fichiers. Les modèles de nom de fichier sont utilisés par le programme de collecte du catalogue de données pour dériver des entités logiques. Les deux modèles de nom de fichier suivants sont utilisés pour collecter les seaux dans l'exemple MovieStream. Voir Collecte de fichiers de stockage d'objets en tant qu'entités de données logiques pour plus de détails sur la création de modèles de nom de fichier.
      Style Hive Style de dossier
      {bucketName:.*}/{logicalEntity:[^/]+}.db/{logicalEntity:[^/]+}/.* {bucketName:[\w]+}/{logicalEntity:[^/]+}(?<!.db)/.*$
      • Crée des entités logiques pour les sources qui contiennent ".db" comme première partie du nom de l'objet.
      • Pour garantir l'unicité dans le seau, le nom obtenu est (db-name).(nom du dossier)
      • Crée une entité logique basée sur le nom du dossier hors de la racine
      • Pour éviter la duplication avec Hive, les noms d'objet qui contiennent ".db" sont ignorés.
    2. Pour créer des modèles de nom de fichier, allez à l'onglet Modèles de nom de fichier de votre catalogue de données et cliquez sur Créer un modèle de nom de fichier. Par exemple, l'onglet Créer un modèle de nom de fichier pour le catalogue de données moviestream est le suivant :
  3. Catalogue de données - Création de ressources de données
    1. Créez une ressource de données utilisée pour collecter des données à partir de votre magasin d'objets.
      Par exemple, une ressource de données nommée phoenixObjStore est créée dans le catalogue de données moviestream :
    2. Ajouter une connexion à la ressource de données.
      Dans cet exemple, la ressource de données se connecte au compartiment de la ressource de stockage d'objets moviestream.
    3. Maintenant, associez vos modèles de nom de fichier à votre ressource de données. Sélectionnez Affecter des modèles de nom de fichier, vérifiez les modèles voulus et cliquez sur Affecter.
      Par exemple, voici les modèles affectés à la ressource de données phoenixObjStore :Une description de assign_filename_patterns_v1.png suit
      Description de l'illustration assign_filename_patterns_v1.png
  4. Catalogue de données - Collecter des données à partir du magasin d'objets
    1. Collecter la ressource de données du catalogue de données. Sélectionnez les seaux de stockage d'objets contenant les données sources.
      Dans cet exemple, les seaux moviestream_gold et moviestream_landing du magasin d'objets sont sélectionnés pour la collecte.
    2. Après avoir exécuté le travail, vous voyez les entités logiques. Utilisez Parcourir les ressources de données pour les vérifier.
      Dans cet exemple, vous consultez l'entité logique customer-extension et ses attributs.

      Si vous disposez d'un glossaire, le catalogue de données recommande des catégories et des termes à associer à l'entité et à ses attributs. Fournit un contexte d'affaires pour les articles. Les schémas, les tables et les colonnes ne sont souvent pas explicites.

      Dans notre exemple, nous voulons faire la distinction entre les différents types de seaux et la signification de leur contenu :
      • Qu'est-ce qu'une zone d'atterrissage?
      • Quelle est l'exactitude des données?
      • Quand a-t-elle été mise à jour pour la dernière fois?
      • définition d'une entité logique ou de son attribut
  5. Base de données autonome avec intelligence artificielle - Se connecter au catalogue de données

    Connecter une base de données d'IA autonome au catalogue de données. Vous devez vous assurer que les données d'identification utilisées pour établir cette connexion utilisent un principal OCI autorisé à accéder à la ressource de catalogue de données. Pour plus d'informations, voir Politiques de catalogue de données et Accéder aux ressources en nuage en configurant des politiques et des rôles.

    1. Se connecter au catalogue de données
      -- 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. Synchroniser le catalogue de données avec Autonomous Database. Ici, nous synchroniserons toutes les ressources de stockage d'objets :
      
      -- 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 - Lancez maintenant l'exécution des interrogations sur le magasin d'objets.
      -- Query the Data !
      select *from dcat$phoenixobjstore_moviestream_gold.genre
      ;
  6. Modifier les schémas pour les objets

    Les noms de schéma par défaut sont assez compliqués. Simplifions-les en spécifiant à la fois la ressource et l'attribut personnalisé Oracle-Db-Schema du dossier dans le catalogue de données. Remplacez la ressource de données par PHX et les dossiers par landing et gold respectivement. Le schéma est une concaténation des deux.

    1. À partir du catalogue de données, naviguez jusqu'au seau moviestream_landing et remplacez la ressource par landing et gold respectivement.

      Avant modification :

      Après modification :

    2. Exécutez une autre synchronisation.

Exemple : Scénario de données partitionnées

Ce scénario illustre la création de tables externes dans la base de données d'intelligence artificielle autonome basées sur des entités logiques du catalogue de données collectées à partir de données partitionnées dans le magasin d'objets.

L'exemple suivant est basé sur Exemple : MovieStream Scénario et a été adapté pour démontrer l'intégration à des données partitionnées. Le catalogue de données est utilisé pour collecter ces sources, puis fournir un contexte d'affaires aux données. Pour plus de détails sur cet exemple, voir Exemple : MovieStream Scénario.

Pour plus d'informations sur l'utilisation du catalogue de données, voir Documentation sur le catalogue de données.

  1. Magasin d'objets - Vérifier les seaux, dossiers et fichiers
    1. Vérifiez les seaux de votre magasin d'objets.
      Par exemple, ci-dessous se trouvent les seaux d'atterrissage (moviestream_landing) et de zone aurifère (moviestream_gold) dans le stockage d'objets :
    2. Vérifiez les dossiers et les fichiers dans les seaux du magasin d'objets.
      Par exemple, ci-dessous se trouvent les dossiers du seau de renvoi (moviestream_landing) dans le stockage d'objets :
  2. Catalogue de données - Créer des modèles de nom de fichier
    1. Informez le catalogue de données de l'organisation de vos données à l'aide de modèles de nom de fichier. Il s'agit de préfixes de dossier ou d'expressions rationnelles utilisés pour catégoriser les fichiers. Les modèles de nom de fichier sont utilisés par le programme de collecte du catalogue de données pour dériver des entités logiques. Lorsqu'un préfixe de dossier est spécifié, le catalogue de données génère automatiquement des entités logiques à partir du préfixe de dossier spécifié dans le magasin d'objets. Le modèle de nom de fichier suivant est utilisé pour collecter les seaux dans l'exemple MovieStream. Voir Collecte de fichiers de stockage d'objets en tant qu'entités de données logiques pour plus de détails sur la création de modèles de nom de fichier.
      Préfixe du dossier Description
      workshop.db/ Crée des entités logiques pour les sources qui contiennent le chemin "workshop.db" dans le magasin d'objets.
    2. Pour créer des modèles de nom de fichier, allez à l'onglet Modèles de nom de fichier de votre catalogue de données et cliquez sur Créer un modèle de nom de fichier. Par exemple, l'onglet Créer un modèle de nom de fichier pour le catalogue de données moviestream est le suivant :
  3. Catalogue de données - Création de ressources de données
    1. Créez une ressource de données utilisée pour collecter des données à partir de votre magasin d'objets.
      Par exemple, une ressource de données nommée amsterdamObjStore est créée dans le catalogue de données moviestream :
    2. Ajouter une connexion à la ressource de données.
      Dans cet exemple, la ressource de données se connecte au compartiment de la ressource de stockage d'objets moviestream.
    3. Maintenant, associez vos modèles de nom de fichier à votre ressource de données. Sélectionnez Affecter des modèles de nom de fichier, vérifiez les modèles voulus et cliquez sur Affecter.
      Par exemple, voici les modèles affectés à la ressource de données amsterdamObjStore :
  4. Catalogue de données - Collecter des données à partir du magasin d'objets
    1. Collecter la ressource de données du catalogue de données. Sélectionnez les seaux de stockage d'objets contenant les données sources.
      Dans cet exemple, les seaux moviestream_gold et moviestream_landing du magasin d'objets sont sélectionnés pour la collecte.
    2. Après avoir exécuté le travail, vous voyez les entités logiques. Utilisez Parcourir les ressources de données pour les vérifier.
      Dans cet exemple, vous consultez l'entité logique sales_sample_parquet et ses attributs. Notez que le catalogue de données a identifié l'attribut month comme partitionné.
  5. Base de données autonome avec intelligence artificielle - Se connecter au catalogue de données

    Connecter une base de données d'IA autonome au catalogue de données. Vous devez vous assurer que les données d'identification utilisées pour établir cette connexion utilisent un principal OCI autorisé à accéder à la ressource de catalogue de données. Pour plus d'informations, voir Politiques de catalogue de données et Accéder aux ressources en nuage en configurant des politiques et des rôles.

    1. Se connecter au catalogue de données
      -- 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. Synchroniser le catalogue de données avec Autonomous Database. Ici, nous synchroniserons toutes les ressources de stockage d'objets :
      
      -- 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 - Lancez maintenant l'exécution des interrogations sur le magasin d'objets.
      -- 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. Modifier les schémas pour les objets

    Les noms de schéma par défaut sont assez compliqués. Simplifions-les en spécifiant à la fois la ressource et l'attribut personnalisé Oracle-Db-Schema du dossier dans le catalogue de données. Remplacez la ressource de données par PHX et les dossiers par landing et gold respectivement. Le schéma est une concaténation des deux.

    1. À partir du catalogue de données, naviguez jusqu'au seau moviestream_landing et remplacez la ressource par landing et gold respectivement.

      Avant modification :

      Après modification :

    2. Exécutez une autre synchronisation.