Abfrage externer Daten mit Data Catalog

Oracle Cloud Infrastructure Data Catalog ist der Metadaten-Management-Service für Oracle Cloud, mit dem Sie Daten finden und Data Governance unterstützen können. Er bietet einen Bestand an Assets, ein Geschäftsglossar und einen gemeinsamen Metastore für Data Lakes.

Autonomous Database kann diese Metadaten nutzen, um die Verwaltung für den Zugriff auf den Objektspeicher Ihres Data Lakes erheblich zu vereinfachen. Anstatt externe Tabellen für den Zugriff auf Ihren Data Lake manuell zu definieren, verwenden Sie die externen Tabellen, die definiert und automatisch verwaltet werden. Diese Tabellen befinden sich in geschützten Autonomous Database-Schemas, die bei Änderungen in Data Catalog aktualisiert werden.

Weitere Informationen zu Data Catalog finden Sie in der Dokumentation zu Data Catalog.

Abfragen mit Data Catalog

Durch Synchronisierung mit Data Catalog-Metadaten erstellt Autonomous Database automatisch externe Tabellen für jede logische Entity, für die ein Harvesting durch Data Catalog ausgeführt wird. Diese externen Tabellen werden in Datenbankschemas definiert, die vollständig vom Synchronisierungsprozess für Metadaten verwaltet werden. Benutzer können Daten sofort abfragen, ohne das Schema (Spalten und Datentypen) für externe Datenquellen manuell ableiten und externe Tabellen manuell erstellen zu müssen.

Die Synchronisierung ist dynamisch, sodass Autonomous Database in Bezug auf Änderungen an den zugrundeliegenden Daten immer auf dem neuesten Stand ist. Dadurch werden die Administrationskosten gesenkt, da Hunderte oder Tausende von Tabellen automatisch verwaltet werden. Außerdem können mehrere Autonomous Database-Instanzen denselben Datenkatalog verwenden, um die Verwaltungskosten weiter zu senken und ein gemeinsames Set von Geschäftsdefinitionen bereitzustellen.

Die Datenkatalogordner/Buckets sind Container, die mit Autonomous Database-Schemas synchronisiert werden. Logische Entitys innerhalb dieser Ordner/Buckets sind externen Tabellen von Autonomous Database zugeordnet. Diese Schemas und externen Tabellen werden automatisch generiert und durch den Synchronisierungsprozess verwaltet:

  • Ordner/Buckets werden Datenbankschemas zugeordnet, die nur organisatorischen Zwecken dienen.
  • Die Organisation soll mit dem Data Lake konsistent sein und Verwechslungen minimieren, wenn auf Daten über verschiedene Pfade zugegriffen wird.
  • Data Catalog ist die Source of Truth für die Tabellen in Schemas. Änderungen in Data Catalog aktualisieren die Tabellen des Schemas bei einer nachfolgenden Synchronisierung.

Um diese Funktion zu verwenden, initiiert ein Database Data Catalog-Administrator eine Verbindung zu einer Data Catalog-Instanz, wählt die zu synchronisierenden Datenassets und logischen Entitys aus und führt die Synchronisierung aus. Der Synchronisierungsprozess erstellt Schemas und externe Tabellen basierend auf den ausgewählten, durch Harvesting von Data Catalog erstellten Datenassets und logischen Entitys. Sobald die externen Tabellen erstellt wurden, können Datenanalysten mit der Abfrage ihrer Daten beginnen, ohne das Schema für externe Datenquellen manuell ableiten und externe Tabellen erstellen zu müssen.

Hinweis

Das Package DBMS_DCAT ist zum Ausführen der Aufgaben verfügbar, die zum Abfragen von Datenassets des Data Catalog-Objektspeichers erforderlich sind. Siehe DBMS_DCAT Package.

Konzepte zur Abfrage mit Data Catalog

Die folgenden Konzepte müssen für Abfragen mit Data Catalog bekannt sein.

Datenkatalog

Data Catalog erfasst Datenassets, die auf die Objektspeicher-Datenquellen verweisen, die Sie mit Autonomous Database abfragen möchten. In Data Catalog können Sie angeben, wie die Daten während des Harvesting-Vorgangs organisiert werden. Dabei werden verschiedene Dateigruppierungsmuster unterstützt. Im Rahmen des Harvesting-Prozesses von Data Catalog können Sie die Buckets und Dateien auswählen, die Sie innerhalb des Assets verwalten möchten. Weitere Informationen finden Sie unter Data Catalog - Überblick.

