Requête de données externes avec Data Catalog

Oracle Cloud Infrastructure Data Catalog est le service de gestion des métadonnées d'Oracle Cloud qui vous permet de repérer des données et de prendre en charge la gouvernance des données. Il fournit un inventaire des ressources, un glossaire métier et un metastore commun pour les lacs de données.

Autonomous Database peut utiliser ces métadonnées pour simplifier de manière considérable la gestion de l'accès à la banque 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 Autonomous Database qui sont maintenus à jour avec les modifications apportées dans Data Catalog.

Pour plus d'informations sur Data Catalog, reportez-vous à la documentation de Data Catalog.

A propos de l'interrogation avec Data Catalog

Grâce à la synchronisation avec les métadonnées Data Catalog, Autonomous Database crée automatiquement des tables externes pour chaque entité logique collectée par Data Catalog. 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 immédiatement interroger 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 Autonomous Database à jour en ce qui concerne les modifications apportées aux données sous-jacentes et réduit les coûts d'administration car il gère automatiquement des centaines à des milliers de tables. Elle permet également à plusieurs instances Autonomous Database de partager le même catalogue de données, ce qui réduit encore les coûts de gestion et fournit un ensemble commun de définitions fonctionnelles.

Les dossiers/buckets Data Catalog sont des conteneurs qui se synchronisent avec les schémas Autonomous Database. Les entités logiques contenues dans ces dossiers/buckets sont mises en correspondance avec les tables externes Autonomous Database. Ces schémas et tables externes sont générés et tenus à jour automatiquement via le traitement de synchronisation :

  • Les dossiers/buckets sont mis en correspondance avec les schémas de base de données conçus à des fins d'organisation uniquement.
  • L'organisation est censée ê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.
  • Data Catalog est la source d'informations pour les tables contenues dans les schémas. Les modifications apportées dans Data Catalog mettent à jour les tables du schéma lors d'une synchronisation ultérieure.

Pour utiliser cette fonctionnalité, un administrateur Database Data Catalog lance une connexion à une instance Data Catalog, 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 entités logiques et des ressources de données collectées Data Catalog sélectionnées. 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 pour les sources de données externes et à créer des tables externes.

Remarque

Le package DBMS_DCAT est disponible pour effectuer les tâches requises afin d'interroger les ressources de données de banque d'objets Data Catalog. Reportez-vous à DBMS_DCAT Package.

Concepts relatifs à l'interrogation avec Data Catalog

Il est nécessaire de maîtriser ces concepts pour effectuer des interrogations avec Data Catalog.

Data Catalog

Data Catalog collecte les ressources de données qui pointent vers les sources de données de banque d'objets à interroger avec Autonomous Database. A partir de Data Catalog, vous pouvez indiquer l'organisation des données lors de la collecte, en prenant en charge différents modèles d'organisation de fichier. Dans le cadre du processus de collecte de Data Catalog, vous pouvez sélectionner les buckets et les fichiers à gérer dans la ressource. Pour plus d'informations, reportez-vous à Présentation de Data Catalog.

Banques d'objets

Les banques d'objets sont composées de buckets contenant divers objets. Voici quelques types courants d'objet trouvés dans ces buckets : fichiers CSV, parquet, avro, json et ORC. Les buckets ont généralement une structure ou un modèle de conception pour les objets qu'ils contiennent. Il existe de nombreuses méthodes de structure des données et d'interprétation de ces modèles.

Par exemple, un modèle de conception standard 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 les données de cette table. Les sous-dossiers sont souvent utilisés pour représenter des partitions de table (par exemple, un sous-dossier pour chaque jour). Data Catalog fait référence à chaque dossier de niveau supérieur en tant qu'entité logique et cette entité logique est mise en correspondance avec une table externe Autonomous Database.

Connexion

