Esegui query su dati esterni con Data Catalog

Oracle Cloud Infrastructure Data Catalog è il servizio di gestione dei metadati per Oracle Cloud che ti aiuta a scoprire i dati e a supportare la governance dei dati. Fornisce un inventario di asset, un glossario aziendale e un metastore comune per i data lake.

Autonomous Database può sfruttare questi metadati per semplificare notevolmente la gestione e accedere all'area di memorizzazione degli oggetti del data lake. Anziché definire manualmente le tabelle esterne per accedere al data lake, utilizzare le tabelle esterne definite e gestite automaticamente. Queste tabelle verranno trovate negli schemi protetti di Autonomous Database che vengono mantenuti aggiornati con le modifiche in Data Catalog.

Per ulteriori informazioni su Data Catalog, consulta la documentazione di Data Catalog.

Informazioni sull'interrogazione con Data Catalog

Grazie alla sincronizzazione con i metadati del Data Catalog, Autonomous Database crea automaticamente tabelle esterne per ogni entità logica raccolta da Data Catalog. Queste tabelle esterne vengono definite negli schemi di database completamente gestiti dal processo di sincronizzazione dei metadati. Gli utenti possono eseguire immediatamente query sui dati senza dover derivare manualmente lo schema (colonne e tipi di dati) per le origini dati esterne e creare manualmente tabelle esterne.

La sincronizzazione è dinamica e mantiene l'Autonomous Database aggiornato rispetto alle modifiche ai dati di base, riducendo i costi di amministrazione in quanto mantiene automaticamente centinaia o migliaia di tabelle. Inoltre, consente a più istanze di Autonomous Database di condividere lo stesso Data Catalog, riducendo ulteriormente i costi di gestione e fornendo un set comune di definizioni aziendali.

Le cartelle/bucket di Data Catalog sono contenitori sincronizzati con gli schemi di Autonomous Database. Le entità logiche all'interno di tali cartelle/bucket vengono mappate alle tabelle esterne di Autonomous Database. Questi schemi e tabelle esterne vengono generati e gestiti automaticamente tramite il processo di sincronizzazione:

  • Le cartelle/bucket vengono mappate agli schemi di database solo a scopo organizzativo.
  • L'organizzazione ha lo scopo di essere coerente con il data lake e ridurre al minimo la confusione quando si accede ai dati attraverso percorsi diversi.
  • Data Catalog è l'origine della verità per le tabelle contenute negli schemi. Le modifiche apportate nel Data Catalog aggiornano le tabelle dello schema durante una sincronizzazione successiva.

Per utilizzare questa funzionalità, un amministratore di Database Data Catalog avvia una connessione a un'istanza di Data Catalog, seleziona gli asset dati e le entità logiche da sincronizzare ed esegue la sincronizzazione. Il processo di sincronizzazione crea schemi e tabelle esterne in base agli asset dati raccolti in Data Catalog e alle entità logiche selezionate. Non appena vengono create le tabelle esterne, gli analisti dati possono avviare l'esecuzione di query sui dati senza dover derivare manualmente lo schema per le origini dati esterne e creare tabelle esterne.

Nota

Il package DBMS_DCAT è disponibile per l'esecuzione dei task necessari per eseguire query sugli asset dati dell'area di memorizzazione degli oggetti Data Catalog. Vedere DBMS_DCAT Package.

Concetti correlati all'esecuzione di query con Data Catalog

Per eseguire query con Data Catalog è necessaria una descrizione dei concetti riportati di seguito.

Catalogo dati

Data Catalog raccoglie gli asset dati che puntano alle origini dati dell'area di memorizzazione degli oggetti su cui si desidera eseguire query con Autonomous Database. In Data Catalog è possibile specificare la modalità di organizzazione dei dati durante la raccolta, supportando diversi pattern di organizzazione dei file. Nell'ambito del processo di raccolta di Data Catalog, è possibile selezionare i bucket e i file che si desidera gestire all'interno dell'asset. Per ulteriori informazioni, vedere Panoramica di Data Catalog.

Aree di memorizzazione degli oggetti