Objektspeicher

Objektspeicher haben Buckets, die verschiedene Objekte enthalten. Einige gängige Objekttypen in diesen Buckets sind: CSV-, Parkett-, Avro-, Json- und ORC-Dateien. Buckets haben in der Regel eine Struktur oder ein Designmuster für die enthaltenen Objekte. Es gibt viele verschiedene Möglichkeiten, Daten zu strukturieren und diese Muster zu interpretieren.

Beispiel: Ein typisches Designmuster verwendet Ordner der oberen Ebene, die Tabellen darstellen. Dateien innerhalb eines bestimmten Ordners verwenden dasselbe Schema und enthalten Daten für die entsprechende Tabelle. Unterordner werden häufig verwendet, um Tabellenpartitionen darzustellen (z.B. ein Unterordner für jeden Tag). Data Catalog verweist auf jeden Ordner der obersten Ebene als logische Entity, und diese logische Entity wird einer Autonomous Database-externen Tabelle zugeordnet.

Verbindung

Eine Verbindung ist eine Autonomous Database-Verbindung zu einer Data Catalog-Instanz. Für jede Autonomous Database-Instanz können Verbindungen zu mehreren Data Catalog-Instanzen vorhanden sein. Die Autonomous Database-Zugangsdaten müssen über Berechtigungen für den Zugriff auf Datenkatalogassets verfügen, für die ein Harvesting aus dem Objektspeicher ausgeführt wurde.

Ernte

Ein Data Catalog-Prozess, der den Objektspeicher scannt und die logischen Entitys aus Ihren Datasets generiert.

Datenasset

Ein Datenasset in Data Catalog stellt eine Datenquelle dar, einschließlich Datenbanken, Oracle Object Storage, Kafka und mehr. Autonomous Database nutzt Oracle Object Storage-Assets für die Metasynchronisierung.

Datenentity

Eine Datenentity in Data Catalog ist eine Sammlung von Daten, wie eine Datenbanktabelle oder -View oder eine einzelne Datei. Sie enthält normalerweise viele Attribute zur Beschreibung ihrer Daten.

Logische Entity

In Data Lakes bilden zahlreiche Dateien in der Regel eine einzige logische Entity. Beispiel: Sie haben tägliche Clickstream-Dateien, die dasselbe Schema und denselben Dateityp verwenden.

Eine logische Data Catalog-Entity ist eine Gruppe von Object Storage-Dateien, die beim Harvesting durch Anwendung von Dateinamenmustern abgeleitet werden, die erstellt und einem Datenasset zugewiesen wurden.

Datenobjekt

Ein Datenobjekt in Data Catalog bezieht sich auf Datenassets und Datenentitys.

Dateinamensmuster

In einem Data Lake können Daten auf unterschiedliche Weise organisiert werden. Normalerweise erfassen Ordner Dateien desselben Schemas und Typs. Sie müssen bei Data Catalog registrieren, wie Ihre Daten organisiert sind. Dateinamensmuster geben an, wie Ihre Daten organisiert sind. In Data Catalog können Sie Dateimuster mit regulären Ausdrücken definieren. Wenn Data Catalog ein Datenasset mit einem zugewiesenen Dateimuster erfasst, werden logische Entitys basierend auf dem Dateimuster erstellt. Wenn Sie diese Muster definieren und Datenassets zuweisen, können mehrere Dateien basierend auf dem Dateimuster als logische Entitys gruppiert werden.

Synchronisieren (Synchronisieren)

Autonomous Database synchronisiert mit Data Catalog, um die Datenbank bei Änderungen an den zugrunde liegenden Daten automatisch auf dem neuesten Stand zu halten. Die Synchronisierung kann manuell oder nach einem Zeitplan ausgeführt werden.

Der Synchronisierungsprozess erstellt Schemas und externe Tabellen basierend auf den Datenassets und logischen Entitys von Data Catalog. Diese Schemas sind geschützt. Das bedeutet, dass ihre Metadaten von Data Catalog verwaltet werden. Wenn Sie die Metadaten ändern möchten, müssen Sie die Änderungen in Data Catalog vornehmen. Die Autonomous Database-Schema geben alle Änderungen nach der nächsten Synchronisierung wieder. Weitere Informationen finden Sie unter Synchronisierungszuordnung.

