Esegui query su dati esterni con AWS Glue Data Catalog

Autonomous Database supporta un sistema per la sincronizzazione con un'istanza di Amazon AWS Glue Data Catalog.

Informazioni sull'esecuzione di query con AWS Glue Data Catalog

Autonomous Database consente la sincronizzazione con i metadati del Data Catalog Glue del servizio Web Amazon (AWS). Autonomous Database crea automaticamente una tabella esterna del database per ogni tabella raccolta da AWS Glue relativa ai dati memorizzati in Amazon Simple Storage Service (S3). Gli utenti possono eseguire query sui dati memorizzati in S3 da Autonomous Database senza dover derivare manualmente lo schema per le origini dati esterne e creare tabelle esterne.

Amazon AWS Glue Data Catalog è un servizio di gestione dei metadati centralizzato che aiuta i professionisti dei dati a scoprire i dati e supporta la governance dei dati nel cloud AWS. Un'istanza di Autonomous Database ha la possibilità di sincronizzare automaticamente i metadati del Data Catalog con AWS Glue Data Catalog, consentendo agli utenti del database di utilizzare immediatamente Autonomous Database per eseguire query sui dati memorizzati nel cloud AWS.

La sincronizzazione con AWS Glue Data Catalog ha le stesse proprietà della sincronizzazione con OCI Data Catalog. La sincronizzazione è dinamica, mantenendo il database aggiornato rispetto alle modifiche ai dati sottostanti, riducendo i costi di amministrazione in quanto mantiene automaticamente centinaia o migliaia di tabelle.

Concetti relativi all'esecuzione di query con AWS Glue Data Catalog

Per eseguire query con i cataloghi dati di Amazon Web Service (AWS) Glue è necessario comprendere i concetti riportati di seguito.

AWS Glue Data Catalog: database

Un database AWS Glue rappresenta una raccolta di definizioni di tabelle relazionali, organizzate in un gruppo logico. Ogni istanza di AWS Glue Data Catalog gestisce più database.

AWS Glue Data Catalog: Tabella

Una tabella AWS Glue rappresenta una tabella relazionale sui dati memorizzati nel cloud AWS. Una tabella AWS Glue definisce lo schema dei dati di base ed è costituita da informazioni sulle colonne, informazioni sulle partizioni, informazioni sulla serializzazione, informazioni sullo storage, statistiche, metadati definiti dall'utente e altri metadati. Le tabelle in AWS Glue Data Catalog possono essere create manualmente o automaticamente utilizzando un crawler AWS Glue.

Glue Data Catalog: Crawler

È possibile utilizzare un crawler per popolare il Data Catalog AWS Glue con le tabelle. Questo è il metodo principale utilizzato dalla maggior parte degli utenti AWS Glue. Un crawler può eseguire il crawling di più data store in una singola esecuzione. Al termine, il crawler crea o aggiorna una o più tabelle nel Data Catalog. I job ETL (Extract, Transform and Load) definiti in AWS Glue utilizzano queste tabelle del Data Catalog come origini e destinazioni. Il job ETL legge e scrive nei data store specificati nelle tabelle Data Catalog di origine e di destinazione.

Le tabelle AWS Glue possono essere create manualmente dall'utente o automaticamente utilizzando un crawler predefinito o personalizzato. I crawler si connettono ai data store di base (ad esempio, Amazon S3), richiamano i classificatori per derivare lo schema dei dati e creano tabelle AWS Glue per memorizzare i metadati derivati. AWS Glue fornisce classificatori per tipi di file comuni, come CSV, JSON, Parquet e AVRO.

Mapping tra Autonomous Database e AWS Glue

Durante il processo di sincronizzazione, le tabelle esterne vengono create in Autonomous Database derivate dai database e dalle tabelle di AWS Glue Data Catalog su Amazon S3.

AWS Glue organizza i metadati raccolti in database e tabelle. Un database AWS Glue è una raccolta di definizioni di tabelle relazionali. Tabelle AWS Glue che descrivono lo schema e le proprietà comuni dei file associati alla tabella.

