Externe Daten mit Data Catalog abfragen

Oracle Cloud Infrastructure Data Catalog ist der Metadatenverwaltungsservice für Oracle Cloud, mit dem Sie Daten ermitteln und Data Governance unterstützen können. Es bietet eine Bestandsaufnahme von 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 den Data Lake manuell zu definieren, verwenden Sie die externen Tabellen, die automatisch definiert und verwaltet werden. Diese Tabellen werden in geschützten Autonomous Database-Schemas gefunden, die mit Änderungen im Data Catalog auf dem neuesten Stand gehalten werden.

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

Informationen zum Abfragen mit Data Catalog

Durch die Synchronisierung mit Data Catalog-Metadaten erstellt Autonomous Database automatisch externe Tabellen für jede logische Entity, die von Data Catalog durch Harvesting erstellt wird. Diese externen Tabellen werden in Datenbankschemas definiert, die vollständig vom Metadatensynchronisierungsprozess 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 und hält die Autonomous Database in Bezug auf Änderungen an den zugrunde liegenden Daten auf dem neuesten Stand. Dadurch werden die Administrationskosten gesenkt, da Hunderte bis Tausende von Tabellen automatisch verwaltet werden. Darüber hinaus können mehrere Autonomous Database-Instanzen denselben Datenkatalog verwenden, wodurch die Verwaltungskosten weiter gesenkt und ein gemeinsames Set von Geschäftsdefinitionen bereitgestellt werden.

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

  • Ordner/Buckets werden Datenbankschemas zugeordnet, die nur zu organisatorischen Zwecken dienen.
  • Die Organisation soll mit dem Data Lake konsistent sein und Verwirrung beim Zugriff auf Daten über verschiedene Pfade minimieren.
  • Data Catalog ist die Quelle der Wahrheit für die Tabellen, die in Schemas enthalten sind. Im Data Catalog vorgenommene Änderungen 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 aus, welche Datenassets und logischen Entitys synchronisiert werden sollen, und führt die Synchronisierung aus. Der Synchronisierungsprozess erstellt Schemas und externe Tabellen basierend auf den ausgewählten Datenassets und logischen Entitys für das Harvesting in Data Catalog. Sobald die externen Tabellen erstellt sind, können Data Analysts mit der Abfrage ihrer Daten beginnen, ohne das Schema für externe Datenquellen manuell ableiten und externe Tabellen erstellen zu müssen.

Hinweis

Das DBMS_DCAT-Package ist für die Ausführung der Aufgaben verfügbar, die zum Abfragen von Datenassets für den Data Catalog-Objektspeicher erforderlich sind. Siehe DBMS_DCAT Package.

Konzepte für die Abfrage mit Data Catalog

Die folgenden Konzepte sind für Abfragen mit Data Catalog erforderlich.

Data Catalog

Data Catalog sammelt Datenassets, die auf die Objektspeicherdatenquellen verweisen, die Sie mit Autonomous Database abfragen möchten. In Data Catalog können Sie angeben, wie die Daten beim Harvesting organisiert werden, wobei verschiedene Dateiorganisationsmuster unterstützt werden. Im Rahmen des Data Catalog-Harvesting-Prozesses können Sie die Buckets und Dateien auswählen, die Sie im Asset verwalten möchten. Weitere Informationen finden Sie unter Data Catalog - Überblick.

Objektspeicher

Objektspeicher haben Buckets, die eine Vielzahl von Objekten 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 Entwurfsmuster für die darin enthaltenen Objekte. Es gibt viele verschiedene Möglichkeiten, Daten zu strukturieren, und viele verschiedene Möglichkeiten, diese Muster zu interpretieren.

Beispiel: Ein typisches Entwurfsmuster verwendet Ordner der obersten Ebene, die Tabellen darstellen. Dateien in einem bestimmten Ordner verwenden dasselbe Schema und enthalten Daten für diese Tabelle. Unterordner werden häufig zur Darstellung von Tabellenpartitionen verwendet (z.B. ein Unterordner für jeden Tag). Data Catalog bezieht sich auf jeden Ordner der obersten Ebene als logische Entity, und diese logische Entity wird einer externen Autonomous Database-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 Data Catalog-Assets verfügen, für die ein Harvesting aus dem Objektspeicher ausgeführt wurde.