Synchronisierungszuordnung

Der Synchronisierungsprozess erstellt und aktualisiert Autonomous Database-Schemas und externe Tabellen basierend auf Datenassets, Ordnern, logischen Entitys, Attributen und relevanten benutzerdefinierten Overrides von Data Catalog.

Data Catalog Autonomous Database Mappingbeschreibung

Datenasset und Ordner (Object Storage Bucket)

Schema-Name

Standardwerte:

Standardmäßig hat der generierte Schemaname in Autonomous Database das folgende Format:

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

  • dcat-con-id ist die eindeutige Data Catalog-Verbindungs-ID. Einzelheiten zur Angabe dieser ID finden Sie im Parameter dcat_con_id in der Prozedur DBMS_DCAT RUN_SYNC.
  • data-asset-name ist der Name des Data Catalog-Datenassets.
  • folder-name ist der Name des Datenkatalogordners. Dieser Ordner wird einem Object Storage-Bucket zugeordnet.

Anpassungen:

Die Standardwerte data-asset-name und folder-name können angepasst werden, indem benutzerdefinierte Eigenschaften, Geschäftsnamen und Anzeigenamen definiert werden, die diese Standardnamen ersetzen.
  • data-asset-name kann überschrieben werden, indem die benutzerdefinierte Eigenschaft oracle-db-schema-prefix für das Datenasset in Data Catalog definiert werden.
  • folder-name kann überschrieben werden, indem die benutzerdefinierte Eigenschaft oracle-db-schema für den Ordner in Data Catalog, ein Geschäftsname oder ein Anzeigename definiert wird. Die folgenden Attribute werden in folgender Priorität zum Generieren von folder-name verwendet:
    1. Benutzerdefinierte Eigenschaft oracle-db-schema
    2. Geschäftsname
    3. Anzeigename

Beispiele:

  • Wenn die Verbindungs-ID DataModels, der Assetname ObjectStorage, der Ordnername HR und keine benutzerdefinierten Eigenschafts-Overrides vorhanden sind, lautet der abgeleitete Schemaname: DCAT$DATAMODELS_OBJECTSTORAGE_HR
  • Wenn der Name des Datenassets MYASSET und der Name des Ordners MYFOLDER ist und keine benutzerdefinierten Eigenschafts-Overrides vorhanden sind, lautet der Schemename: DCAT$MYASSET_MYFOLDER
  • Wenn das Datenasset oracle-db-prefix = FIRSTASSET und der Ordner oracle-db-schema = FIRSTFOLDER enthält, lautet der Name des Schemas: DCAT$FIRSTASSET_FIRSTFOLDER
Logische Entity Externe Tabelle

Logische Entitys werden externen Tabellen zugeordnet. Wenn die logische Entity ein partitioniertes Attribut aufweist, wird sie einer partitionierten externen Tabelle zugeordnet.

Der externe Tabellenname wird von dem Anzeigenamen oder Geschäftsnamen der entsprechenden logischen Entity abgeleitet.

Wenn oracle-db-schema festgelegt ist, überschreibt sein Wert alle Namen und benutzerdefinierten Eigenschaften der entsprechenden Ordner und Datenassets.

Beispiel: Wenn oracle-db-schema für eine Entity auf EntitySchema gesetzt ist, wird die Tabelle im Schema DCAT$ENTITYSCHEMA erstellt.

Attribute der logischen Entity Spalten der externen Tabelle

Spaltennamen: Die externen Tabellenspaltennamen werden von den Attribut- oder Geschäftsnamen der entsprechenden logischen Entity abgeleitet.

Bei logischen Entitys, die aus Parquet-, Avro- und ORC-Dateien abgeleitet werden, ist der Spaltenname immer der Anzeigename des Attributs, da er den aus den Quelldateien abgeleiteten Feldnamen darstellt.

Bei Attributen, die einer logischen Entity entsprechen, die aus CSV-Dateien abgeleitet wird, werden die folgenden Attributfelder in Reihenfolge ihrer Priorität zum Generieren des Spaltennamens verwendet:

  1. oracle-db-column-name
  2. Geschäftsname
  3. Anzeigename

