Interrogation des données externes avec AWS Glue Data Catalog

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

A propos de l'interrogation avec AWS Glue Data Catalog

Autonomous Database vous permet de vous synchroniser avec les métadonnées du catalogue de données de colle du service Web Amazon (AWS). Une table externe de base de données est automatiquement créée par Autonomous Database pour chaque table collectée par AWS Glue à propos des données stockées dans Amazon Simple Storage Service (S3). Les utilisateurs peuvent interroger les données stockées dans S3 à partir d'Autonomous 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 de gestion de métadonnées centralisé 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 Autonomous Database 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 Autonomous Database pour interroger les données stockées dans le cloud AWS.

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

Concepts relatifs à l'interrogation avec AWS Glue Data Catalog

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

Catalogue de données AWS Glue : Base de données

Une base de données AWS Glue représente un ensemble de définitions de tables relationnelles, 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 AWS Glue : 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 sur les colonnes, les partitions, les informations de sérialisation, les informations de stockage, les statistiques, les 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 AWS Glue.

Glue Data Catalog : analyseur de liens (crawler)

Vous pouvez utiliser un analyseur de liens (crawler) 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 peut analyser plusieurs banques de données en une seule exécution. Une fois terminé, le robot crée ou met à jour une ou plusieurs tables de votre catalogue de données. Les travaux d'extraction, de transformation et de chargement (ETL) que vous définissez dans AWS Glue utilisent ces tables de catalogue de données en tant que sources et cibles. Le travail ETL lit et écrit dans les banques de données indiquées 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 prédéfini ou personnalisé. Les analyseurs de liens se connectent aux banques de données sous-jacentes (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 inférées. AWS Glue fournit des classificateurs pour les types de fichiers courants, tels que CSV, JSON, Parquet et AVRO.

Mise en correspondance entre Autonomous Database et AWS Glue

Au cours du processus de synchronisation, des tables externes sont créées dans Autonomous Database dérivées des bases de données et des tables AWS Glue Data Catalog 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 pour la représentation des attributs. Pour mapper des schémas hiérarchiques à des schémas relationnels, AWS Glue infère le schéma des données semi-structurées et met à plat les données vers un schéma relationnel à l'aide d'un processus ETL.

Le tableau suivant représente la mise en correspondance entre les concepts OCI Data Catalog et les concepts AWS Glue Data Catalog.

Tableau 3-5 Correspondance entre le catalogue de données OCI et AWS Glue Data Catalog

OCI Data Catalog Catalogue de données AWS Glue Oracle Database
ressource de données base de données Schéma
Dossier (Bucket) Schéma
Entité logique Table Table

Workflow utilisateur pour l'interrogation avec AWS Glue Data Catalog

Le workflow 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 Database pour créer automatiquement des tables externes, puis l'interrogation des données S3.

L'administrateur Database Data Catalog crée une connexion entre l'instance Autonomous Database et une instance AWS Glue Data Catalog, puis configure et exécute une synchronisation entre AWS Glue Data Catalog et Autonomous Database. Autonomous 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 de requête Database Data Catalog ou l'administrateur de base de données octroie 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 Autonomous Database 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 workflow utilisateur.

Utilisateur Description
Administrateur Database Data Catalog Utilisateur de base de données avec le rôle DCAT_SYNC.
Administrateur de requête Database Data Catalog L'utilisateur de base de données peut accorder l'accès aux tables externes créées automatiquement à d'autres utilisateurs.
Analyste de données Utilisateur de base de données sur Autonomous Database qui interroge les données dans AWS S3 en interrogeant les tables externes créées automatiquement ou en interagissant directement avec AWS Glue Data Catalog.

Utilisateur AWS Glue Data Catalog

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

Utilisateur AWS S3 Object Storage

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

Workflow d'utilisateur

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

Remarque

Le package DBMS_DCAT est disponible pour effectuer les tâches requises pour interroger le stockage d'objet AWS S3 à l'aide d'AWS Glue Data Catalog. Reportez-vous à Package DBMS_DCAT.
Action Qui est l'utilisateur Description
Création de stratégies Administrateur Database Data Catalog

