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:
- Muster erstellen.
- Weisen Sie das Muster einem Object Storage-Datenasset zu.
- Führen Sie ein Harvesting für das Datenasset aus.
- 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.
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 QualifierbucketName
wird nur einmal im Ausdruck und immer als erste Komponente des Ausdrucks verwendet. Der Qualifier-WertbucketName
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önnenlogicalEntity
mehrmals in einem Ausdruck verwenden. Die Werte des QualifierslogicalEntity
können aus statischem Text oder aus Ausdrücken bestehen.
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
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:
- bling_metering_monthly
bling_metering/2019073020_zrh_monthly_region_res_delayed.json
- 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
- 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:
- bling_metering_zrh
bling_metering/2019073020_zrh_monthly_region_res_delayed.json bling_metering/2019073019_zrh_daily_region_res_delayed.json
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
- bling_metering_hyd
bling_metering/1988101605_hyd_daily_region_res_delayed.json
Keine Übereinstimmung
bling_metering/some_random_file_123.json
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:
- bling_metering_zrh_monthly
bling_metering/2019073020_zrh_monthly_region_res_delayed.json
- bling_metering_hyd_daily
bling_metering/1988101605_hyd_daily_region_res_delayed.json
- bling_metering_zrh_daily
bling_metering/2019073019_zrh_daily_region_res_delayed.json
- 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
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:
- 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
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.