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

Autonomous AI Database prend en charge un système de synchronisation avec une instance Amazon AWS Glue Data Catalog.

À propos de l'interrogation avec AWS Glue Data Catalog

Autonomous AI Database vous permet de synchroniser avec les métadonnées du catalogue de données de colle Amazon Web Service (AWS). Une table externe de base de données est automatiquement créée par Autonomous AI Database pour chaque table collectée par AWS Glue sur les données stockées dans Amazon Simple Storage Service (S3). Les utilisateurs peuvent interroger les données stockées dans S3 à partir de la base de données Autonomous AI Database sans avoir à dériver manuellement le schéma pour les sources de données externes et à créer des tables externes.

Amazon AWS Glue Data Catalog est un service centralisé de gestion des métadonnées qui aide les professionnels des données à découvrir des données et prend en charge la gouvernance des données dans le cloud AWS. Une instance de base de données d'IA autonome a la possibilité de synchroniser automatiquement les métadonnées du catalogue de données avec AWS Glue Data Catalog, ce qui permet aux utilisateurs de base de données d'utiliser immédiatement une base de données d'IA autonome pour interroger les données stockées dans le nuage AWS.

La synchronisation avec AWS Glue Data Catalog a les mêmes propriétés que la synchronisation avec OCI Data Catalog. La synchronisation est dynamique, ce qui permet de tenir la base de données à jour en ce qui concerne les modifications apportées aux données sous-jacentes, ce qui réduit les coûts d'administration car elle gère automatiquement des centaines à des milliers de tables.

Concepts liés à l'interrogation avec AWS Glue Data Catalog

Une compréhension des concepts suivants est nécessaire pour effectuer des interrogations avec les catalogues de données Amazon Web Service (AWS) Glue.

Catalogue de données de la colle AWS : Base de données

Une base de données AWS Glue représente un ensemble de définitions de table relationnelle, organisées en un groupe logique. Chaque instance de catalogue de données AWS Glue gère plusieurs bases de données.

Catalogue de données de colle AWS : Table

Une table AWS Glue représente une table relationnelle sur les données stockées dans le cloud AWS. Une table AWS Glue définit le schéma des données sous-jacentes et se compose d'informations de colonne, d'informations de partition, d'informations de sérialisation, d'informations de stockage, de statistiques, de métadonnées définies par l'utilisateur et d'autres métadonnées. Les tables du catalogue de données AWS Glue peuvent être créées manuellement ou automatiquement à l'aide d'un robot d'indexation AWS Glue.

Glue Data Catalog : Robot d'indexation

Vous pouvez utiliser un robot d'indexation pour alimenter le catalogue de données AWS Glue avec des tables. Il s'agit de la méthode principale utilisée par la plupart des utilisateurs d'AWS Glue. Un robot d'indexation peut analyser plusieurs magasins de données en une seule exécution. Une fois terminé, le robot d'indexation crée ou met à jour une ou plusieurs tables dans votre catalogue de données. Les tâches d'extraction, de transformation et de chargement (ETL) que vous définissez dans AWS Glue utilisent ces tables de catalogue de données comme sources et cibles. La tâche d'ETC lit et écrit dans les magasins de données indiqués dans les tables du catalogue de données source et cible.

Les tables AWS Glue peuvent être créées manuellement par l'utilisateur ou automatiquement à l'aide d'un robot d'indexation prédéfini ou personnalisé. Les robots d'indexation se connectent aux magasins de données sous-jacents (par exemple, Amazon S3), appellent des classificateurs pour dériver le schéma des données et créent des tables AWS Glue pour stocker les métadonnées déduites. AWS Glue fournit des classificateurs pour les types de fichier courants, tels que CSV, JSON, Parquet et AVRO.

Mappage entre la base de données IA autonome et la colle AWS

Au cours du processus de synchronisation, des tables externes sont créées dans la base de données Autonomous AI Database dérivée des bases de données AWS Glue Data Catalog et des tables sur Amazon S3.

AWS Glue organise les métadonnées collectées dans les bases de données et les tables. Une base de données AWS Glue est un ensemble de définitions de table relationnelle. Tables AWS Glue qui décrivent le schéma commun et les propriétés des fichiers associés à la table.

AWS Glue suit le modèle relationnel de représentation des attributs. Pour le mappage de schémas hiérarchiques à des schémas relationnels, AWS Glue infère le schéma des données semi-structurées et affleure les données à un schéma relationnel à l'aide d'un processus ETL.

Le tableau suivant représente le mappage entre les concepts du catalogue de données OCI et les concepts du catalogue de données AWS Glue.

Tableau 3-5 Mappage du catalogue de données OCI au catalogue de données de colle AWS

Catalogue de données OCI Catalogue de données AWS Glue Oracle Database
Ressource de données Database Schéma
Dossier (Seau) Schéma
Entité logique Table Table