Spaltentyp: Die benutzerdefinierte Eigenschaft oracle-db-column-type überschreibt den Standardspaltentyp, der von Data Catalog abgeleitet wurde.

Für Attribute, die einer logischen Entity entsprechen, die aus Avro-Dateien mit den Datentypen TIME_MICROS, TIME_MILLIS, TIMESTAMP_MICROS oder TIMESTAMP_MILLIS abgeleitet wurde, müssen Sie den oracle-db-column-type des entsprechenden Attributs in Data Catalog festlegen.

Spaltenlänge: Mit der benutzerdefinierten Eigenschaft oracle-db-column-length wird die Standardspaltenlänge für ein Zeichenfolgenfeld überschrieben, das von Data Catalog abgeleitet wurde.

Nachkommastellen für Spalte: Die benutzerdefinierte Eigenschaft oracle-db-column-precision setzt die Standardanzahl der Nachkommastellen für eine Zahl außer Kraft, die von Data Catalog abgeleitet wurde.

Für Attribute, die einer logischen Entity entsprechen, die aus Avro-Dateien mit den Datentypen TIME_MICROS, TIME_MILLIS, TIMESTAMP_MICROS oder TIMESTAMP_MILLIS abgeleitet wurde, müssen Sie den oracle-db-column-precision des entsprechenden Attributs in Data Catalog festlegen.

Spaltenskalierung: Die benutzerdefinierte Eigenschaft oracle-db-column-scale setzt die Standardskalierung für eine Zahl außer Kraft, die von Data Catalog abgeleitet wurde.

Typischer Workflow mit Data Catalog

Es gibt einen typischen Workflow mit Aktionen, die von Benutzern ausgeführt werden, die mit Data Catalog abfragen möchten.

Der Database Data Catalog-Administrator erstellt eine Verbindung zwischen der Autonomous Database-Instanz und einer Data Catalog-Instanz. Anschließend wird eine Synchronisierung zwischen Data Catalog und Autonomous Database konfiguriert und ausgeführt. Die Synchronisierung erstellt externe Tabellen und Schemas in der Autonomous Database-Instanz basierend auf den synchronisierten Datenkataloginhalten.

Der Database Data Catalog-Abfrageadministrator oder Datenbankadministrator erteilt READ-Zugriff auf die generierten externen Tabellen, sodass Datenanalysten und andere Datenbankbenutzer die externen Tabellen durchsuchen und abfragen können.

In der folgenden Tabelle werden jede Aktion ausführlich beschrieben. Eine Beschreibung der verschiedenen in dieser Tabelle enthaltenen Benutzertypen finden Sie unter Data Catalog-Benutzer und -Rollen.

Hinweis

Das Package DBMS_DCAT ist zum Ausführen der Aufgaben verfügbar, die zum Abfragen von Datenassets des Data Catalog-Objektspeichers erforderlich sind. Siehe DBMS_DCAT Package.
Maßnahme Benutzer Beschreibung

Policys erstellen

Datenbankdatenkatalogadministrator

Der Autonomous Database-Resource-Principal oder die Autonomous Database-Benutzerzugangsdaten müssen über die entsprechenden Berechtigungen zum Verwalten von Data Catalog und zum Lesen aus dem Objektspeicher verfügen.

Weitere Informationen: Erforderliche Zugangsdaten und IAM-Policys.

Zugangsdaten erstellen

Datenbankdatenkatalogadministrator

Stellen Sie sicher, dass Datenbankzugangsdaten vorhanden sind, um auf Data Catalog zuzugreifen und den Objektspeicher abzufragen. Der Benutzer ruft DBMS_CLOUD.CREATE_CREDENTIAL auf, um Benutzerzugangsdaten zu erstellen, und/oder DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL, um Resource Principals zu aktivieren.

Weitere Informationen: Prozedur DBMS_CLOUD CREATE_CREDENTIAL, Resource Principal mit DBMS_CLOUD verwenden.

Verbindungen zu Data Catalog erstellen

Datenbankdatenkatalogadministrator

Um eine Verbindung zwischen einer Autonomous Database-Instanz und einer Data Catalog-Instanz zu initiieren, ruft der Benutzer DBMS_DCAT.SET_DATA_CATALOG_CONN auf, um die Zieldatenkataloginstanz anzugeben. Verbindungen von einer Autonomous Database-Instanz zu mehreren Data Catalog-Instanzen werden unterstützt.

