Esegui query sui 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 sulle query con AWS Glue Data Catalog

Autonomous Database consente di eseguire la sincronizzazione con i metadati di Glue Data Catalog di Amazon Web Service (AWS). Una tabella esterna del database viene creata automaticamente da Autonomous Database per ogni tabella raccolta da AWS Glue sui 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 da centinaia a migliaia di tabelle.

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

Una comprensione dei seguenti concetti è necessaria per eseguire query con i cataloghi di dati di Amazon Web Service (AWS) Glue.

Catalogo dati AWS Glue: 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.

Catalogo dati AWS Glue: tabella

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

Glue Data Catalog: Crawler

È possibile utilizzare un crawler per inserire le tabelle nel catalogo dati AWS Glue. Questo è il metodo principale utilizzato dalla maggior parte degli utenti di 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; estrazione, trasformazione e caricamento) definiti in AWS Glue utilizzano queste tabelle di Data Catalog come origini e destinazioni. Il job ETL legge e scrive nei data store specificati nelle tabelle di 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 sottostanti (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, vengono create tabelle esterne 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 la rappresentazione degli attributi. Per mapping di schemi gerarchici a schemi relazionali, AWS Glue inserisce lo schema dei dati semi-strutturati e appiattisce i dati in uno schema relazionale utilizzando un processo ETL.

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

Tabella 3-5 Mapping tra OCI Data Catalog e AWS Glue Data Catalog

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

Workflow utente per le query con AWS Glue Data Catalog

Il flusso di lavoro utente di base per eseguire 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 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 Data Catalog del database Utente del database con ruolo DCAT_SYNC.
Amministratore query Data Catalog database Utente del database in grado di concedere l'accesso alle tabelle esterne create automaticamente ad altri utenti.
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 un AWS Glue Data Catalog.

Utente di storage degli oggetti AWS S3

Utente AWS con accesso ai dati memorizzati in AWS S3

Workflow utente

Nella tabella riportata di seguito viene descritta 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 L'utente Descrizione
Crea i criteri Amministratore Data Catalog del database

La credenziale utente di Autonomous Database deve disporre delle autorizzazioni appropriate per accedere ad AWS Glue Data Catalog e leggere dallo storage degli oggetti S3.

Ulteriori informazioni: Credenziali obbligatorie e criteri IAM.

Crea credenziali Amministratore Data Catalog del database
Assicurarsi che siano disponibili credenziali di database per accedere ad AWS Glue Data Catalog ed 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 Amazon Web Services (AWS). Le credenziali dei nomi delle risorse AWS Amazon (ARN) non sono supportate.

Ulteriori informazioni: DBMS_CLOUD Procedura CREATE_CREDENTIAL

Connetti

Amministratore Data Catalog del database

Stabilisci una connessione tra un'istanza di Autonomous Database e un'istanza di AWS Glue Data Catalog. La connessione utilizza i privilegi dell'utente 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:
  1. Chiama DBMS_DCAT.SET_DATA_CATALOG_CREDENTIAL utilizzando una credenziale AWS (CREATE_CREDENTIAL Procedure) per specificare l'istanza di AWS Glue Data Catalog di destinazione.
  2. Chiama DBMS_DCAT.SET_OBJECT_STORE_CREDENTIAL utilizzando una credenziale AWS (CREATE_CREDENTIAL Procedure) per accedere allo storage degli oggetti AWS S3.
  3. Chiama DBMS_DCAT.SET_DATA_CATALOG_CONN utilizzando un endpoint del servizio AWS Glue

Una volta stabilita la connessione, Autonomous Database memorizza i metadati associati, ad esempio l'ID del catalogo AWS Glue, l'area, l'endpoint e gli oggetti delle 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 Data Catalog del database

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

La sincronizzazione effettua 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 di AWS Glue sono stati modificati.
Ulteriori informazioni: vedere RUN_SYNC Procedure, CREATE_SYNC_JOB Procedure, DROP_SYNC_JOB Procedure, Mapping sincronizzazione

Monitoraggio sincronizzazione

Amministratore Data Catalog del database

L'utente può visualizzare lo stato di 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 alle tabelle esterne.

Ulteriori informazioni: Monitoraggio e risoluzione dei problemi dei carichi

Concedi privilegi

Amministratore query Data Catalog database, amministratore database

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

Interrogazione

Analista di dati

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

Si accede 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 Data Catalog del database

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

Questa azione viene eseguita solo quando non si prevede più di utilizzare il catalogo dati AWS Glue 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 il processo di esecuzione delle query sui 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 precedentemente sottoposti a scansione 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. Analizza i metadati in AWS Glue Data Catalog.
    1. Avviare la console AWS Glue.Segue la descrizione di glue_console.png
      Descrizione dell'immagine glue_console.png
    2. Passare al Data Catalog, ai database e alle tabelle per trovare gli oggetti esistenti.

      In questo esempio, alcuni oggetti esistono in Amazon S3 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. Creare le credenziali in Autonomous Database.

      La chiamata di 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 di procedura 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. Imposta 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 trovare i database all'interno di un 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. Analizza i nuovi oggetti in Autonomous Database ed esegui una query su 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 denominato 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 sugli archivi di set di dati in Amazon S3.
      SELECT * FROM glue$parq_tpcds_oracle_parq.store;