Flux de travail d'utilisateur pour l'interrogation avec AWS Glue Data Catalog

Le flux de travail utilisateur de base pour l'interrogation des données AWS S3 avec AWS Glue Data Catalog implique la connexion à AWS Glue Data Catalog, la synchronisation avec Autonomous AI Database pour créer automatiquement des tables externes, puis l'interrogation des données S3.

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 AWS Glue, puis configure et exécute une synchronisation (synchronisation) entre le catalogue de données AWS Glue et la base de données Autonomous AI. Autonomous AI Database crée automatiquement une table externe pour les tables collectées par AWS Glue à propos des données stockées dans S3.

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 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 la base de données IA autonome sans avoir à dériver manuellement le schéma pour les sources de données externes et créer des tables externes.

Utilisateurs

Le tableau ci-dessous décrit les différents types d'utilisateur qui effectuent les actions de flux de travail des utilisateurs.

Utilisateur Description
Administrateur du catalogue de données de base de données Utilisateur de base de données doté du rôle DCAT_SYNC.
Administrateur d'interrogation du catalogue de données de base de données L'utilisateur de base de données peut accorder l'accès aux tables externes créées automatiquement à d'autres utilisateurs.
Analyste des données Utilisateur de base de données sur Autonomous AI Database interrogeant des données dans AWS S3 soit en interrogeant des tables externes créées automatiquement, soit en interagissant directement avec AWS Glue Data Catalog.

Utilisateur du catalogue de données AWS Glue

Utilisateur AWS ayant accès à un catalogue de données AWS Glue.

Utilisateur du stockage d'objets AWS S3

Utilisateur AWS ayant accès aux données stockées dans AWS S3

Flux de travail d'utilisateur

Le tableau ci-dessous décrit chaque action incluse dans le flux de travail et le type d'utilisateur pouvant effectuer l'action.

Note

L'ensemble DBMS_DCAT est disponible pour effectuer les tâches requises pour interroger le stockage d'objets AWS S3 à l'aide du catalogue de données AWS Glue. 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

Les données d'identification d'utilisateur de la base de données d'intelligence artificielle autonome doivent disposer des autorisations appropriées pour accéder au catalogue de données AWS Glue et pour effectuer des lectures à partir du stockage d'objets S3.

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 base de données sont en place pour accéder au catalogue de données AWS Glue et interroger le stockage d'objets S3. L'utilisateur appelle DBMS_CLOUD.CREATE_CREDENTIAL pour créer les données d'identification de l'utilisateur.
Note

Seules les données d'identification Amazon Web Services (AWS) sont prises en charge. Les données d'identification AWS Amazon Resource Names (ARN) ne sont pas prises en charge.

Informations supplémentaires : DBMS_CLOUD CREATE_CREDENTIAL Procédure

Connexion

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

Établissez une connexion entre une instance de base de données d'IA autonome et une instance de catalogue de données AWS Glue. La connexion utilise les privilèges de l'utilisateur du catalogue de données AWS Glue. Les connexions d'une instance Autonomous AI Database à plusieurs instances AWS Glue Data Catalog sont prises en charge.

Pour lancer une connexion entre une instance Autonomous AI Database et une instance AWS Glue Data Catalog, l'utilisateur :
  1. Appelle DBMS_DCAT.SET_DATA_CATALOG_CREDENTIAL à l'aide de données d'identification AWS ( Procédure CREATE_CREDENTIAL) pour spécifier l'instance AWS Glue Data Catalog cible.
  2. Appelle DBMS_DCAT.SET_OBJECT_STORE_CREDENTIAL à l'aide de données d'identification AWS (Procédure CREATE_CREDENTIAL) pour accéder au stockage d'objets AWS S3.
  3. Appelle DBMS_DCAT.SET_DATA_CATALOG_CONN à l'aide d'un point d'extrémité du service de colle AWS

Une fois la connexion établie, Autonomous AI Database stocke les métadonnées associées, telles que l'ID catalogue AWS Glue, la région, le point d'extrémité et les objets de données d'identification.

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

Synchroniser

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

L'utilisateur peut démarrer manuellement une synchronisation avec les catalogues de données AWS Glue connectés à l'aide de DBMS_DCAT.RUN_SYNC ou créer des synchronisations automatiques à l'aide de DBMS_DCAT.CREATE_SYNC_JOB.

La synchronisation effectue les opérations suivantes :
  • Crée des tables externes dans la base de données d'IA autonome qui sont dérivées du catalogue de données AWS Glue connecté.
  • Permet aux utilisateurs de prévisualiser les métadonnées des bases de données et des tables AWS Glue.
  • Modifie ou supprime les tables externes synchronisées existantes si les métadonnées AWS Glue ont été modifiées.
Informations supplémentaires : Voir Procédure RUN_SYNC, CREATE_SYNC_JOB Procédure, DROP_SYNC_JOB Procédure, Mappage de synchronisation