Harvesting

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

Datenasset

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

Datenentity

Eine Datenentity in Data Catalog ist eine Sammlung von Daten, wie eine Datenbanktabellen oder -View oder eine einzelne Datei. Im Allgemeinen enthält sie viele Attribute, die ihre Daten beschreiben.

Logische Entity

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

Eine logische Data Catalog-Entity ist eine Gruppe von Object Storage-Dateien, die beim Harvesting abgeleitet werden, indem Dateinamensmuster angewendet 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 mit demselben Schema und Typ. Sie müssen sich beim Data Catalog registrieren, wie Ihre Daten organisiert sind. Dateinamensmuster werden verwendet, um zu identifizieren, wie Ihre Daten organisiert sind. In Data Catalog können Sie Dateinamensmuster mit regulären Ausdrücken definieren. Wenn Data Catalog ein Datenasset mit einem zugewiesenen Dateinamensmuster erstellt, werden logische Entitys basierend auf dem Dateinamensmuster erstellt. Durch das Definieren und Zuweisen dieser Muster zu Datenassets können mehrere Dateien als logische Entitys basierend auf dem Dateinamensmuster gruppiert werden.

Synchronisieren (synchronisieren)

Autonomous Database führt Synchronisierungen mit Data Catalog durch, um die Datenbank automatisch hinsichtlich Änderungen an den zugrunde liegenden Daten 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 Data Catalog-Datenassets und logischen Entitys. Diese Schemas sind geschützt, d.h. ihre Metadaten werden von Data Catalog verwaltet. Wenn Sie die Metadaten ändern möchten, müssen Sie die Änderungen in Data Catalog vornehmen. Die Autonomous Database-Schemas spiegeln alle Änderungen nach der nächsten Synchronisierung wider. Weitere Informationen finden Sie unter Synchronisierungszuordnung.

Synchronisierungszuordnung

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

Datenkatalog Autonomous Database Mappingbeschreibung

Datenasset und Ordner (Objektspeicher-Bucket)

Schemaname

Standardwerte:

Der generierte Schemaname in Autonomous Database hat standardmäßig 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 Data Catalog-Ordnername. Dieser Ordner ist einem Objektspeicher-Bucket zugeordnet.

Anpassungen:

Die Standardnamen data-asset-name und folder-name können angepasst werden, indem benutzerdefinierte Eigenschaften, Geschäftsnamen und Anzeigenamen definiert werden, um diese Standardnamen außer Kraft zu setzen.
  • data-asset-name kann überschrieben werden, indem die benutzerdefinierte Eigenschaft oracle-db-schema-prefix für das Datenasset in Data Catalog definiert wird.
  • folder-name kann überschrieben werden, indem die benutzerdefinierte Eigenschaft oracle-db-schema für den Ordner in Data Catalog, einen Geschäftsnamen oder einen Anzeigenamen definiert wird. Die folgenden Attribute werden in der Prioritätsreihenfolge zum Generieren der folder-name verwendet:
    1. Benutzerdefinierte Eigenschaft oracle-db-schema
    2. Geschäftsname
    3. Anzeigename

Beispiele:

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

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

Der Name der externen Tabelle wird vom 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 in Schema DCAT$ENTITYSCHEMA erstellt.

Attribute der logischen Entity Spalten für externe Tabelle

Spaltennamen: Die Spaltennamen der externen Tabelle werden von den Attributanzeigenamen 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 der Prioritätsreihenfolge 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 wird, müssen Sie die oracle-db-column-type des entsprechenden Attributs in Data Catalog festlegen.

Spaltenlänge: Die benutzerdefinierte Eigenschaft oracle-db-column-length überschreibt die Standardspaltenlänge für ein Zeichenfolgenfeld, das von Data Catalog abgeleitet wurde.

Spaltengenauigkeit: Die benutzerdefinierte Eigenschaft oracle-db-column-precision überschreibt die Standardgenauigkeit für eine Zahl, 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 wird, müssen Sie die oracle-db-column-precision des entsprechenden Attributs in Data Catalog festlegen.