AWS Glue segue il modello relazionale per rappresentare gli attributi. Per mappare gli schemi gerarchici agli schemi relazionali, AWS Glue fornisce lo schema dei dati semistrutturati e appiattisce i dati in uno schema relazionale utilizzando un processo ETL.

La tabella riportata di seguito rappresenta il mapping tra i concetti di OCI Data Catalog e AWS Glue Data Catalog.

Tabella 3-5 Mapping del Data Catalog OCI a AWS Glue Data Catalog

OCI Data Catalog Catalogo dati AWS Glue Oracle Database
Asset dati Database Schema
cartella (Bucket) Schema
Entità logica tabella tabella

Flusso di lavoro utente per l'esecuzione di query con AWS Glue Data Catalog

Il workflow utente di base per l'esecuzione di query sui dati AWS S3 con AWS Glue Data Catalog prevede la connessione ad AWS Glue Data Catalog, la sincronizzazione con Autonomous Database per creare automaticamente tabelle esterne e quindi l'esecuzione di query sui dati S3.

L'amministratore di Database Data Catalog crea una connessione tra l'istanza di Autonomous Database e un'istanza di AWS Glue Data Catalog, quindi configura ed esegue una sincronizzazione (sincronizzazione) tra AWS Glue Data Catalog e Autonomous Database. Autonomous Database crea automaticamente una tabella esterna per le tabelle raccolte da AWS Glue sui dati memorizzati in S3.

L'amministratore delle query di Database Data Catalog o l'amministratore del database concede l'accesso READ alle tabelle esterne generate in modo che gli analisti dei dati e altri utenti del database possano sfogliare ed eseguire query su Autonomous Database senza dover derivare manualmente lo schema per le origini dati esterne e creare tabelle esterne.

Utenti

Nella tabella riportata di seguito vengono descritti i diversi tipi di utenti che eseguono le azioni del workflow utente.

Utente descrizione;
Amministratore Database Data Catalog Utente database con ruolo DCAT_SYNC.
Amministratore query database Data Catalog Utente del database in grado di concedere ad altri utenti l'accesso alle tabelle esterne create automaticamente.
Analista di dati Utente del database su Autonomous Database che esegue query sui dati in AWS S3 eseguendo query sulle tabelle esterne create automaticamente o interagendo direttamente con AWS Glue Data Catalog.

Utente AWS Glue Data Catalog

Utente AWS con accesso a AWS Glue Data Catalog.

Utente storage degli oggetti AWS S3

Utente AWS con accesso ai dati memorizzati in AWS S3

Workflow utente

La tabella riportata di seguito descrive ogni azione inclusa nel workflow e il tipo di utente che può eseguire l'azione.

Nota

Il pacchetto DBMS_DCAT è disponibile per l'esecuzione delle attività necessarie per eseguire query sullo storage degli oggetti AWS S3 utilizzando AWS Glue Data Catalog. Vedere DBMS_DCAT Package.
Azione Chi è l'utente descrizione;
Creare i criteri Amministratore Database Data Catalog

Le credenziali utente di Autonomous Database devono disporre delle autorizzazioni appropriate per accedere ad AWS Glue Data Catalog e per leggere dallo storage degli oggetti S3.

Ulteriori informazioni: Credenziali e criteri IAM obbligatori.

Crea credenziali Amministratore Database Data Catalog
Assicurarsi che le credenziali del database siano disponibili per accedere a AWS Glue Data Catalog e per eseguire query sullo storage degli oggetti S3. L'utente chiama DBMS_CLOUD.CREATE_CREDENTIAL per creare le credenziali utente.
Nota

Sono supportate solo le credenziali AWS (Amazon Web Services). Le credenziali AWS Amazon Resource Names (ARN) non sono supportate.

Ulteriori informazioni: DBMS_CLOUD CREATE_CREDENTIAL Procedura

Collega

Amministratore Database Data Catalog