I negozi oggetti dispongono di bucket che contengono una vasta gamma di oggetti. Alcuni tipi comuni di oggetti trovati in questi bucket includono: file CSV, parquet, avro, json e ORC. I bucket in genere hanno una struttura o un motivo di progettazione per gli oggetti che contengono. Esistono molti modi diversi per strutturare i dati e molti modi diversi di interpretare questi modelli.

Ad esempio, un pattern di progettazione tipico utilizza cartelle di livello superiore che rappresentano le tabelle. I file all'interno di una determinata cartella condividono lo stesso schema e contengono dati per tale tabella. Le sottocartelle vengono spesso utilizzate per rappresentare le partizioni di tabella (ad esempio, una sottocartella per ogni giorno). Data Catalog fa riferimento a ogni cartella di livello superiore come entità logica e questa entità logica viene mappata a una tabella esterna di Autonomous Database.

Connessione

Una connessione è una connessione di Autonomous Database a un'istanza di Data Catalog. Per ogni istanza di Autonomous Database possono esistere connessioni a più istanze di Data Catalog. Le credenziali di Autonomous Database devono disporre dei diritti per accedere agli asset di Data Catalog raccolti dallo storage degli oggetti.

Raccolta

Processo di Data Catalog che analizza lo storage degli oggetti e genera le entità logiche dai data set.

Data Asset

Un asset dati in Data Catalog rappresenta un'origine dati che include database, storage degli oggetti Oracle, Kafka e altro ancora. Autonomous Database utilizza gli asset dello storage degli oggetti Oracle per la sincronizzazione dei metadati.

Entità dati

Per entità dati in Data Catalog si intende una raccolta di dati, ad esempio una tabella o una vista di database, o un singolo file e in genere dispone di molti attributi che ne descrivono i dati.

Entità logica

In Data Lakes, numerosi file in genere comprendono una singola entità logica. Ad esempio, è possibile disporre di file clickstream giornalieri che condividono lo stesso schema e lo stesso tipo di file.

Un'entità logica di Data Catalog è un gruppo di file di storage degli oggetti che vengono derivati durante la raccolta applicando pattern di nomi file creati e assegnati a un asset dati.

oggetto dati

Un oggetto dati in Data Catalog si riferisce agli asset dati e alle entità dati.

Pattern di nomi file

In un data lake, i dati possono essere organizzati in modi diversi. In genere, le cartelle acquisiscono file dello stesso schema e tipo. È necessario registrarsi al Data Catalog per la modalità di organizzazione dei dati. I pattern di nomi file vengono utilizzati per identificare la modalità di organizzazione dei dati. In Data Catalog è possibile definire pattern di nomi file utilizzando espressioni regolari. Quando Data Catalog raccoglie un asset dati con un pattern di nomi file assegnato, le entità logiche vengono create in base al pattern di nomi file. Definendo e assegnando questi pattern agli asset dati, è possibile raggruppare più file come entità logiche in base al pattern di nomi file.

Sincronizzazione (sincronizzazione)

Autonomous Database esegue le sincronizzazioni con Data Catalog per mantenere automaticamente aggiornato il proprio database rispetto alle modifiche ai dati di base. La sincronizzazione può essere eseguita manualmente o in base a una pianificazione.

Il processo di sincronizzazione crea schemi e tabelle esterne in base agli asset dati di Data Catalog e alle entità logiche. Questi schemi sono protetti, ovvero i relativi metadati sono gestiti da Data Catalog. Se si desidera modificare i metadati, è necessario apportare le modifiche in Data Catalog. Gli schemi di Autonomous Database rifletteranno eventuali modifiche dopo l'esecuzione della sincronizzazione successiva. Per ulteriori dettagli, vedere Mapping di sincronizzazione.

Mapping sincronizzazione

Il processo di sincronizzazione crea e aggiorna gli schemi e le tabelle esterne di Autonomous Database in base agli asset dati, alle cartelle, alle entità logiche, agli attributi e alle sostituzioni personalizzate pertinenti di Data Catalog.

Data Catalog Autonomous Database Descrizione mapping

Asset e cartella dati (bucket di storage degli oggetti)

Nome schema

Valori predefiniti:

Per impostazione predefinita, il nome dello schema generato in Autonomous Database ha il formato seguente:

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

  • dcat-con-id è l'identificativo di connessione Data Catalog univoco. Per informazioni dettagliate su come specificare questo identificativo, vedere il parametro dcat_con_id nella procedura DBMS_DCAT RUN_SYNC.
  • data-asset-name è il nome dell'asset dati del Data Catalog.
  • folder-name è il nome della cartella Data Catalog. Questa cartella viene mappata a un bucket di storage degli oggetti.

Personalizzazioni:

È possibile personalizzare i valori predefiniti data-asset-name e folder-name definendo proprietà personalizzate, nomi business e nomi visualizzati per sostituire questi nomi predefiniti.
  • È possibile sostituire data-asset-name definendo la proprietà personalizzata oracle-db-schema-prefix per l'asset dati in Data Catalog.
  • È possibile sostituire folder-name definendo la proprietà personalizzata oracle-db-schema per la cartella in Data Catalog, un nome business o un nome visualizzato. Gli attributi riportati di seguito vengono utilizzati in ordine di precedenza per la generazione di folder-name.
    1. Proprietà personalizzata oracle-db-schema
    2. Nome attività aziendale
    3. Nome visualizzato

Esempi:

  • Se l'ID connessione è DataModels, il nome dell'asset è ObjectStorage, il nome della cartella è HR e non sono presenti sostituzioni di proprietà personalizzate, il nome dello schema derivato è: DCAT$DATAMODELS_OBJECTSTORAGE_HR
  • Se il nome dell'asset dati è MYASSET, il nome della cartella è MYFOLDER e non sono presenti sostituzioni di proprietà personalizzate, il nome dello schema è: DCAT$MYASSET_MYFOLDER
  • Se l'asset dati dispone di oracle-db-prefix = FIRSTASSET e la cartella di oracle-db-schema = FIRSTFOLDER, il nome dello schema è: DCAT$FIRSTASSET_FIRSTFOLDER
Entità logica Tabella esterna

Le entità logiche sono mappate a tabelle esterne. Se l'entità logica dispone di un attributo partizionato, viene mappata a una tabella esterna partizionata.

Il nome della tabella esterna deriva dal nome visualizzato o dal nome attività dell'entità logica corrispondente.

Se è impostato oracle-db-schema, il relativo valore sostituisce tutti i nomi e le proprietà personalizzate delle cartelle e degli asset dati corrispondenti.

Ad esempio, se oracle-db-schema per un'entità è impostato su EntitySchema, la tabella viene creata nello schema DCAT$ENTITYSCHEMA.

Attributi dell'entità logica Colonne tabella esterna

Nomi delle colonne: i nomi delle colonne delle tabelle esterne derivano dai nomi visualizzati degli attributi dell'entità logica corrispondente o dai nomi business.

Per le entità logiche derivate dai file Parquet, Avro e ORC, il nome della colonna è sempre il nome visualizzato dell'attributo in quanto rappresenta il nome del campo derivato dai file di origine.

Per gli attributi corrispondenti a un'entità logica derivata da file CSV, per generare il nome della colonna vengono utilizzati i seguenti campi attributo in ordine di precedenza:

  1. oracle-db-column-name
  2. Nome attività aziendale
  3. Nome visualizzato

Tipo di colonna: la proprietà personalizzata oracle-db-column-type sostituisce il tipo di colonna predefinito derivato da Data Catalog.

Per gli attributi corrispondenti a un'entità logica derivata dai file Avro con tipi di dati TIME_MICROS, TIME_MILLIS, TIMESTAMP_MICROS o TIMESTAMP_MILLIS, è necessario impostare il valore oracle-db-column-type dell'attributo corrispondente in Data Catalog.

Lunghezza colonna: la proprietà personalizzata oracle-db-column-length sostituisce la lunghezza di colonna predefinita per un campo stringa derivato da Data Catalog.

Precisione colonna: la proprietà personalizzata oracle-db-column-precision sostituisce la precisione predefinita per un numero derivato da Data Catalog.

Per gli attributi corrispondenti a un'entità logica derivata dai file Avro con tipi di dati TIME_MICROS, TIME_MILLIS, TIMESTAMP_MICROS o TIMESTAMP_MILLIS, è necessario impostare il valore oracle-db-column-precision dell'attributo corrispondente in Data Catalog.

Scala colonna: la proprietà personalizzata oracle-db-column-scale sostituisce la scala predefinita per un numero derivato da Data Catalog.