Die Verbindung zur Data Catalog-Instanz muss ein Datenbank-Zugangsdatenobjekt mit ausreichenden Oracle Cloud Infrastructure-(OCI-)Berechtigungen verwenden. Beispiel: Das Resource Principal-Servicetoken für die Autonomous Database-Instanz oder ein OCI-Benutzer mit ausreichenden Berechtigungen kann verwendet werden.

Nachdem die Verbindung hergestellt wurde, wird die Data Catalog-Instanz mit dem Namespace DBMS_DCAT und den benutzerdefinierten Eigenschaften aktualisiert (falls noch nicht vorhanden). Der Benutzer kann eine Abfrage ausführen, um die neue Verbindung einschließlich aller aktuellen Verbindungen anzuzeigen:
select * from all_dcat_connections;

Weitere Informationen: SET_DATA_CATALOG_CONN-Prozedur, UNSET_DATA_CATALOG_CONN-Prozedur.

Ausgewählte Synchronisierung erstellen

Datenbankdatenkatalogadministrator

Erstellen Sie einen Sync-Job, indem Sie die zu synchronisierenden Data Catalog-Objekte auswählen. Der Benutzer kann:
  • Zu synchronisierende Datenbestände/Ordner auswählen.
  • Wählen Sie einzelne logische Entitys aus, die synchronisiert werden sollen.
  • Vor der Synchronisierung eine Vorschau der resultierenden externen Tabellen anzeigen.
  • Externe Tabellen ändern (z.B. deren Namen), indem benutzerdefinierte Eigenschaften in Data Catalog geändert werden.

Weitere Informationen finden Sie unter: Siehe: CREATE_SYNC_JOB Prozedur, DROP_SYNC_JOB Prozedur, Synchronisierungszuordnung.

Mit Data Catalog synchronisieren

Datenbankdatenkatalogadministrator

Der Benutzer initiiert einen Sync-Vorgang. Die Synchronisierung wird manuell über den Aufruf der DBMS_DCAT.RUN_SYNC-Prozedur oder automatisch als Teil eines geplanten Synchronisierungsjobs initiiert.

Der Synchronisierungsvorgang erstellt, ändert und löscht externe Tabellen und Schemas entsprechend den Data Catalog-Inhalten und der Synchronisierungsauswahl. Die manuelle Konfiguration wird mit den benutzerdefinierten Data Catalog-Eigenschaften angewendet.

Weitere Informationen finden Sie unter: RUN_SYNC Prozedur, CREATE_SYNC_JOB Prozedur, Synchronisierungszuordnung.

Synchronisierung überwachen und Logs anzeigen

Datenbankdatenkatalogadministrator

Der Benutzer kann den Synchronisierungsstatus anzeigen, indem Sie die View USER_LOAD_OPERATIONS abfragen. Nach Abschluss des Sync-Prozesses kann der Benutzer ein Log der Sync-Ergebnisse anzeigen, einschließlich Details zur Zuordnung logischer Entitys zu externen Tabellen.

Weitere Informationen: Ladevorgänge überwachen und Fehler beheben

Berechtigungen erteilen

Database Data Catalog-Abfrageadministrator, Datenbankadministrator

Der Datenbank-Data Catalog-Abfrageadministrator oder Datenbankadministrator muss Datenanalysten READ für generierte externe Tabellen erteilen. So können Datenanalysten die generierten externen Tabellen abrufen.

Externe Tabellen durchsuchen und abfragen

Datenanalyst

Datenanalysten können die externen Tabellen mit jedem Tool oder jeder Anwendung abfragen, die Oracle SQL unterstützt.

Datenverantwortliche können die synchronisierten Schemas und Tabellen in den DCAT$*-Schemas prüfen und die Tabellen mit Oracle SQL abfragen.

Weitere Informationen: Synchronisierungszuordnung

Verbindungen zu Data Catalog beenden

Datenbankdatenkatalogadministrator

Um eine vorhandene Datenkatalogverknüpfung zu entfernen, ruft der Benutzer die Prozedur UNSET_DATA_CATALOG_CONN auf.

