Interroga 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ò utilizzare questi metadati per semplificare notevolmente la gestione per l'accesso 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, fare riferimento alla documentazione di Data Catalog.

Informazioni sulle query con Data Catalog

Grazie alla sincronizzazione con i metadati di 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 aggiornato Autonomous Database rispetto alle modifiche ai dati di base, riducendo i costi di amministrazione in quanto mantiene automaticamente da centinaia a 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 che si sincronizzano con gli schemi di Autonomous Database. Le entità logiche all'interno di tali cartelle/bucket sono mappate alle tabelle esterne di Autonomous Database. Questi schemi e tabelle esterne vengono generati e gestiti automaticamente tramite il processo di sincronizzazione:

  • Cartelle/bucket mappano agli schemi di database solo a scopo organizzativo.
  • L'organizzazione deve essere coerente con il data lake e ridurre al minimo la confusione quando si accede ai dati attraverso percorsi diversi.
  • Data Catalog è l'origine delle informazioni affidabili per le tabelle contenute negli schemi. Le modifiche apportate in 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 e alle entità logiche raccolti da Data Catalog selezionati. Non appena vengono create le tabelle esterne, gli analisti dati possono iniziare a eseguire query sui propri 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 la query sugli asset dati dell'area di memorizzazione degli oggetti di Data Catalog. Vedere DBMS_DCAT Package.

Concetti correlati all'esecuzione di query con Data Catalog

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

Data Catalogo

Data Catalog raccoglie gli asset dati che puntano alle origini dati dell'area di memorizzazione degli oggetti di cui si desidera eseguire query con Autonomous Database. Da 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 oggetto dispongono di bucket contenenti una varietà di oggetti. Alcuni tipi comuni di oggetti trovati in questi bucket includono: file CSV, parquet, avro, json e ORC. I bucket hanno generalmente una struttura o un modello di progettazione per gli oggetti che contengono. Ci sono molti modi diversi per strutturare i dati e molti modi diversi di interpretare questi modelli.

Ad esempio, un tipico motivo di progettazione utilizza cartelle di livello superiore che rappresentano 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 si riferisce 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 Autonomous Database a un'istanza di Data Catalog. Per ogni istanza di Autonomous Database possono esserci connessioni a più istanze di Data Catalog. La credenziale Autonomous Database deve disporre dei diritti per accedere agli asset di Data Catalog che sono stati raccolti dallo storage degli oggetti.

Raccolta

Processo di Data Catalog che esegue la scansione dello storage degli oggetti e genera le entità logiche dai data set.

Asset dati

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 di storage degli oggetti Oracle per la sincronizzazione dei metadati.

Entità dati

Un'entità dati in Data Catalog è 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 derivati durante la raccolta mediante l'applicazione di pattern di nomi file creati e assegnati a un asset dati.

Oggetto dati

Un oggetto dati in Data Catalog fa riferimento ad asset dati ed entità dati.

Pattern 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 a Data Catalog per organizzare i 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.

Sincronizza (Sincronizza)

Autonomous Database esegue sincronizzazioni con Data Catalog per mantenere automaticamente aggiornato il proprio database in relazione 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 e alle entità logiche di Data Catalog. Questi schemi sono protetti, il che significa che 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 sincronizzazione.

Mapping sincronizzazione

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

Catalogo dati Autonomous Database Descrizione mapping

Asset dati e cartella (bucket di storage degli oggetti)

Nome schema

Valori predefiniti:

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

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

  • dcat-con-id è l'identificativo di connessione univoco di Data Catalog. Per informazioni dettagliate sulla specifica di 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:

Le opzioni data-asset-name e folder-name predefinite possono essere personalizzate mediante la definizione di proprietà personalizzate, nomi aziendali e nomi visualizzati per sostituire questi nomi predefiniti.
  • È possibile nascondere data-asset-name definendo la proprietà personalizzata oracle-db-schema-prefix per l'asset dati in Data Catalog.
  • folder-name può essere nascosto definendo la proprietà personalizzata oracle-db-schema per la cartella in Data Catalog, un nome attività o un nome visualizzato. I seguenti attributi vengono utilizzati in ordine di precedenza per la generazione di folder-name:
    1. proprietà personalizzata oracle-db-schema
    2. Nome attività
    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 dispone 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 oracle-db-schema è impostato, 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 di colonna: i nomi di colonna della tabella esterna derivano dai nomi visualizzati degli attributi o dai nomi aziendali dell'entità logica corrispondente.

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, i seguenti campi attributo vengono utilizzati in ordine di precedenza per la generazione del nome colonna:

  1. oracle-db-column-name
  2. Nome attività
  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 da 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 da 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 di 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 al contenuto 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 dati e altri utenti del database possano sfogliare ed eseguire query sulle tabelle esterne.

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

Nota

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

Crea i criteri

Amministratore Data Catalog del database

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

Ulteriori informazioni: Credenziali obbligatorie e criteri IAM.

Crea credenziali

Amministratore Data Catalog del database

Assicurarsi che siano disponibili credenziali di database per accedere a Data Catalog ed 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 risorsa.

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

Crea connessioni a Data Catalog

Amministratore Data Catalog del database

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 credenziale del database con privilegi Oracle Cloud Infrastructure (OCI) sufficienti. Ad esempio, è possibile utilizzare il token del servizio principal risorsa 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 Data Catalog del database