Workflow standard con Data Catalog

Esiste un flusso di lavoro tipico delle azioni eseguite dagli utenti che desiderano eseguire query con Data Catalog.

L'amministratore di Database Data Catalog crea una connessione tra l'istanza di Autonomous Database e un'istanza di Data Catalog, quindi configura ed esegue una sincronizzazione (sincronizzazione) tra Data Catalog e Autonomous Database. La sincronizzazione crea tabelle e schemi esterni nell'istanza di Autonomous Database in base ai contenuti del Data Catalog sincronizzato.

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 sulle tabelle esterne.

La tabella seguente descrive ogni azione in dettaglio. Per una descrizione dei diversi tipi di utente inclusi in questa tabella, vedere Utenti e ruoli del Data Catalog.

Nota

Il package DBMS_DCAT è disponibile per l'esecuzione dei task necessari per eseguire query sugli asset dati dell'area di memorizzazione degli oggetti Data Catalog. Vedere DBMS_DCAT Package.
Azione Chi è l'utente descrizione;

Creare i criteri

Amministratore Database Data Catalog

Il principal della risorsa Autonomous Database o la credenziale utente di Autonomous Database devono disporre delle autorizzazioni appropriate per gestire Data Catalog e leggere dallo storage degli oggetti.

Ulteriori informazioni: Credenziali e criteri IAM obbligatori.

Crea credenziali

Amministratore Database Data Catalog

Assicurarsi che le credenziali del database siano disponibili per accedere a Data Catalog e per eseguire query sull'area di memorizzazione degli oggetti. L'utente chiama DBMS_CLOUD.CREATE_CREDENTIAL per creare le credenziali utente e/o DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL per abilitare i principal delle risorse.

Ulteriori informazioni: DBMS_CLOUD CREATE_CREDENTIAL Procedura, Usa principal risorsa con DBMS_CLOUD.

Creare le connessioni a Data Catalog

Amministratore Database Data Catalog

Per avviare una connessione tra un'istanza di Autonomous Database e un'istanza di Data Catalog, l'utente chiama DBMS_DCAT.SET_DATA_CATALOG_CONN per specificare l'istanza di Data Catalog di destinazione. Sono supportate le connessioni da un'istanza di Autonomous Database a più istanze di Data Catalog.

La connessione all'istanza di Data Catalog deve utilizzare un oggetto credenziali del database con privilegi OCI (Oracle Cloud Infrastructure) sufficienti. Ad esempio, è possibile utilizzare il token di servizio del principal delle risorse per l'istanza di Autonomous Database o un utente OCI con privilegi sufficienti.

Una volta stabilita la connessione, l'istanza di Data Catalog viene aggiornata con lo spazio di nomi DBMS_DCAT e le proprietà personalizzate (se non esistono già). L'utente può eseguire una query per visualizzare la nuova connessione, incluse tutte le connessioni correnti:
select * from all_dcat_connections;

Ulteriori informazioni: SET_DATA_CATALOG_CONN Procedura, UNSET_DATA_CATALOG_CONN Procedura.

Crea una sincronizzazione selettiva

Amministratore Database Data Catalog

Creare un job di sincronizzazione selezionando gli oggetti Data Catalog da sincronizzare. L'utente può:
  • Selezionare gli asset dati o le cartelle da sincronizzare.
  • Selezionare le singole entità logiche da sincronizzare.
  • Visualizzare l'anteprima delle tabelle esterne risultanti prima della sincronizzazione.
  • Modificare le tabelle esterne (ad esempio, il nome) modificando le proprietà personalizzate in Data Catalog.

Ulteriori informazioni: vedere CREATE_SYNC_JOB Procedura, DROP_SYNC_JOB Procedura, Mapping di sincronizzazione

Sincronizza con Data Catalog

Amministratore Database Data Catalog

L'utente avvia un'operazione di sincronizzazione. La sincronizzazione viene avviata manualmente tramite la chiamata alla procedura DBMS_DCAT.RUN_SYNC o automaticamente come parte di un job di sincronizzazione pianificato.

L'operazione di sincronizzazione crea, modifica ed elimina tabelle e schemi esterni in base ai contenuti di Data Catalog e alle selezioni di sincronizzazione. La configurazione manuale viene applicata utilizzando le proprietà personalizzate di Data Catalog.