Une connexion est une connexion Autonomous Database à une instance Data Catalog. Pour chaque instance Autonomous Database, il peut y avoir des connexions à plusieurs instances Data Catalog. Les informations d'identification Autonomous Database doivent disposer des droits d'accès aux ressources Data Catalog qui ont été collectées à partir du stockage d'objet.

Collecter

Il s'agit d'un processus Data Catalog qui analyse le stockage d'objet et génère des entités logiques à partir de vos ensembles de données.

Ressource de Données

Une ressource de données dans Data Catalog représente une source de données, qui inclut les bases de données, Oracle Object Storage, Kafka, etc. Autonomous Database utilise les ressources Oracle Object Storage pour la synchronisation des métadonnées.

Entité de données

Une entité de données dans Data Catalog est une collection de données telle qu'une vue ou une table de base de données, ou un fichier unique. Elle possède généralement de nombreux attributs qui décrivent ses données.

Entité logique

Dans les lacs de données, de nombreux fichiers comprennent généralement une seule entité logique. Par exemple, vous pouvez disposer de fichiers de parcours de navigation quotidiens, qui partagent le même schéma et le même type de fichier.

Une entité logique Data Catalog est un groupe de fichiers Object Storage dérivés lors de la collecte en appliquant des modèles de nom de fichier créés et affectés à une ressource de données.

Object de données

Un objet de données Data Catalog 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 les fichiers du même schéma et du même type. Vous devez inscrire dans Data Catalog l'organisation de vos données. Les modèles de nom de fichier permettent d'identifier l'organisation de vos données. Dans Data Catalog, vous pouvez définir des modèles de nom de fichier à l'aide d'expressions régulières. Lorsque Data Catalog collecte une ressource de données avec un modèle de nom de fichier affecté, des entités logiques sont créées en fonction de ce modèle. En définissant et en affectant ces modèles aux ressources de données, vous pouvez regrouper plusieurs fichiers en entités logiques en fonction du modèle de nom de fichier.

Synchroniser (synchroniser)

Autonomous Database effectue des synchronisations avec Data Catalog pour maintenir automatiquement sa base de données à jour en fonction des modifications apportées aux données sous-jacentes. La synchronisation peut être effectuée manuellement ou selon une programmation.

Le processus de synchronisation crée des schémas et des tables externes en fonction des entités logiques et des ressources de données Data Catalog. Ces schémas sont protégés, ce qui signifie que leurs métadonnées sont gérées par Data Catalog. Pour modifier les métadonnées, vous devez apporter les modifications dans Data Catalog. Les schémas Autonomous Database reflètent les modifications après l'exécution de la synchronisation suivante. Pour plus d'informations, reportez-vous à Mise en correspondance de la synchronisation.

Synchronisation

Le processus de synchronisation crée et met à jour les schémas et les tables externes Autonomous Database en fonction des ressources de données, des dossiers, des entités logiques, des attributs et des remplacements personnalisés pertinents de Data Catalog.

Catalogue de données Autonomous Database Description du mapping

