Harvesting für Object Storage-Dateien als logische Datenentitys ausführen

Ein Data Lake hat in der Regel viele Dateien, die ein einziges Dataset darstellen. Das Konvertieren von Dateibenennungen ist ein Hinweis darauf, dass mehrere Dateien Teil einer logischen Datenentity sind.

Sie können mehrere Objektspeicherdateien mit Dateinamensmustern in logische Datenentitys im Datenkatalog gruppieren. Eine logische Datenentity kann wie jede andere Datenentity für die Suche und die Erkennung verwendet werden. Mit logischen Datenentitys können Sie Ihren Data-Lake-Inhalt sinnvoll organisieren und den extrem schnellen Anstieg von Datenentitys und Attributen im Datenkatalog verhindern.

Typische Aufgaben, die Sie beim Harvesting von Object Storage-Dateien als logische Datenentity ausführen:

  1. Muster erstellen.
  2. Weisen Sie das Muster einem Object Storage-Datenasset zu.
  3. Führen Sie ein Harvesting für das Datenasset aus.
  4. Durch Harvesting erstellte logische Datenentitys anzeigen.

Logische Datenentitys

Betrachten Sie die folgenden Dateien:

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

Wenn Sie für diese Dateien in der Oracle Object Storage-Datenquelle ein Harvesting durchführen, ohne Dateinamensmuster zu erstellen, erstellt Data Catalog neun einzelne Datenentitys im Datenkatalog. Diese Situation kann bei Hunderten von Dateien in einer Datenquelle zu Hunderten von Datenentitys in Ihrem Datenkatalog führen.

Mit Dateinamensmustern  können Sie die Beispieldateien in logische Datenentitys gruppieren. Nicht übereinstimmende Dateien werden als separate Dateityp-Datenentitys erstellt.
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

Ausdrücke

In Data Catalog werden Dateinamensmuster mit Ausdrücken definiert.

Ein Ausdruck kann eine oder mehrere Komponenten enthalten, die durch ein Trennzeichen getrennt werden. Jede Komponente gibt eine Übereinstimmungsregel für das Muster an. Dateinamensmuster werden mit regulären Java-Ausdrücken erstellt. Sie geben den regulären Ausdruck an, mit dem die Dateien in die erforderlichen logischen Datenentitys gruppiert werden sollen.

Sie können Qualifier angeben, die beim Parsen des Ausdrucks verwendet werden. Folgende Qualifier können verwendet werden:

  • bucketName: Mit diesem Qualifier geben Sie an, dass der Bucket-Name aus dem Pfad abgeleitet werden soll, der mit dem angegebenen Ausdruck übereinstimmt. Der Qualifier bucketName wird nur einmal im Ausdruck und immer als erste Komponente des Ausdrucks verwendet. Der Qualifier-Wert bucketName kann ein statischer Text oder ein Ausdruck sein.
  • logicalEntity: Mit diesem Qualifier geben Sie an, dass der Name der logischen Datenentity aus dem Pfad abgeleitet werden soll, der mit dem angegebenen Ausdruck übereinstimmt. Sie können logicalEntity mehrmals in einem Ausdruck verwenden. Die Werte des Qualifiers logicalEntity können aus statischem Text oder aus Ausdrücken bestehen.
Beispiele für logische Datenentitys

Betrachten Sie folgende Dateinamen als Beispiel:

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
Ausdruck mit einem logicalEntity-Qualifier

Um logische Datenentitys basierend auf Häufigkeit (stündlich, täglich, monatlich) abzuleiten, die im Dateinamen angegeben sind, können Sie den folgenden Musterausdruck verwenden:

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

Dieser Ausdruck verwendet die Qualifier bucketName und logicalEntity. In diesem Beispiel stimmt [0-9]* mit einer beliebigen Zahl überein, [a-z]* stimmt mit einem Kleinbuchstaben überein, und .* stimmt mit einem beliebigen Zeichen überein. Der Ausdruck ergibt die folgenden logischen Datenentitys:

  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

Keine Übereinstimmung

bling_metering/some_random_file_123.json

Um logische Datenentitys basierend auf den Regionen (yny, hyd, zrh) abzuleiten, die im Dateinamen angegeben sind, können Sie den folgenden Musterausdruck verwenden:

{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

Dieser Ausdruck ergibt die folgenden logischen Datenentitys:

  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
    

Keine Übereinstimmung

bling_metering/some_random_file_123.json
Ausdruck mit mehreren logicalEntity-Qualifiern

Um logische Datenentitys basierend auf Regionen und Häufigkeiten (stündlich, täglich, monatlich) abzuleiten, die im Dateinamen angegeben sind, können Sie den folgenden Musterausdruck verwenden:

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

Der obige Ausdruck verwendet die Qualifier bucketName und logicalEntity. Der Ausdruck ergibt die folgenden logischen Datenentitys:

  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

Keine Übereinstimmung

bling_metering/some_random_file_123.json
Ausdruck ohne logicalEntity-Qualifier

Wenn kein logicalEntity-Qualifier angegeben ist, wird der Dateinamensmuster-Name als logischer Datenentityname verwendet. Beispiel: Betrachten Sie den folgenden Ausdruck für das Dateinamensmuster bling pattern:

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

Der obige Ausdruck verwendet den bucketName-Qualifier, jedoch keinen logicalEntity-Qualifier. Der Ausdruck ergibt die folgenden logischen Datenentitys:

  1. bling pattern
    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

Keine Übereinstimmung

bling_metering/some_random_file_123.json
Hinweis

Wenn Sie diesen Ausdruck ohne logicalEntity-Qualifier testen, wird der Ausdruck in der daraus resultierenden logischen Datenentity als logischer Entityname angezeigt. Beim Harvesting wird jedoch der Name des Dateinamensmusters als logischer Datenentityname verwendet.