Spaltenmaßstab: Die benutzerdefinierte Eigenschaft oracle-db-column-scale überschreibt die Standardskalierung für eine Zahl, die von Data Catalog abgeleitet wurde.

Typischer Workflow mit Data Catalog

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

Der Datenbankdatenkatalogadministrator erstellt eine Verbindung zwischen der Autonomous Database-Instanz und einer Data Catalog-Instanz. Anschließend konfiguriert und führt er eine Synchronisierung (Synchronisierung) zwischen dem Data Catalog und Autonomous Database aus. Die Synchronisierung erstellt externe Tabellen und Schemas in der Autonomous Database-Instanz basierend auf dem synchronisierten Data Catalog-Inhalt.

Der Administrator der Datenbankdatenkatalogabfrage oder der 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 die einzelnen Aktionen ausführlich beschrieben. Eine Beschreibung der verschiedenen Benutzertypen in dieser Tabelle finden Sie unter Data Catalog-Benutzer und -Rollen.

Hinweis

Das DBMS_DCAT-Package ist für die Ausführung der Aufgaben verfügbar, die zum Abfragen von Datenassets für den Data Catalog-Objektspeicher erforderlich sind. Siehe DBMS_DCAT Package.
Aktion Wer ist der Benutzer Beschreibung

Policys erstellen

Datenbank-Data Catalog-Administrator

Der Autonomous Database-Resource Principal oder die Zugangsdaten des Autonomous Database-Benutzers 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

Datenbank-Data Catalog-Administrator

Stellen Sie sicher, dass Datenbankzugangsdaten für den Zugriff auf Data Catalog und für die Abfrage des Objektspeichers vorhanden sind. 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

Datenbank-Data Catalog-Administrator

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 Datenbankzugangsdatenobjekt mit ausreichenden Oracle Cloud Infrastructure-(OCI-)Berechtigungen verwenden. Beispiel: Sie können das Resource Principal-Servicetoken für die Autonomous Database-Instanz oder einen OCI-Benutzer mit ausreichenden Berechtigungen verwenden.

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

Weitere Informationen: Prozedur SET_DATA_CATALOG_CONN, Prozedur UNSET_DATA_CATALOG_CONN.

Selektive Synchronisierung erstellen

Datenbank-Data Catalog-Administrator

Erstellen Sie einen Synchronisierungsjob, indem Sie die zu synchronisierenden Data Catalog-Objekte auswählen. Der Benutzer kann:
  • Wählen Sie Datenassets/Ordner für die Synchronisierung aus.
  • Wählen Sie einzelne logische Entitys zum Synchronisieren aus.
  • Zeigen Sie vor der Synchronisierung eine Vorschau der resultierenden externen Tabellen an.
  • Ändern Sie externe Tabellen (z.B. den Namen), indem Sie benutzerdefinierte Eigenschaften in Data Catalog ändern.

Weitere Informationen: Siehe Prozedur CREATE_SYNC_JOB, Prozedur DROP_SYNC_JOB, Synchronisierungszuordnung

Mit Datenkatalog synchronisieren

Datenbank-Data Catalog-Administrator

Der Benutzer initiiert einen Synchronisierungsvorgang. Die Synchronisierung wird manuell über den Prozeduraufruf DBMS_DCAT.RUN_SYNC oder automatisch als Teil eines geplanten Synchronisierungsjobs initiiert.

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

Weitere Informationen: Siehe Prozedur RUN_SYNC, Prozedur CREATE_SYNC_JOB, Synchronisierungszuordnung

Synchronisierungs- und Anzeigeprotokolle überwachen

Datenbank-Data Catalog-Administrator

Der Benutzer kann den Synchronisierungsstatus anzeigen, indem er die Ansicht USER_LOAD_OPERATIONS abfragt. Nachdem der Synchronisierungsprozess abgeschlossen ist, kann der Benutzer ein Log der Synchronisierungsergebnisse anzeigen, einschließlich Details zu den Zuordnungen logischer Entitys zu externen Tabellen.