Diese Aktion wird nur ausgeführt, wenn Sie die Verwendung von Data Catalog und den externen Tabellen, die aus dem Katalog abgeleitet werden, nicht mehr planen. Mit dieser Aktion werden Data Catalog-Metadaten gelöscht, und synchronisierte externe Tabellen werden aus der Autonomous Database-Instanz gelöscht. Die benutzerdefinierten Eigenschaften in Data Catalog und OCI-Policys sind nicht betroffen.

Weitere Informationen: UNSET_DATA_CATALOG_CONN-Prozedur

Beispiel: Szenario MovieStream

In diesem Szenario erfasst Moviestream Daten in einer Landing Zone im Objektspeicher. Viele dieser Daten, aber nicht unbedingt alle, werden dann an Autonomous Database übergeben. Vor dem Feed in Autonomous Database werden die Daten transformiert, bereinigt und anschließend im Bereich "Gold" gespeichert.

Data Catalog wird für das Harvesting dieser Quellen verwendet und stellt dann einen Geschäftskontext für die Daten bereit. Data Catalog-Metadaten werden mit Autonomous Database geteilt, sodass Autonomous Database-Benutzer diese Datenquellen mit Oracle SQL abfragen können. Diese Daten können in Autonomous Database geladen oder dynamisch mit externen Tabellen abgefragt werden.

Weitere Informationen zur Verwendung von Data Catalog finden Sie in der Data Catalog-Dokumentation.

  1. Objektspeicher - Buckets, Ordner und Dateien prüfen
    1. Prüfen Sie die Buckets in Ihrem Objektspeicher.
      Beispiel: Im Folgenden finden Sie die Landing-Buckets (moviestream_landing) und die Gold Zone-Buckets (moviestream_gold) im Objektspeicher:
    2. Prüfen Sie die Ordner und Dateien in den Objektspeicher-Buckets.
      Im Folgenden finden Sie beispielsweise die Ordner im Landing Bucket (moviestream_landing) im Objektspeicher:
  2. Data Catalog - Dateinamensmuster erstellen
    1. Informieren Sie Data Catalog, wie Ihre Daten mit Dateimustern organisiert werden. Hierbei handelt es sich um reguläre Ausdrücke, die zum Kategorisieren von Dateien verwendet werden. Die Dateinamensmuster werden vom Data Catalog-Harvester verwendet, um logische Entitys abzuleiten. Die folgenden beiden Dateinamensmuster werden für das Harvesting der Buckets im Beispiel MovieStream verwendet. Weitere Informationen zum Erstellen von Dateimustern finden Sie unter Harvesting für Object Storage-Dateien als logische Datenentitys ausführen.
      Hive-Stil Ordnerstil
      {bucketName:.*}/{logicalEntity:[^/]+}.db/{logicalEntity:[^/]+}/.* {bucketName:[\w]+}/{logicalEntity:[^/]+}(?<!.db)/.*$
      • Erstellt logische Entitys für Quellen, die ".db" als ersten Teil des Objektnamens enthalten.
      • Um sicherzustellen, dass der Bucket eindeutig ist, lautet der resultierende Name (db-name).(Ordnername).
      • Erstellt eine logische Entity basierend auf dem Namen des Ordners außerhalb der Root
      • Um eine Duplizierung mit Hive zu verhindern, werden Objektnamen, in denen ".db" enthalten ist, übersprungen.
    2. Um Dateimuster zu erstellen, gehen Sie zur Registerkarte Dateinamensmuster für Ihren Datenkatalog, und klicken Sie auf Dateinamensmuster erstellen. Beispiel: Die Registerkarte Dateimuster erstellen für den Datenkatalog moviestream enthält Folgendes:
  3. Datenkatalog - Datenasseterstellung
    1. Erstellen Sie ein Datenasset, das für das Harvesting von Daten aus dem Objektspeicher verwendet wird.
      Beispiel: Ein Datenasset mit dem Namen phoenixObjStore wird im Datenkatalog moviestream erstellt:
    2. Fügen Sie eine Verbindung für das Datenasset hinzu.
      In diesem Beispiel stellt das Datenasset eine Verbindung zum Compartment für die Objektspeicherressource moviestream her.
    3. Verknüpfen Sie jetzt Ihre Dateimuster mit dem Datenasset. Wählen Sie Dateimuster zuweisen aus, prüfen Sie die gewünschten Muster, und klicken Sie auf Zuweisen.
      Beispiel: Hier sind die Muster aufgeführt, die dem Datenasset phoenixObjStore zugewiesen sind:Eine Beschreibung von assign_filename_patterns_v1.png folgt.
      Beschreibung der Abbildung assign_filename_patterns_v1.png
  4. Data Catalog - Harvesting von Daten aus dem Objektspeicher ausführen
    1. Führen Sie ein Harvesting für das Datenasset "Data Catalog" aus. Wählen Sie die Objektspeicher-Buckets mit den Quelldaten aus.
      In diesem Beispiel sind die Buckets moviestream_gold und moviestream_landing aus dem Objektspeicher für das Harvesting ausgewählt.
    2. Nachdem Sie den Job ausgeführt haben, werden die logischen Entitys angezeigt. Mit Datenassets durchsuchen können Sie sie prüfen.
      In diesem Beispiel betrachten Sie die logische Entity customer-extension und ihre Attribute.

      Wenn Sie über ein Glossar verfügen, empfiehlt Data Catalog Kategorien und Begriffe, die mit der Entity und ihren Attributen verknüpft werden sollen. Gibt einen Geschäftskontext für die Elemente an. Schemas, Tabellen und Spalten sind oft nicht selbsterklärend.

      In unserem Beispiel möchten wir zwischen den verschiedenen Typen von Buckets und deren Bedeutung unterscheiden:
      • Was ist eine Landing Zone?
      • Wie genau sind die Daten?
      • Wann wurden Sie zuletzt aktualisiert?
      • Was ist die Definition einer logischen Entity oder ihres Attributs?
  5. Autonomous Database - Verbindung zu Data Catalog herstellen

    Autonomous Database mit Data Catalog verbinden. Sie müssen sicherstellen, dass die für diese Verbindung verwendeten Zugangsdaten einen OCI-Principal verwenden, der für den Zugriff auf das Datenkatalogasset autorisiert ist. Weitere Informationen finden Sie unter Data Catalog-Policys und Auf Cloud-Ressourcen mit Policys und Rollen zugreifen.

    1. Mit Datenkatalog verbinden
      -- 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. Data Catalog mit Autonomous Database synchronisieren Hier werden alle Objektspeicherressourcen synchronisiert:
      
      -- 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 - Starten Sie jetzt Abfragen zum Objektspeicher.
      -- Query the Data !
      select *from dcat$phoenixobjstore_moviestream_gold.genre
      ;
  6. Schemas für Objekte ändern

    Die Standardschemanamen sind recht kompliziert. Vereinfachen wir sie, indem wir sowohl das Asset als auch das benutzerdefinierte Attribut Oracle-Db-Schema des Ordners in Data Catalog angeben. Ändern Sie das Datenasset in PHX und die Ordner in landing bzw. gold. Das Schema ist eine Verknüpfung der beiden.

    1. Navigieren Sie in Data Catalog zum Bucket moviestream_landing, und ändern Sie das Asset in landing bzw. gold.

      Vor Änderung:

      nach Änderung:

    2. Führen Sie eine weitere Synchronisierung aus.