Ulteriori informazioni: vedere RUN_SYNC Procedura, CREATE_SYNC_JOB Procedura, Mapping di sincronizzazione

Monitora sincronizzazione e visualizza log

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 delle entità logiche alle 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 READ sulle tabelle esterne generate agli utenti degli analisti dati. Ciò consente agli analisti di dati di eseguire query sulle tabelle esterne generate.

Sfoglia ed esegui query sulle tabelle esterne

Analista di dati

Gli analisti di dati possono eseguire query sulle tabelle esterne tramite qualsiasi strumento o applicazione che supporta Oracle SQL.

Gli analisti di dati possono esaminare gli schemi e le tabelle sincronizzati negli schemi DCAT$* ed eseguire query sulle tabelle utilizzando Oracle SQL.

Ulteriori informazioni: Mapping di sincronizzazione

Arresta connessioni a Data Catalog

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 Data Catalog e le tabelle esterne derivate dal catalogo. Questa azione elimina i metadati del Data Catalog ed elimina le tabelle esterne sincronizzate dall'istanza di Autonomous Database. Le proprietà personalizzate nei criteri Data Catalog e OCI non sono interessate.

Ulteriori informazioni: UNSET_DATA_CATALOG_CONN Procedura

Esempio: scenario MovieStream

In questo scenario, Moviestream sta acquisendo dati in una zona di destinazione sullo storage degli oggetti. Gran parte di questi dati, ma non necessariamente tutti, viene quindi utilizzato per alimentare un Autonomous Database. Prima di alimentare Autonomous Database, i dati vengono trasformati, puliti e successivamente memorizzati nell'area "gold".

Data Catalog viene utilizzato per raccogliere queste origini e quindi fornire un contesto aziendale ai dati. I metadati del Data Catalog sono condivisi con Autonomous Database e consentono agli utenti di Autonomous Database di eseguire query su tali origini dati utilizzando Oracle SQL. Questi dati possono essere caricati in Autonomous Database o sottoposti a query in modo dinamico utilizzando tabelle esterne.