Les informations d'identification utilisateur Autonomous Database doivent disposer des droits appropriés d'accès à AWS Glue Data Catalog et de lecture à partir du stockage d'objet S3.

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 à AWS Glue Data Catalog et interroger le stockage d'objet S3. L'utilisateur appelle DBMS_CLOUD.CREATE_CREDENTIAL pour créer des informations d'identification utilisateur.
Remarque

Seules les informations d'identification Amazon Web Services (AWS) sont prises en charge. Les informations d'identification de noms de ressource Amazon AWS ne sont pas prises en charge.

Informations supplémentaires : Procédure DBMS_CLOUD CREATE_CREDENTIAL

Connecter

Administrateur Database Data Catalog

Etablissez une connexion entre une instance Autonomous Database et une instance AWS Glue Data Catalog. La connexion utilise les privilèges de l'utilisateur AWS Glue Data Catalog. Les connexions d'une instance Autonomous Database à plusieurs instances AWS Glue Data Catalog sont prises en charge.

Pour lancer une connexion entre une instance Autonomous Database et une instance AWS Glue Data Catalog, l'utilisateur doit :
  1. Appelle DBMS_DCAT.SET_DATA_CATALOG_CREDENTIAL à l'aide d'informations d'identification AWS (Procédure CREATE_CREDENTIAL) pour indiquer l'instance AWS Glue Data Catalog cible.
  2. Appelle DBMS_DCAT.SET_OBJECT_STORE_CREDENTIAL à l'aide d'informations d'identification AWS (Procédure CREATE_CREDENTIAL) pour accéder au stockage d'objet AWS S3.
  3. Appelle DBMS_DCAT.SET_DATA_CATALOG_CONN à l'aide d'une adresse de service AWS Glue

Une fois la connexion établie, Autonomous Database stocke les métadonnées associées, telles que l'ID de catalogue AWS Glue, la région, l'adresse et les objets d'informations d'identification.

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

Synchroniser

Administrateur Database Data Catalog

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 Autonomous Database 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 tables AWS Glue.
  • Modifie ou supprime les tables externes synchronisées existantes si les métadonnées AWS Glue ont changé.
Informations supplémentaires : reportez-vous à Procédure RUN_SYNC, à Procédure CREATE_SYNC_JOB, à Procédure DROP_SYNC_JOB et à Mise en correspondance de la synchronisation.

Surveiller la synchronisation

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 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 des privilèges de 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.

Requête

Analyste de données

Les analystes de données peuvent consulter les schémas et les tables synchronisés dans les schémas GLUE$* et interroger les tables externes via n'importe quel outil ou n'importe quelle application prenant en charge Oracle SQL.

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

Informations supplémentaires : Exemple : requête avec AWS Glue Data Catalog

Mettre fin aux connexions

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 le catalogue de données AWS Glue connecté et les tables externes dérivées du catalogue. Cette action supprime les métadonnées AWS Glue Data Catalog et supprime (Drop) les tables externes synchronisées de l'instance Autonomous Database.

Informations supplémentaires : Procédure UNSET_DATA_CATALOG_CONN.

Exemple : requête avec AWS Glue Data Catalog

Cet exemple vous guide tout au long du processus d'exécution de requêtes sur des ensembles 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é analysés et existent dans le catalogue de données. Autonomous Database est ensuite associé à AWS Glue Data Catalog et à Amazon S3. Le catalogue de données est synchronisé avec Autonomous Database pour créer des tables externes sur les ensembles 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. Inspectez 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. Accédez 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 analysé et créé des tables, comme indiqué ci-dessous :

      Description de glue_tables.png
      Description de l'image glue_tables.png
  2. Associez AWS Glue à Autonomous Database.
    1. Créez des informations d'identification dans Autonomous Database.

      L'appel de procédure suivant inclut l'ID d'accès et la clé secrète pour fournir à Autonomous 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 le catalogue de données et le stockage d'objets, respectivement, 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 est en cours d'exécution.
      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 Autonomous Database dérivées 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 contenues 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'image glue_table_list.png

    3. Synchronisez Autonomous Database 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 les nouveaux objets dans Autonomous Database et exécutez une requête sur S3.
    1. Utilisez SQL Developer pour visualiser 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'image glue_sql_dev.png

    2. Exécutez une requête SQL sur des banques d'ensembles de données dans Amazon S3.
      SELECT * FROM glue$parq_tpcds_oracle_parq.store;