Stabilire una connessione tra un'istanza di Autonomous Database e un'istanza di AWS Glue Data Catalog. La connessione utilizza i privilegi dell'utente di AWS Glue Data Catalog. Sono supportate le connessioni da un'istanza di Autonomous Database a più istanze di AWS Glue Data Catalog.

Per avviare una connessione tra un'istanza di Autonomous Database e un'istanza di AWS Glue Data Catalog, l'utente effettua le operazioni riportate di seguito.
  1. Chiama DBMS_DCAT.SET_DATA_CATALOG_CREDENTIAL utilizzando una credenziale AWS (CREATE_CREDENTIAL Procedura) per specificare l'istanza AWS Glue Data Catalog di destinazione.
  2. Chiama DBMS_DCAT.SET_OBJECT_STORE_CREDENTIAL utilizzando una credenziale AWS (CREATE_CREDENTIAL Procedura) per accedere allo storage degli oggetti S3 di AWS.
  3. Chiama DBMS_DCAT.SET_DATA_CATALOG_CONN utilizzando un endpoint del servizio Colla AWS

Una volta stabilita la connessione, Autonomous Database memorizza i metadati associati, ad esempio l'ID catalogo AWS Glue, l'area, l'endpoint e gli oggetti credenziali.

Ulteriori informazioni: SET_DATA_CATALOG_CONN Procedura, UNSET_DATA_CATALOG_CONN Procedura, SET_DATA_CATALOG_CREDENTIAL Procedura, SET_OBJECT_STORE_CREDENTIAL Procedura.

Sincronizza

Amministratore Database Data Catalog

L'utente può avviare manualmente una sincronizzazione con AWS Glue Data Catalog connessi utilizzando DBMS_DCAT.RUN_SYNC o creare sincronizzazioni automatiche utilizzando DBMS_DCAT.CREATE_SYNC_JOB.

La sincronizzazione esegue le operazioni riportate di seguito.
  • Crea tabelle esterne in Autonomous Database derivate dal catalogo dati AWS Glue connesso.
  • Consente agli utenti di visualizzare in anteprima i metadati per i database e le tabelle AWS Glue.
  • Modifica o elimina le tabelle esterne sincronizzate esistenti se i metadati AWS Glue sono stati modificati.
Ulteriori informazioni: vedere RUN_SYNC Procedura, CREATE_SYNC_JOB Procedura, DROP_SYNC_JOB Procedura, Mapping di sincronizzazione

Monitora sincronizzazione

Amministratore Database Data Catalog

L'utente può visualizzare lo stato della sincronizzazione eseguendo una query sulla vista USER_LOAD_OPERATIONS. Al termine del processo di sincronizzazione, l'utente può visualizzare un log dei risultati della sincronizzazione, inclusi i dettagli sui mapping a tabelle esterne.

Ulteriori informazioni: Monitoraggio e risoluzione dei problemi dei carichi

Consenti privilegi

Amministratore query database Data Catalog, amministratore database

L'amministratore delle query del Data Catalog o del database deve concedere i privilegi READ sulle tabelle esterne generate agli utenti degli analisti dati. Ciò consente agli analisti di dati di eseguire query sulle tabelle esterne generate.

Esegui query

Analista di dati

Gli analisti di dati possono esaminare gli schemi e le tabelle sincronizzati negli schemi GLUE$* ed eseguire query sulle tabelle esterne tramite qualsiasi strumento o applicazione che supporti Oracle SQL.

È possibile accedere ai dati in S3 utilizzando i privilegi dell'utente di storage degli oggetti AWS S3.

Ulteriori informazioni: Esempio: query con AWS Glue Data Catalog

Termina connessioni

Amministratore Database Data Catalog

Per rimuovere un'associazione Data Catalog esistente, l'utente chiama la procedura UNSET_DATA_CATALOG_CONN.

Questa azione viene eseguita solo quando non si prevede più di utilizzare AWS Glue Data Catalog connesso e le tabelle esterne derivate dal catalogo. Questa azione elimina i metadati di AWS Glue Data Catalog ed elimina le tabelle esterne sincronizzate dall'istanza di Autonomous Database.