Per ulteriori informazioni sull'uso di Data Catalog, vedere Documentazione di Data Catalog.

  1. Area di memorizzazione oggetti - Rivedi bucket, cartelle e file
    1. Rivedere i bucket nell'area di memorizzazione degli oggetti.
      Ad esempio, di seguito sono riportati i bucket di destinazione (moviestream_landing) e zona finale (moviestream_gold) nello storage degli oggetti:
    2. Rivedere le cartelle e i file nei bucket dell'area di memorizzazione degli oggetti.
      Di seguito, ad esempio, sono riportate le cartelle nel bucket di destinazione (moviestream_landing) nello storage degli oggetti.
  2. Data Catalog - Crea pattern di nomi file
    1. Informa Data Catalog in che modo i dati vengono organizzati utilizzando i pattern di nomi file. Si tratta di espressioni regolari utilizzate per categorizzare i file. I pattern di nomi file vengono utilizzati dallo strumento di raccolta Data Catalog per derivare entità logiche. I due pattern di nomi file riportati di seguito vengono utilizzati per raccogliere i bucket nell'esempio MovieStream. Per ulteriori dettagli sulla creazione di pattern di nomi file, vedere Raccolta dei file di storage degli oggetti come entità di dati logiche.
      Stile Hive Stile cartella
      {bucketName:.*}/{logicalEntity:[^/]+}.db/{logicalEntity:[^/]+}/.* {bucketName:[\w]+}/{logicalEntity:[^/]+}(?<!.db)/.*$
      • Crea entità logiche per le origini che contengono ".db" come prima parte del nome oggetto.
      • Per garantire l'univocità all'interno del bucket, il nome risultante è (nome-db).(nome della cartella)
      • Crea un'entità logica in base al nome della cartella al di fuori della radice
      • Per impedire la duplicazione con Hive, i nomi oggetto che contengono ".db" vengono ignorati.
    2. Per creare i pattern di nomi file, andare alla scheda Pattern di nomi file del Data Catalog e fare clic su Crea pattern di nomi file. Ad esempio, la scheda Crea pattern di nomi file per il Data Catalog moviestream è la seguente:
  3. Data Catalog - Creazione asset dati
    1. Creare un asset dati utilizzato per raccogliere dati dall'area di memorizzazione degli oggetti.
      Ad esempio, un asset dati denominato phoenixObjStore viene creato nel Data Catalog moviestream:
    2. Aggiungere una connessione all'asset dati.
      In questo esempio, l'asset dati si connette al compartimento per la risorsa di storage degli oggetti moviestream.
    3. A questo punto, associa i pattern di nomi file all'asset dati. Selezionare Assign Filenames, selezionare i pattern desiderati e fare clic su Assign.
      Di seguito, ad esempio, sono riportati i pattern assegnati all'asset dati phoenixObjStore:Segue una descrizione di assign_filename_patterns_v1.png
      Descrizione dell'immagine assign_filename_patterns_v1.png
  4. Data Catalog - Raccogli dati dall'area di memorizzazione degli oggetti
    1. Raccogliere l'asset dati del Data Catalog. Selezionare i bucket dell'area di memorizzazione degli oggetti contenenti i dati di origine.
      In questo esempio, i bucket moviestream_gold e moviestream_landing dell'area di memorizzazione degli oggetti vengono selezionati per la raccolta.
    2. Dopo aver eseguito il job, vengono visualizzate le entità logiche. Utilizzare la Sfoglia asset dati per esaminarli.
      In questo esempio si sta esaminando l'entità logica customer-extension e i relativi attributi.

      Se si dispone di un glossario, Data Catalog consiglia di associare categorie e termini all'entità e ai relativi attributi. Fornisce un contesto aziendale per gli articoli. Schemi, tabelle e colonne spesso non sono autoesplicativi.

      Nel nostro esempio, vogliamo distinguere tra i diversi tipi di bucket e il significato del loro contenuto:
      • Cos'è una landing zone?
      • Quanto sono precisi i dati?
      • quando è stato effettuato l'ultimo aggiornamento?
      • qual è la definizione di un'entità logica o il suo attributo
  5. Autonomous Database - Connessione a Data Catalog

    Connettere Autonomous Database a Data Catalog. È necessario assicurarsi che la credenziale utilizzata per stabilire tale connessione utilizzi un principal OCI autorizzato ad accedere all'asset Data Catalog. Per ulteriori informazioni, vedere Criteri di Data Catalog e Accedi alle risorse cloud mediante la configurazione di criteri e ruoli.

    1. Connetti a 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. Sincronizza Data Catalog con Autonomous Database. Qui, sincronizzeremo tutti gli asset di storage degli oggetti:
      
      -- 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: ora avvia l'esecuzione delle query sull'area di memorizzazione degli oggetti.
      -- Query the Data !
      select *from dcat$phoenixobjstore_moviestream_gold.genre
      ;
  6. Modifica schemi per oggetti

    I nomi di schema predefiniti sono piuttosto complicati. Semplifichiamoli specificando sia l'asset che l'attributo personalizzato Oracle-Db-Schema della cartella in Data Catalog. Modificare l'asset dati in PHX e le cartelle rispettivamente in landing e gold. Lo schema è una concatenazione dei due.

    1. Da Data Catalog, passare al bucket moviestream_landing e modificare l'asset rispettivamente in landing e gold.

      Prima della modifica:

      Dopo la modifica:

    2. Eseguire un'altra sincronizzazione.

Esempio: scenario dati partizionati

Questo scenario illustra come creare tabelle esterne in Autonomous Database basate sulle entità logiche di Data Catalog raccolte dai dati partizionati nell'area di memorizzazione degli oggetti.

L'esempio seguente si basa sull'esempio: MovieStream Scenario ed è stato adattato per dimostrare l'integrazione con i dati partizionati. Data Catalog viene utilizzato per raccogliere queste origini e quindi fornire un contesto aziendale ai dati. Per ulteriori informazioni su questo esempio, vedere Esempio: MovieStream Scenario.