Weitere Informationen: Ladevorgänge überwachen und Fehler beheben

Berechtigungen erteilen

Database Data Catalog-Abfrageadministrator, Datenbankadministrator

Der Data Catalog-Abfrageadministrator oder Datenbankadministrator der Datenbank muss Benutzern von Datenanalysten READ für generierte externe Tabellen erteilen. Dadurch können die Datenanalysten die generierten externen Tabellen abfragen.

Externe Tabellen durchsuchen und abfragen

Datenanalyst

Datenanalysten können die externen Tabellen über jedes Tool oder jede Anwendung abfragen, die Oracle SQL unterstützt.

Datenanalysten 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

Datenbank-Data Catalog-Administrator

Um eine vorhandene Data Catalog-Verknü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 Datenkatalogmetadaten 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: Prozedur UNSET_DATA_CATALOG_CONN

Beispiel: Szenario MovieStream

In diesem Szenario erfasst Moviestream Daten in einer Landing Zone im Objektspeicher. Ein Großteil dieser Daten, aber nicht unbedingt alle, wird dann für die Bereitstellung einer Autonomous Database verwendet. Vor der Zuführung von 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 gemeinsam verwendet, sodass Autonomous Database-Benutzer diese Datenquellen mit Oracle SQL abfragen können. Diese Daten können in Autonomous Database geladen oder mithilfe externer Tabellen dynamisch 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 im Objektspeicher.
      Beispiel: Im Folgenden werden die Landing-Buckets (moviestream_landing) und die Goldzone-Buckets (moviestream_gold) im Objektspeicher aufgeführt:
    2. Prüfen Sie die Ordner und Dateien in den Objektspeicher-Buckets.
      Beispiel: Im Folgenden werden die Ordner im Landing Bucket (moviestream_landing) im Objektspeicher aufgeführt:
  2. Data Catalog - Dateinamensmuster erstellen
    1. Informieren Sie Data Catalog anhand von Dateinamensmustern, wie Ihre Daten organisiert sind. Dies sind reguläre Ausdrücke, mit denen Dateien kategorisiert 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 Dateinamensmustern finden Sie unter Harvesting von Object Storage-Dateien als logische Datenentitys ausführen.
      Hive-Stil Ordnerart
      {bucketName:.*}/{logicalEntity:[^/]+}.db/{logicalEntity:[^/]+}/.* {bucketName:[\w]+}/{logicalEntity:[^/]+}(?<!.db)/.*$
      • Erstellt logische Entitys für Quellen, die ".db" als ersten Teil des Objektnamens enthalten.
      • Um die Eindeutigkeit im Bucket sicherzustellen, lautet der resultierende Name (db-name).(Ordnername)
      • Erstellt eine logische Entity basierend auf dem Ordnernamen außerhalb der Root
      • Um eine Duplizierung mit Hive zu verhindern, werden Objektnamen übersprungen, die ".db" enthalten.
    2. Um Dateinamensmuster zu erstellen, navigieren Sie zur Registerkarte Dateinamensmuster für Ihren Datenkatalog, und klicken Sie auf Dateinamensmuster erstellen. Beispiel: Die Registerkarte Dateinamensmuster erstellen für den Datenkatalog moviestream lautet:
  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 Dateinamensmuster mit Ihrem Datenasset. Wählen Sie Dateinamensmuster zuweisen aus, prüfen Sie die gewünschten Muster, und klicken Sie auf Zuweisen.
      Beispiel: Hier sind die dem Datenasset phoenixObjStore zugewiesenen Muster:Beschreibung von assign_filename_patterns_v1.png folgt
      Beschreibung der Abbildung assign_filename_patterns_v1.png
  4. Datenkatalog - Harvesting für Daten aus Objektspeicher ausführen
    1. Harvesting für das Datenasset des Datenkatalogs ausführen. Wählen Sie die Objektspeicher-Buckets mit den Quelldaten aus.
      In diesem Beispiel werden die Buckets moviestream_gold und moviestream_landing aus dem Objektspeicher zum 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 wird die logische Entity customer-extension und ihre Attribute betrachtet.

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

      In unserem Beispiel möchten wir zwischen den verschiedenen Arten von Buckets und der Bedeutung ihres Inhalts unterscheiden:
      • Was ist eine Landezone?
      • Wie genau sind die Daten?
      • Wann wurde es zuletzt aktualisiert?
      • Definition einer logischen Entity oder ihres Attributs
  5. Autonomous Database - Mit Datenkatalog verbinden

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

    1. Bei Datenkatalog anmelden
      -- 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. Datenkatalog mit Autonomous Database synchronisieren. Hier werden alle Objektspeicherassets 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 für den Objektspeicher.
      -- Query the Data !
      select *from dcat$phoenixobjstore_moviestream_gold.genre
      ;
  6. Schemas für Objekte ändern

    Die Standardschemanamen sind ziemlich 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 Verkettung der beiden.

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

      Vor der Änderung:

      Nach der Änderung:

    2. Eine weitere Synchronisierung ausführen.