Ulteriori informazioni: UNSET_DATA_CATALOG_CONN Procedura

Esempio: query con AWS Glue Data Catalog

In questo esempio viene illustrato come eseguire query su set di dati memorizzati in Amazon Simple Storage Service (Amazon S3) utilizzando un AWS Glue Data Catalog.

In questo esempio, i metadati in un AWS Glue Data Catalog vengono ispezionati per vedere quali oggetti Amazon S3 sono stati sottoposti a crawling in precedenza ed esistono nel Data Catalog. Autonomous Database viene quindi associato ad AWS Glue Data Catalog e Amazon S3. Il Data Catalog viene sincronizzato con Autonomous Database per creare tabelle esterne sui set di dati memorizzati in Amazon S3. Le tabelle esterne vengono utilizzate per eseguire query sui set di dati in Amazon S3.

  1. Ispezionare i metadati in AWS Glue Data Catalog.
    1. Avviare la console AWS Glue.Segue la descrizione di glue_console.png
      Descrizione della figura glue_console.png
    2. Passare al Data Catalog, ai database e alle tabelle per trovare gli oggetti esistenti.

      In questo esempio, in Amazon S3 esistono alcuni oggetti per i quali AWS Glue ha precedentemente eseguito il crawling e creato tabelle come mostrato di seguito:

      Segue la descrizione di glue_tables.png
      Descrizione dell'immagine glue_tables.png
  2. Associa AWS Glue ad Autonomous Database.
    1. Crea le credenziali in Autonomous Database.

      La chiamata alla procedura riportata di seguito include l'ID di accesso e la chiave segreta per fornire ad Autonomous Database l'accesso ai dati di base in Amazon S3.

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

    2. Associare le credenziali a AWS Glue Data Catalog e allo storage degli oggetti Amazon S3.
      Queste chiamate alle procedure associano rispettivamente il Data Catalog e lo storage degli oggetti alle credenziali.
      exec dbms_dcat.set_data_catalog_credential('CRED_AWS');
      exec dbms_dcat.set_object_store_credential('CRED_AWS');

    3. Impostare un'area AWS in cui Glue è in esecuzione.
      exec dbms_dcat.set_data_catalog_conn(region => 'us-west-2', catalog_type=>'AWS_GLUE');
  3. Sincronizza i metadati per creare tabelle esterne in Autonomous Database derivate da database e tabelle AWS Glue.
    1. Al termine dell'associazione, utilizzare la vista all_glue_databases per individuare i database all'interno di AWS Glue Data Catalog.
      select * from all_glue_databases order by name;

    2. Utilizzare la vista all_glue_tables per ottenere una lista di tabelle disponibili per la sincronizzazione.
      select * from all_glue_tables order by database_name, name;

      Segue la descrizione di glue_table_list.png
      Descrizione dell'immagine glue_table_list.png

    3. Sincronizza Autonomous Database con due tabelle, store e item, trovate nel database parq.
          begin
          dbms_dcat.run_sync(
              synced_objects => '
                  {
                      "database_list": [
                          {
                          "database": "parq",
                          "table_list": ["store","item"]
                          }
                       ]
                   }',
          error_semantics => 'STOP_ON_ERROR');
          end;
          /

  4. Ispezionare i nuovi oggetti in Autonomous Database ed eseguire una query sopra S3.
    1. Utilizzare SQL Developer per visualizzare i nuovi oggetti creati dall'operazione di sincronizzazione precedente.

      Lo schema GLUE$PARQ_TPCDS_ORACLE_PARQ è stato generato e nominato automaticamente dalla chiamata di procedura dbms_dcat.run_sync.

      Segue la descrizione di glue_sql_dev.png
      Descrizione dell'immagine glue_sql_dev.png

    2. Eseguire una query SQL sui data set archiviati in Amazon S3.
      SELECT * FROM glue$parq_tpcds_oracle_parq.store;