Surveiller la synchronisation

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 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 aux utilisateurs analystes de données les privilèges READ sur les tables externes générées. Cela permet aux analystes de données d'interroger les tables externes générées.

Interroger

Analyste des données

Les analystes de données peuvent examiner les schémas et les tables synchronisés dans les schémas GLUE$* et interroger les tables externes au moyen de tout outil ou application prenant en charge Oracle SQL.

Les données dans S3 sont accessibles à l'aide des privilèges de l'utilisateur du stockage d'objets AWS S3.

Informations supplémentaires : Exemple : Interrogation avec le catalogue de données AWS Glue

Mettre fin aux connexions

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 d'utiliser le catalogue de données AWS Glue connecté et les tables externes dérivées du catalogue. Cette action supprime les métadonnées du catalogue de données AWS Glue et supprime les tables externes synchronisées de l'instance de base de données IA autonome.

Informations supplémentaires : Procédure UNSET_DATA_CATALOG_CONN

Exemple : Interrogation avec AWS Glue Data Catalog

Cet exemple montre comment exécuter des requêtes sur des jeux de données stockés dans Amazon Simple Storage Service (Amazon S3) à l'aide d'un catalogue de données AWS Glue.

Dans cet exemple, les métadonnées d'un catalogue de données AWS Glue sont inspectées pour voir quels objets Amazon S3 ont déjà été balayés et existent dans le catalogue de données. Autonomous AI Database est ensuite associé au catalogue de données AWS Glue et à Amazon S3. Le catalogue de données est synchronisé avec Autonomous AI Database pour créer des tables externes sur les jeux de données stockés dans Amazon S3. Les tables externes sont utilisées pour interroger les jeux de données dans Amazon S3.

  1. Examinez les métadonnées dans AWS Glue Data Catalog.
    1. Lancez la console AWS Glue.Description de glue_console.png :
      Description de l'illustration glue_console.png
    2. Naviguez jusqu'au catalogue de données, aux bases de données et aux tables pour rechercher des objets existants.

      Dans cet exemple, certains objets existent dans Amazon S3 pour lesquels AWS Glue a précédemment balayé et créé des tables, comme illustré ci-dessous :

      Description de glue_tables.png :
      Description de l'illustration glue_tables.png
  2. Associer AWS Glue à Autonomous AI Database.
    1. Créez des données d'identification dans Autonomous AI Database.

      L'appel de procédure suivant inclut l'ID d'accès et la clé secrète pour fournir à Autonomous AI Database l'accès aux données sous-jacentes dans Amazon S3.

      exec dbms_cloud.create_credential('CRED_AWS','<access id>', '<access key>');

    2. Associez les informations d'identification au catalogue de données AWS Glue et au stockage d'objets Amazon S3.
      Ces appels de procédure associent respectivement le catalogue de données et le stockage d'objets aux informations d'identification et de connexion.
      exec dbms_dcat.set_data_catalog_credential('CRED_AWS');
      exec dbms_dcat.set_object_store_credential('CRED_AWS');

    3. Configurez une région AWS dans laquelle Glue s'exécute.
      exec dbms_dcat.set_data_catalog_conn(region => 'us-west-2', catalog_type=>'AWS_GLUE');
  3. Synchronisez les métadonnées pour créer des tables externes dans la base de données IA autonome dérivée des bases de données et des tables AWS Glue.
    1. Maintenant que l'association est terminée, utilisez la vue all_glue_databases pour rechercher les bases de données qui se trouvent dans un catalogue de données AWS Glue.
      select * from all_glue_databases order by name;

    2. Utilisez la vue all_glue_tables pour obtenir la liste des tables disponibles pour la synchronisation.
      select * from all_glue_tables order by database_name, name;

      Description de glue_table_list.png :
      Description de l'illustration glue_table_list.png

    3. Synchronisez la base de données autonome avec deux tables, store et item, trouvées dans la base de données parq.
          begin
          dbms_dcat.run_sync(
              synced_objects => '
                  {
                      "database_list": [
                          {
                          "database": "parq",
                          "table_list": ["store","item"]
                          }
                       ]
                   }',
          error_semantics => 'STOP_ON_ERROR');
          end;
          /

  4. Inspectez de nouveaux objets dans Autonomous AI Database et exécutez une interrogation au-dessus de S3.
    1. Utilisez SQL Developer pour afficher les nouveaux objets créés par l'opération de synchronisation précédente.

      Le schéma GLUE$PARQ_TPCDS_ORACLE_PARQ a été généré et nommé automatiquement par l'appel de procédure dbms_dcat.run_sync.

      Description de glue_sql_dev.png :
      Description de l'illustration glue_sql_dev.png

    2. Exécutez une interrogation SQL sur les magasins de jeux de données dans Amazon S3.
      SELECT * FROM glue$parq_tpcds_oracle_parq.store;