Beispiel: Szenario mit partitionierten Daten

Dieses Szenario zeigt, wie externe Tabellen in Autonomous Database erstellt werden, die auf logischen Data Catalog-Entitys basieren, für die Harvesting aus partitionierten Daten im Objektspeicher ausgeführt wurde.

Das folgende Beispiel basiert auf dem Beispiel: MovieStream Scenario und wurde angepasst, um die Integration mit partitionierten Daten zu demonstrieren. Data Catalog wird für das Harvesting dieser Quellen verwendet und stellt dann einen Geschäftskontext für die Daten bereit. Weitere Einzelheiten zu diesem Beispiel finden Sie unter Beispiel: MovieStream Szenario.

Weitere Informationen zur Verwendung von Data Catalog finden Sie in der Data Catalog-Dokumentation.

  1. Objektspeicher - Buckets, Ordner und Dateien prüfen
    1. Prüfen Sie die Buckets in Ihrem Objektspeicher.
      Beispiel: Im Folgenden finden Sie die Landing-Buckets (moviestream_landing) und die Gold Zone-Buckets (moviestream_gold) im Objektspeicher:
    2. Prüfen Sie die Ordner und Dateien in den Objektspeicher-Buckets.
      Im Folgenden finden Sie beispielsweise die Ordner im Landing Bucket (moviestream_landing) im Objektspeicher:
  2. Data Catalog - Dateinamensmuster erstellen
    1. Informieren Sie Data Catalog, wie Ihre Daten mit Dateimustern organisiert werden. Dies sind Ordnerpräfixe oder reguläre Ausdrücke zur Kategorisierung von Dateien. Die Dateinamensmuster werden vom Data Catalog-Harvester verwendet, um logische Entitys abzuleiten. Wenn ein Ordnerpräfix angegeben wird, generiert der Datenkatalog automatisch logische Entitys aus dem angegebenen Ordnerpräfix im Objektspeicher. Das folgende Dateinamenmuster wird für das Harvesting der Buckets im Beispiel MovieStream verwendet. Weitere Informationen zum Erstellen von Dateimustern finden Sie unter Harvesting für Object Storage-Dateien als logische Datenentitys ausführen.
      Ordnerpräfix Beschreibung
      workshop.db/ Erstellt logische Entitys für Quellen, die den Pfad "workshop.db" im Objektspeicher enthalten.
    2. Um Dateimuster zu erstellen, gehen Sie zur Registerkarte Dateinamensmuster für Ihren Datenkatalog, und klicken Sie auf Dateinamensmuster erstellen. Beispiel: Die Registerkarte Dateimuster erstellen für den Datenkatalog moviestream enthält Folgendes:
  3. Datenkatalog - Datenasseterstellung
    1. Erstellen Sie ein Datenasset, das für das Harvesting von Daten aus dem Objektspeicher verwendet wird.
      Beispiel: Ein Datenasset mit dem Namen amsterdamObjStore wird im Datenkatalog moviestream erstellt:
    2. Fügen Sie eine Verbindung für das Datenasset hinzu.
      In diesem Beispiel stellt das Datenasset eine Verbindung zum Compartment für die Objektspeicherressource moviestream her.
    3. Verknüpfen Sie jetzt Ihre Dateimuster mit dem Datenasset. Wählen Sie Dateimuster zuweisen aus, prüfen Sie die gewünschten Muster, und klicken Sie auf Zuweisen.
      Beispiel: Die folgenden Muster sind dem Datenasset amsterdamObjStore zugewiesen:
  4. Data Catalog - Harvesting von Daten aus dem Objektspeicher ausführen
    1. Führen Sie ein Harvesting für das Datenasset "Data Catalog" aus. Wählen Sie die Objektspeicher-Buckets mit den Quelldaten aus.
      In diesem Beispiel sind die Buckets moviestream_gold und moviestream_landing aus dem Objektspeicher für das Harvesting ausgewählt.
    2. Nachdem Sie den Job ausgeführt haben, werden die logischen Entitys angezeigt. Mit Datenassets durchsuchen können Sie sie prüfen.
      In diesem Beispiel betrachten Sie die logische Entity sales_sample_parquet und ihre Attribute. Beachten Sie, dass Data Catalog das Attribut month als partitioniert identifiziert hat.
  5. Autonomous Database - Verbindung zu Data Catalog herstellen

    Autonomous Database mit Data Catalog verbinden. Sie müssen sicherstellen, dass die für diese Verbindung verwendeten Zugangsdaten einen OCI-Principal verwenden, der für den Zugriff auf das Datenkatalogasset autorisiert ist. Weitere Informationen finden Sie unter Data Catalog-Policys und Auf Cloud-Ressourcen mit Policys und Rollen zugreifen.

    1. Mit Datenkatalog verbinden
      -- 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. Data Catalog mit Autonomous Database synchronisieren Hier werden alle Objektspeicherressourcen synchronisiert:
      
      -- 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 - Starten Sie jetzt Abfragen zum Objektspeicher.
      -- 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. Schemas für Objekte ändern

    Die Standardschemanamen sind recht kompliziert. Vereinfachen wir sie, indem wir sowohl das Asset als auch das benutzerdefinierte Attribut Oracle-Db-Schema des Ordners in Data Catalog angeben. Ändern Sie das Datenasset in PHX und die Ordner in landing bzw. gold. Das Schema ist eine Verknüpfung der beiden.

    1. Navigieren Sie in Data Catalog zum Bucket moviestream_landing, und ändern Sie das Asset in landing bzw. gold.

      Vor Änderung:

      nach Änderung:

    2. Führen Sie eine weitere Synchronisierung aus.