Creare un job di sincronizzazione selezionando gli oggetti Data Catalog da sincronizzare. L'utente può:
  • Selezionare gli asset dati/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 Procedure, DROP_SYNC_JOB Procedure, Mapping sincronizzazione

Sincronizza con Data Catalog

Amministratore Data Catalog del database

L'utente avvia un'operazione di sincronizzazione. La sincronizzazione viene avviata manualmente tramite la chiamata di 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 al contenuto del Data Catalog e alle selezioni di sincronizzazione. La configurazione manuale viene applicata utilizzando le proprietà personalizzate di Data Catalog.

Ulteriori informazioni: vedere RUN_SYNC Procedure, CREATE_SYNC_JOB Procedure, Mapping sincronizzazione

Monitora sincronizzazione e visualizza log

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 delle entità logiche 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 Data Catalog del database o l'amministratore del database deve concedere READ sulle tabelle esterne generate agli utenti dell'analista dei dati. Ciò consente agli analisti di dati di eseguire query sulle tabelle esterne generate.

Sfoglia ed esegui query su tabelle esterne

Analista di dati

Gli analisti di dati sono in grado di eseguire query sulle tabelle esterne tramite qualsiasi strumento o applicazione che supporti Oracle SQL.

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

Ulteriori informazioni: Mapping sincronizzazione

Termina connessioni a Data Catalog

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

Ulteriori informazioni: UNSET_DATA_CATALOG_CONN Procedura

Esempio: scenario MovieStream

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

Data Catalog viene utilizzato per raccogliere queste origini e quindi fornire un contesto aziendale ai dati. I metadati di Data Catalog sono condivisi con Autonomous Database, consentendo 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 dinamicamente utilizzando tabelle esterne.

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

  1. Area di memorizzazione degli oggetti - Rivedi bucket, cartelle e file
    1. Rivedere i bucket nell'area di memorizzazione degli oggetti.
      Di seguito, ad esempio, 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 sono riportate, ad esempio, le cartelle nel bucket di destinazione (moviestream_landing) nello storage degli oggetti.
  2. Data Catalog - Crea pattern di nomi file
    1. Informa Data Catalog su come vengono organizzati i dati utilizzando pattern di nomi file. Si tratta di espressioni regolari utilizzate per classificare i file. I pattern di nomi file vengono utilizzati dal raccoglitore Data Catalog per derivare le entità logiche. I due pattern di nomi file seguenti vengono utilizzati per raccogliere i bucket nell'esempio MovieStream. Per ulteriori dettagli sulla creazione di pattern di nomi file, vedere Raccolta di file di storage degli oggetti come entità 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 è (db-name). (nome della cartella)
      • Crea un'entità logica basata sul nome della cartella al di fuori della radice
      • Per evitare la duplicazione con Hive, i nomi oggetto che contengono ".db" vengono ignorati.
    2. Per creare 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. Ora, associa i pattern di nomi file all'asset dati. Selezionare Assegna pattern di nomi file, selezionare i pattern desiderati e fare clic su Assegna.
      Ad esempio, di seguito sono riportati i pattern assegnati all'asset dati phoenixObjStore:Segue la 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 di 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 Sfoglia asset dati per esaminarli.
      In questo esempio vengono esaminati l'entità logica customer-extension e i relativi attributi.

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

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

    Connettere Autonomous Database a Data Catalog. È necessario assicurarsi che la credenziale utilizzata per rendere 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 inizia a eseguire query sull'area di memorizzazione degli oggetti.
      -- Query the Data !
      select *from dcat$phoenixobjstore_moviestream_gold.genre
      ;
  6. Modifica schemi per gli oggetti

    I nomi di schema predefiniti sono piuttosto complessi. Semplificarli 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 in landing e gold rispettivamente. 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 dati partizionati. Data Catalog viene utilizzato per raccogliere queste origini e quindi fornire un contesto aziendale ai dati. Per ulteriori dettagli su questo esempio, vedere Esempio: scenario MovieStream.

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

  1. Area di memorizzazione degli oggetti - Rivedi bucket, cartelle e file
    1. Rivedere i bucket nell'area di memorizzazione degli oggetti.
      Di seguito, ad esempio, 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 sono riportate, ad esempio, le cartelle nel bucket di destinazione (moviestream_landing) nello storage degli oggetti.
  2. Data Catalog - Crea pattern di nomi file
    1. Informa Data Catalog su come vengono organizzati i dati utilizzando 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 dal raccoglitore Data Catalog per derivare le entità logiche. Quando viene specificato 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 di file di storage degli oggetti come entità 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 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. Ora, associa i pattern di nomi file all'asset dati. Selezionare Assegna pattern di nomi file, selezionare i pattern desiderati e fare clic su Assegna.
      Di seguito sono riportati, ad esempio, i pattern assegnati all'asset dati amsterdamObjStore.
  4. Data Catalog - Raccogli dati dall'area di memorizzazione degli oggetti
    1. Raccogliere l'asset dati di 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 Sfoglia asset dati per esaminarli.
      In questo esempio vengono esaminati l'entità logica sales_sample_parquet e i relativi attributi. Si noti che Data Catalog ha identificato l'attributo month come partizionato.
  5. Autonomous Database - Connessione al Data Catalog

    Connettere Autonomous Database a Data Catalog. È necessario assicurarsi che la credenziale utilizzata per rendere 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 inizia a eseguire 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 gli oggetti

    I nomi di schema predefiniti sono piuttosto complessi. Semplificarli 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 in landing e gold rispettivamente. 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.