Ressource de données et dossier (bucket de stockage d'objet)

Nom de schéma

Valeurs par défaut :

Par défaut, le nom de schéma généré dans Autonomous Database est au format suivant :

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

  • dcat-con-id est l'identificateur de connexion Data Catalog unique. Pour plus d'informations sur la spécification de cet identificateur, reportez-vous au 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 Data Catalog.
  • folder-name est le nom du dossier Data Catalog. Ce dossier correspond à un bucket de stockage d'objet.

Personnalisations :

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

Exemples :

  • Si l'ID de connexion est DataModels, que le nom de la ressource est ObjectStorage, que le nom du dossier est HR et qu'il n'existe aucun remplacement de propriété personnalisée, le nom de 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'existe aucun remplacement de propriété personnalisée, le nom de 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 de schéma est DCAT$FIRSTASSET_FIRSTFOLDER
Entité logique Table externe

Les entités logiques sont mises en correspondance avec des tables externes. Si l'entité logique contient un attribut partitionné, elle est mise en correspondance avec une table externe partitionnée.

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

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

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

Attributs d'une entité logique colonnes de table externe

Nom de colonne : les noms de colonne de la table externe sont dérivés des noms d'affichage ou noms métier de l'attribut de l'entité logique correspondante.

Pour les entités logiques dérivées de 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 source.

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 la génération du nom de colonne :

  1. oracle-db-column-name
  2. Nom fonctionnel
  3. Afficher le nom

Type de colonne : la propriété personnalisée oracle-db-column-type remplace le type de colonne par défaut dérivé par Data Catalog.

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

Longueur de colonne : la propriété personnalisée oracle-db-column-length remplace la longueur de colonne par défaut d'un champ de chaîne dérivé par Data Catalog.

exactitude de colonne : la propriété personnalisée oracle-db-column-precision remplace la précision par défaut d'un nombre dérivé par Data Catalog.

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

échelle de colonne : la propriété personnalisée oracle-db-column-scale remplace l'échelle par défaut d'un nombre dérivé par Data Catalog.

Workflow standard avec Data Catalog

Un workflow standard d'actions peut être exécuté par les utilisateurs qui veulent effectuer des interrogations avec Data Catalog.

L'administration de Database Data Catalog crée une connexion entre l'instance Autonomous Database et une instance Data Catalog, puis configure et exécute une synchronisation entre Data Catalog et Autonomous Database. La synchronisation crée des tables et des schémas externes dans l'instance Autonomous Database en fonction du contenu Data Catalog synchronisé.

L'administrateur de requête de catalogue de données de base de données ou l'administrateur de base de données accorde un accès en lecture 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 obtenir une description des différents types d'utilisateur inclus dans ce tableau, reportez-vous à Utilisateurs et rôles de catalogue de données.

Remarque

Le package DBMS_DCAT est disponible pour effectuer les tâches requises afin d'interroger les ressources de données de banque d'objets Data Catalog. Reportez-vous à DBMS_DCAT Package.
Action Qui est l'utilisateur Description

Création de stratégies

Administrateur Database Data Catalog

Le principal de ressource Autonomous Database ou les informations d'identification utilisateur Autonomous Database doivent avoir les droits appropriés de gestion de Data Catalog et de lecture à partir du stockage d'objet.

Plus d'informations : Informations d'identification et stratégies IAM requises.

Créer des informations d'identification

Administrateur Database Data Catalog

Assurez-vous que les informations d'identification de base de données sont en place pour accéder à Data Catalog et interroger la banque d'objets. L'utilisateur appelle DBMS_CLOUD.CREATE_CREDENTIAL pour créer des informations d'identification utilisateur et/ou DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL pour activer les principaux de ressource.

Informations supplémentaires : Procédure DBMS_CLOUD CREATE_CREDENTIAL, Utilisation du principal de ressource avec DBMS_CLOUD.

Création de connexions à Data Catalog

Administrateur Database Data Catalog

Pour lancer une connexion entre une instance Autonomous Database et une instance Data Catalog, l'utilisateur appelle DBMS_DCAT.SET_DATA_CATALOG_CONN afin d'indiquer l'instance Data Catalog cible. Les connexions d'une instance Autonomous Database à plusieurs instances Data Catalog sont prises en charge.

La connexion à l'instance Data Catalog doit utiliser un objet d'identification de base de données avec des privilèges Oracle Cloud Infrastructure (OCI) suffisants. Par exemple, le jeton de service de principal de ressource de l'instance Autonomous Database ou un utilisateur OCI avec des privilèges suffisants peuvent être utilisés.

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

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

Création d'une synchronisation sélective

Administrateur Database Data Catalog

Créez un travail de synchronisation en sélectionnant les objets Data Catalog à synchroniser. L'utilisateur peut effectuer les tâches suivantes :
  • Sélectionner les ressources de données/dossiers de données à synchroniser.
  • Sélectionner les entités logiques individuelles à synchroniser.
  • Prévisualiser les tables externes résultantes avant la synchronisation.
  • Modifier les tables externes (par exemple, le nom) en modifiant les propriétés personnalisées sur Data Catalog.

Plus d'informations : reportez-vous à Procédure CREATE_SYNC_JOB, à Procédure DROP_SYNC_JOB et à Mise en correspondance de la synchronisation.

Synchronisation avec Data Catalog

Administrateur Database Data Catalog

L'utilisateur lance une opération de synchronisation. La synchronisation est lancée manuellement via l'appel de la procédure DBMS_DCAT.RUN_SYNC ou automatiquement dans le cadre d'un travail de synchronisation programmé.

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

Informations supplémentaires : reportez-vous à Procédure RUN_SYNC, à Procédure CREATE_SYNC_JOB et à Mise en correspondance de la synchronisation.

Surveillance de la synchronisation et affichage des journaux

Administrateur Database Data Catalog

L'utilisateur peut visualiser le statut de la synchronisation en interrogeant la vue USER_LOAD_OPERATIONS. Une fois le processus de synchronisation terminé, l'utilisateur peut afficher le journal des résultats de la synchronisation, avec des détails sur les mises en correspondance des entités logiques avec des tables externes.

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

Accorder des privilèges

Administrateur de requête de catalogue de données de base, administrateur de base de données

L'administrateur de requête Data Catalog de base de données ou l'administrateur de base de données doit accorder un accès READ 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 des tables externes

Analyste de données

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

Les analystes de données peuvent examiner 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 : Mise en correspondance de la synchronisation.

Terminaison des connexions à Data Catalog

Administrateur Database Data Catalog

Pour enlever une association Data Catalog existante, l'utilisateur appelle la procédure UNSET_DATA_CATALOG_CONN.

Cette action est effectuée uniquement lorsque vous ne prévoyez plus d'utiliser Data Catalog et les tables externes dérivées du catalogue. Cette action supprime (DROP) les métadonnées Data Catalog et supprime (DROP) les tables externes synchronisées de l'instance Autonomous Database. Les propriétés personnalisées sur Data Catalog et les stratégies OCI ne sont pas concernées.

Informations supplémentaires : Procédure UNSET_DATA_CATALOG_CONN.

Exemple : scénario MovieStream

Dans ce scénario, MovieSideream capture des données dans une zone de destination sur Object Storage. La plupart de ces données, mais pas nécessairement toutes, sont ensuite utilisées pour créer un flux vers une instance Autonomous Database. Avant d'alimenter une instance Autonomous Database, les données sont transformées, nettoyées, puis stockées dans la zone "gold".

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

Pour plus d'informations sur l'utilisation de Data Catalog, reportez-vous à la documentation de Data Catalog.

  1. Banque d'objets - Vérification des buckets, dossiers et fichiers
    1. Vérifiez les buckets dans la banque d'objets.
      Voici, par exemple, les buckets de destination (moviestream_landing) et de zone gold (moviestream_gold) dans le stockage d'objets :
    2. Vérifiez les dossiers et les fichiers dans les buckets de la banque d'objets.
      Par exemple, voici les dossiers du bucket de renvoi (moviestream_landing) dans le stockage d'objets :
  2. Data Catalog - Création de modèles de nom de fichier
    1. Informez Data Catalog de l'organisation de vos données à l'aide de modèles de nom de fichier. Ce sont des expressions régulières utilisées pour classer les fichiers. Les modèles de nom de fichier sont utilisés par le collecteur Data Catalog pour déterminer les entités logiques. Les deux modèles de nom de fichier suivants sont utilisés pour collecter les buckets de l'exemple MovieStream. Pour plus d'informations sur la création de modèles de nom de fichier, reportez-vous à Collecte de fichiers Object Storage en tant qu'entités de données logiques.
      Type Hive Type 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 d'objet.
      • Pour garantir l'unicité dans le bucket, le nom obtenu est (nom-bdb).(nom de dossier).
      • Crée une entité logique basée sur le nom du dossier qui se trouve dans 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, accédez à l'onglet Modèles de nom de fichier de votre catalogue de données, puis cliquez sur Créer un modèle de nom de fichier. L'exemple suivant montre l'onglet Créer un modèle de nom de fichier pour le catalogue de données moviestream :
  3. Data Catalog - Création d'une ressource de données
    1. Créez une ressource de données à utiliser pour collecter des données à partir de votre banque 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 à votre ressource de données
      Dans cet exemple, la ressource de données se connecte au compartiment de la ressource de stockage d'objet 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, cochez les modèles de votre choix et cliquez sur Affecter.
      Par exemple, voici les modèles affectés à la ressource de données phoenixObjStore :Description de l'image assign_filename_patterns_v1.png
      Description de l'illustration assign_filename_patterns_v1.png
  4. Data Catalog - collecte des données à partir de la banque d'objets
    1. Collectez la ressource de données Data Catalog. Sélectionnez les buckets de banque d'objets contenant les données source.
      Dans cet exemple, les buckets moviestream_gold et moviestream_landing de la banque d'objets sont sélectionnés pour la collecte.
    2. Après avoir exécuté le travail, vous voyez les entités logiques. Utilisez l'onglet Rechercher des ressources de données pour les vérifier.
      Dans cet exemple, vous examinez l'entité logique customer-extension et ses attributs.

      Si vous disposez d'un glossaire, Data Catalog recommande des catégories et des termes à associer à l'entité et à ses attributs. Cela fournit un contexte métier aux éléments. Les schémas, les tables et les colonnes sont rarement explicites.

      Dans notre exemple, nous voulons faire la distinction entre les différents types de buckets et la signification de leur contenu :
      • qu'est-ce qu'une zone de destination ?
      • quelle est la précision des données ?
      • quand ont-elles été mises à jour pour la dernière fois ?
      • quelle est la définition d'une entité logique ou de son attribut ?
  5. Autonomous Database - Connexion à Data Catalog

    Connectez Autonomous Database à Data Catalog. Assurez-vous que les informations d'identification utilisées pour établir cette connexion utilisent un principal OCI autorisé à accéder à la ressource Data Catalog. Pour plus d'informations, reportez-vous à Stratégies Data Catalog et à Accès aux ressources cloud en configurant des stratégies et des rôles.

    1. Connexion à 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. Synchronisez Data Catalog avec Autonomous Database. La commande suivante synchronise toutes les ressources Object Storage :
      
      -- 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 - Commencez à exécuter des requêtes sur la banque d'objets.
      -- Query the Data !
      select *from dcat$phoenixobjstore_moviestream_gold.genre
      ;
  6. Modification des schémas des objets

    Les noms de schéma par défaut sont plutôt complexes. Vous pouvez les simplifier en indiquant la ressource et l'attribut personnalisé Oracle-Db-Schema du dossier dans Data Catalog. Affectez à la ressource de données la valeur PHX et aux dossiers la valeur landing et gold respectivement. Le schéma est une concaténation des deux.

    1. Dans Data Catalog, accédez au bucket 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 montre comment créer des tables externes dans Autonomous Database, basées sur des entités logiques Data Catalog collectées à partir de données partitionnées dans la banque d'objets.

L'exemple suivant est basé sur Exemple : scénario MovieStream et a été adapté pour montrer l'intégration avec des données partitionnées. Data Catalog permet de collecter ces sources, puis de fournir un contexte métier aux données. Pour plus d'informations sur cet exemple, reportez-vous à Exemple : scénario MovieStream.

Pour plus d'informations sur l'utilisation de Data Catalog, reportez-vous à la documentation de Data Catalog.

  1. Banque d'objets - Vérification des buckets, dossiers et fichiers
    1. Vérifiez les buckets dans la banque d'objets.
      Voici, par exemple, les buckets de destination (moviestream_landing) et de zone gold (moviestream_gold) dans le stockage d'objets :
    2. Vérifiez les dossiers et les fichiers dans les buckets de la banque d'objets.
      Par exemple, voici les dossiers du bucket de renvoi (moviestream_landing) dans le stockage d'objets :
  2. Data Catalog - Création de modèles de nom de fichier
    1. Informez Data Catalog de l'organisation de vos données à l'aide de modèles de nom de fichier. Il s'agit de préfixe de dossier ou d'expression régulière utilisés pour classer les fichiers. Les modèles de nom de fichier sont utilisés par le collecteur Data Catalog pour déterminer les entités logiques. Lorsqu'un préfixe de dossier est indiqué, Data Catalog génère automatiquement des entités logiques à partir du préfixe de dossier indiqué dans la banque d'objets. Le modèle de nom de fichier suivant est utilisé pour collecter les buckets dans l'exemple MovieStream. Pour plus d'informations sur la création de modèles de nom de fichier, reportez-vous à Collecte de fichiers Object Storage en tant qu'entités de données logiques.
      préfixe de dossier Description
      workshop.db/ Crée des entités logiques pour les sources qui contiennent le chemin "workshop.db" dans la banque d'objets.
    2. Pour créer des modèles de nom de fichier, accédez à l'onglet Modèles de nom de fichier de votre catalogue de données, puis cliquez sur Créer un modèle de nom de fichier. L'exemple suivant montre l'onglet Créer un modèle de nom de fichier pour le catalogue de données moviestream :
  3. Data Catalog - Création d'une ressource de données
    1. Créez une ressource de données à utiliser pour collecter des données à partir de votre banque 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 à votre ressource de données
      Dans cet exemple, la ressource de données se connecte au compartiment de la ressource de stockage d'objet 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, cochez les modèles de votre choix et cliquez sur Affecter.
      Par exemple, voici les modèles affectés à la ressource de données amsterdamObjStore :
  4. Data Catalog - collecte des données à partir de la banque d'objets
    1. Collectez la ressource de données Data Catalog. Sélectionnez les buckets de banque d'objets contenant les données source.
      Dans cet exemple, les buckets moviestream_gold et moviestream_landing de la banque d'objets sont sélectionnés pour la collecte.
    2. Après avoir exécuté le travail, vous voyez les entités logiques. Utilisez l'onglet Rechercher des ressources de données pour les vérifier.
      Dans cet exemple, vous examinez l'entité logique sales_sample_parquet et ses attributs. Data Catalog a identifié l'attribut month comme partitionné.
  5. Autonomous Database - Connexion à Data Catalog

    Connectez Autonomous Database à Data Catalog. Assurez-vous que les informations d'identification utilisées pour établir cette connexion utilisent un principal OCI autorisé à accéder à la ressource Data Catalog. Pour plus d'informations, reportez-vous à Stratégies Data Catalog et à Accès aux ressources cloud en configurant des stratégies et des rôles.

    1. Connexion à 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. Synchronisez Data Catalog avec Autonomous Database. La commande suivante synchronise toutes les ressources Object Storage :
      
      -- 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 - Commencez à exécuter des requêtes sur la banque 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. Modification des schémas des objets

    Les noms de schéma par défaut sont plutôt complexes. Vous pouvez les simplifier en indiquant la ressource et l'attribut personnalisé Oracle-Db-Schema du dossier dans Data Catalog. Affectez à la ressource de données la valeur PHX et aux dossiers la valeur landing et gold respectivement. Le schéma est une concaténation des deux.

    1. Dans Data Catalog, accédez au bucket moviestream_landing et remplacez la ressource par landing et gold, respectivement.

      Avant modification :

      Après modification :

    2. Exécutez une autre synchronisation.