Raccolta dei file di storage degli oggetti come entità di dati logiche

In genere, il data lake include molti file che rappresentano un singolo data set. Le conversioni di denominazione dei file indicano che più file fanno parte di una singola entità di dati logica.

È possibile raggruppare più file di storage degli oggetti in entità di dati logiche nel Data Catalog utilizzando i modelli di nomi file . Un'entità dati logica è come qualsiasi altra entità dati e può essere utilizzata per la ricerca e la ricerca automatica. Utilizzando le entità di dati logiche, puoi organizzare il contenuto del data lake in modo significativo e impedire l'esplosione di entità e attributi di dati nel Data Catalog.

Task standard eseguiti durante la raccolta dei file di storage degli oggetti come entità di dati logiche:

  1. Creare un pattern.
  2. Assegnare il pattern a un asset dati di storage degli oggetti.
  3. Raccogliere l'asset dati.
  4. Visualizza le entità di dati logiche raccolte.

Descrizione delle entità di dati logiche

Considerare il seguente set di file:

myserv/20191205_yny_myIOTSensor.json
myserv/20191105_yny_myIOTSensor.json
myserv/20191005_yny_myIOTSensor.json
myserv/20190905_yny_myIOTSensor.json
myserv/20191005_hyd_my2ndIOTSensor.json
myserv/20190905_hyd_my2ndIOTSensor.json
myserv/20191005_bom_my3rdIOTSensor.json
myserv/20190905_bom_my3rdIOTSensor.json
myserv/somerandomfile_2019AUG05.json

Se si raccolgono questi file nell'origine dati dello storage degli oggetti Oracle senza creare modelli di nomi file , Data Catalog crea nove singole entità dati nel Data Catalog. Immagina questa situazione con centinaia di file nell'origine dati che generano centinaia di entità dati nel tuo Data Catalog.

Utilizzando i modelli di nomi file , è possibile raggruppare il set di file di esempio in entità di dati logiche. Tutti i file che non corrispondono vengono creati come entità dati di tipo File separate.
myserv/20191205_yny_myIOTSensor.json
myserv/20191105_yny_myIOTSensor.json
myserv/20191005_yny_myIOTSensor.json
myserv/20190905_yny_myIOTSensor.json
myserv/20191005_hyd_my2ndIOTSensor.json
myserv/20190905_hyd_my2ndIOTSensor.json
myserv/20191005_bom_my3rdIOTSensor.json
myserv/20190905_bom_my3rdIOTSensor.json
myserv/somerandomfile_2019AUG05.json

Introduzione alle espressioni

In Data Catalog, un pattern di nomi file viene definito mediante espressioni.

Un'espressione può avere uno o più componenti separati mediante un delimitatore. Ogni componente specifica una regola di corrispondenza per il pattern. I pattern di nomi file vengono creati utilizzando espressioni regolari Java. È possibile specificare l'espressione regolare da utilizzare per raggruppare i file in entità di dati logiche richieste.

È possibile specificare i qualificatori utilizzati per l'analisi dell'espressione. È possibile utilizzare i seguenti qualificatori:

  • bucketName: utilizzare questo qualificatore per specificare che il nome del bucket deve essere derivato dal percorso che corrisponde all'espressione specificata. Il qualificatore bucketName viene utilizzato una sola volta nell'espressione e sempre come primo componente dell'espressione. Il valore del qualificatore bucketName può essere un testo statico o un'espressione.
  • logicalEntity: utilizzare questo qualificatore per specificare che il nome dell'entità dati logica deve essere derivato dal percorso che corrisponde all'espressione specificata. È possibile utilizzare logicalEntity più volte in un'espressione. I valori del qualificatore logicalEntity possono essere costituiti da testo o espressioni statiche.
Esempi di entità di dati logiche

Considerare i seguenti nomi di file:

bling_metering/1970120520_yny_hourly_region_res_delayed.json
bling_metering/1973110523_yny_hourly_region_res_delayed.json
bling_metering/1988101605_hyd_daily_region_res_delayed.json
bling_metering/1991042302_yny_hourly_region_res_delayed.json
bling_metering/2019073019_zrh_daily_region_res_delayed.json
bling_metering/2019073020_zrh_monthly_region_res_delayed.json
bling_metering/some_random_file_123.json
Espressione con un qualificatore logicalEntity

Per derivare entità di dati logiche in base alla frequenza (oraria, giornaliera, mensile) menzionata nel nome file, è possibile utilizzare la seguente espressione di pattern:

{bucketName:bling_metering}/[0-9]*_[a-z]*_{logicalEntity:[a-z]*}_.*.json