Beispiel: Partitioniertes Datenszenario

Dieses Szenario veranschaulicht, wie externe Tabellen in Autonomous Database erstellt werden, die auf logischen Data Catalog-Entitys basieren, die aus partitionierten Daten im Objektspeicher gewonnen wurden.

Das folgende Beispiel basiert auf Beispiel: Szenario MovieStream 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: Szenario MovieStream.

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 im Objektspeicher.
      Beispiel: Im Folgenden werden die Landing-Buckets (moviestream_landing) und die Goldzone-Buckets (moviestream_gold) im Objektspeicher aufgeführt:
    2. Prüfen Sie die Ordner und Dateien in den Objektspeicher-Buckets.
      Beispiel: Im Folgenden werden die Ordner im Landing Bucket (moviestream_landing) im Objektspeicher aufgeführt:
  2. Data Catalog - Dateinamensmuster erstellen
    1. Informieren Sie Data Catalog anhand von Dateinamensmustern, wie Ihre Daten organisiert sind. Hierbei handelt es sich um Ordnerpräfixe oder reguläre Ausdrücke, mit denen Dateien kategorisiert werden. Die Dateinamensmuster werden vom Data Catalog-Harvester verwendet, um logische Entitys abzuleiten. Wenn ein Ordnerpräfix angegeben wird, generiert der Data Catalog automatisch logische Entitys aus dem angegebenen Ordnerpräfix im Objektspeicher. Das folgende Dateinamensmuster wird für das Harvesting der Buckets im Beispiel MovieStream verwendet. Weitere Informationen zum Erstellen von Dateinamensmustern finden Sie unter Harvesting von 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 Dateinamensmuster zu erstellen, navigieren Sie zur Registerkarte Dateinamensmuster für Ihren Datenkatalog, und klicken Sie auf Dateinamensmuster erstellen. Beispiel: Die Registerkarte Dateinamensmuster erstellen für den Datenkatalog moviestream lautet:
  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 Dateinamensmuster mit Ihrem Datenasset. Wählen Sie Dateinamensmuster zuweisen aus, prüfen Sie die gewünschten Muster, und klicken Sie auf Zuweisen.
      Beispiel: Hier sind die dem Datenasset amsterdamObjStore zugewiesenen Muster:
  4. Datenkatalog - Harvesting für Daten aus Objektspeicher ausführen
    1. Harvesting für das Datenasset des Datenkatalogs ausführen. Wählen Sie die Objektspeicher-Buckets mit den Quelldaten aus.
      In diesem Beispiel werden die Buckets moviestream_gold und moviestream_landing aus dem Objektspeicher zum 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 wird die logische Entity sales_sample_parquet und ihre Attribute betrachtet. Beachten Sie, dass Data Catalog das Attribut month als partitioniert identifiziert hat.
  5. Autonomous Database - Mit Datenkatalog verbinden

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

    1. Bei Datenkatalog anmelden
      -- 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. Datenkatalog mit Autonomous Database synchronisieren. Hier werden alle Objektspeicherassets 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 für den 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 ziemlich 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 Verkettung der beiden.

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

      Vor der Änderung:

      Nach der Änderung:

    2. Eine weitere Synchronisierung ausführen.