Per ulteriori informazioni sull'uso di Data Catalog, vedere Documentazione di Data Catalog.

  1. Area di memorizzazione oggetti - Rivedi bucket, cartelle e file
    1. Rivedere i bucket nell'area di memorizzazione degli oggetti.
      Ad esempio, di seguito sono riportati i bucket di destinazione (moviestream_landing) e zona finale (moviestream_gold) nello storage degli oggetti:
    2. Rivedere le cartelle e i file nei bucket dell'area di memorizzazione degli oggetti.
      Di seguito, ad esempio, sono riportate le cartelle nel bucket di destinazione (moviestream_landing) nello storage degli oggetti.
  2. Data Catalog - Crea pattern di nomi file
    1. Informa Data Catalog in che modo i dati vengono organizzati utilizzando i pattern di nomi file. Si tratta di prefissi di cartelle o espressioni regolari utilizzate per categorizzare i file. I pattern di nomi file vengono utilizzati dallo strumento di raccolta Data Catalog per derivare entità logiche. Quando si specifica un prefisso di cartella, Data Catalog genera automaticamente entità logiche dal prefisso di cartella specificato nell'area di memorizzazione degli oggetti. Il seguente pattern di nomi file viene utilizzato per raccogliere i bucket nell'esempio MovieStream. Per ulteriori dettagli sulla creazione di pattern di nomi file, vedere Raccolta dei file di storage degli oggetti come entità di dati logiche.
      Prefisso cartella descrizione;
      workshop.db/ Crea entità logiche per le origini che contengono il percorso "workshop.db" nell'area di memorizzazione degli oggetti.
    2. Per creare i pattern di nomi file, andare alla scheda Pattern di nomi file del Data Catalog e fare clic su Crea pattern di nomi file. Ad esempio, la scheda Crea pattern di nomi file per il Data Catalog moviestream è la seguente:
  3. Data Catalog - Creazione asset dati
    1. Creare un asset dati utilizzato per raccogliere dati dall'area di memorizzazione degli oggetti.
      Ad esempio, un asset dati denominato amsterdamObjStore viene creato nel Data Catalog moviestream:
    2. Aggiungere una connessione all'asset dati.
      In questo esempio, l'asset dati si connette al compartimento per la risorsa di storage degli oggetti moviestream.
    3. A questo punto, associa i pattern di nomi file all'asset dati. Selezionare Assign Filenames, selezionare i pattern desiderati e fare clic su Assign.
      Di seguito, ad esempio, sono riportati i pattern assegnati all'asset dati amsterdamObjStore.
  4. Data Catalog - Raccogli dati dall'area di memorizzazione degli oggetti
    1. Raccogliere l'asset dati del Data Catalog. Selezionare i bucket dell'area di memorizzazione degli oggetti contenenti i dati di origine.
      In questo esempio, i bucket moviestream_gold e moviestream_landing dell'area di memorizzazione degli oggetti vengono selezionati per la raccolta.
    2. Dopo aver eseguito il job, vengono visualizzate le entità logiche. Utilizzare la Sfoglia asset dati per esaminarli.
      In questo esempio si sta esaminando l'entità logica sales_sample_parquet e i relativi attributi. Data Catalog ha identificato l'attributo month come partizionato.
  5. Autonomous Database - Connessione a Data Catalog

    Connettere Autonomous Database a Data Catalog. È necessario assicurarsi che la credenziale utilizzata per stabilire tale connessione utilizzi un principal OCI autorizzato ad accedere all'asset Data Catalog. Per ulteriori informazioni, vedere Criteri di Data Catalog e Accedi alle risorse cloud mediante la configurazione di criteri e ruoli.

    1. Connetti a 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. Sincronizza Data Catalog con Autonomous Database. Qui, sincronizzeremo tutti gli asset di storage degli oggetti:
      
      -- 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: ora avvia l'esecuzione delle query sull'area di memorizzazione degli oggetti.
      -- 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. Modifica schemi per oggetti

    I nomi di schema predefiniti sono piuttosto complicati. Semplifichiamoli specificando sia l'asset che l'attributo personalizzato Oracle-Db-Schema della cartella in Data Catalog. Modificare l'asset dati in PHX e le cartelle rispettivamente in landing e gold. Lo schema è una concatenazione dei due.

    1. Da Data Catalog, passare al bucket moviestream_landing e modificare l'asset rispettivamente in landing e gold.

      Prima della modifica:

      Dopo la modifica:

    2. Eseguire un'altra sincronizzazione.