Questa espressione utilizza i qualificatori bucketName e logicalEntity. In questo esempio, [0-9]* corrisponde a un numero qualsiasi; [a-z]* corrisponde a una lettera minuscola e .* corrisponde a un carattere qualsiasi. L'espressione restituisce le seguenti entità di dati logiche:

  1. bling_metering_monthly
    bling_metering/2019073020_zrh_monthly_region_res_delayed.json
  2. bling_metering_hourly
    bling_metering/1970120520_yny_hourly_region_res_delayed.json
    bling_metering/1973110523_yny_hourly_region_res_delayed.json
    bling_metering/1991042302_yny_hourly_region_res_delayed.json
  3. bling_metering_daily
    bling_metering/1988101605_hyd_daily_region_res_delayed.json
    bling_metering/2019073019_zrh_daily_region_res_delayed.json

Non corrispondenti

bling_metering/some_random_file_123.json

Per derivare entità di dati logiche in base alle aree (yny, hyd, zrh) menzionate nel nome file, è possibile utilizzare una delle seguenti espressioni di pattern:

{bucketName:bling_metering}/[0-9]*_{logicalEntity:yny|hyd|zrh}_[a-z]*_region_res_delayed.json
{bucketName:bling_metering}/[0-9]*_{logicalEntity:[a-z]*}_[a-z]*_.*.json

Questa espressione restituisce le seguenti entità di dati logiche:

  1. bling_metering_zrh
    bling_metering/2019073020_zrh_monthly_region_res_delayed.json
    bling_metering/2019073019_zrh_daily_region_res_delayed.json
  2. bling_metering_yny
    bling_metering/1970120520_yny_hourly_region_res_delayed.json
    bling_metering/1973110523_yny_hourly_region_res_delayed.json
    bling_metering/1991042302_yny_hourly_region_res_delayed.json
  3. bling_metering_hyd
    bling_metering/1988101605_hyd_daily_region_res_delayed.json
    

Non corrispondenti

bling_metering/some_random_file_123.json
Espressione con più qualificatori logicalEntity

Per derivare entità di dati logiche in base alle aree e alla frequenza (oraria, giornaliera, mensile) menzionate nel nome file, è possibile utilizzare la seguente espressione di pattern:

{bucketName:bling_metering}/[0-9]*_{logicalEntity:[a-z]*}_{logicalEntity:[a-z]*}_region_res_delayed.json

L'espressione precedente utilizza il valore bucketName e due qualificatori logicalEntity. L'espressione restituisce le seguenti entità di dati logiche:

  1. bling_metering_zrh_monthly
    bling_metering/2019073020_zrh_monthly_region_res_delayed.json
  2. bling_metering_hyd_daily
    bling_metering/1988101605_hyd_daily_region_res_delayed.json
  3. bling_metering_zrh_daily
    bling_metering/2019073019_zrh_daily_region_res_delayed.json
  4. bling_metering_yny_hourly
    bling_metering/1970120520_yny_hourly_region_res_delayed.json
    bling_metering/1973110523_yny_hourly_region_res_delayed.json
    bling_metering/1991042302_yny_hourly_region_res_delayed.json

Non corrispondenti

bling_metering/some_random_file_123.json
Espressione senza qualificatore logicalEntity

Se non viene specificato alcun qualificatore logicalEntity, come nome dell'entità dati logica viene utilizzato il nome del pattern di nomi file. Ad esempio, si consideri l'espressione seguente per il pattern di nomi file bling pattern:

{bucketName:bling_metering}/[0-9]*_[a-z]*_[a-z]*_.*.json

L'espressione precedente utilizza il qualificatore bucketName, ma nessun qualificatore logicalEntity. L'espressione restituisce le seguenti entità di dati logiche:

  1. pattern di bling
    bling_metering/2019073020_zrh_monthly_region_res_delayed.json
    bling_metering/1970120520_yny_hourly_region_res_delayed.json
    bling_metering/1973110523_yny_hourly_region_res_delayed.json
    bling_metering/1991042302_yny_hourly_region_res_delayed.json
    bling_metering/1988101605_hyd_daily_region_res_delayed.json
    bling_metering/2019073019_zrh_daily_region_res_delayed.json

Non corrispondenti

bling_metering/some_random_file_123.json
Nota

Quando si esegue il test di questa espressione senza qualificatore logicalEntity, nell'entità dati logica risultante l'espressione viene visualizzata come nome dell'entità logica. Durante la raccolta, tuttavia, il nome del pattern di nomi file viene utilizzato come nome dell'entità dati logica.