Abfrage externer Daten mit AWS Glue Data Catalog

Autonomous Database unterstützt ein System zur Synchronisierung mit einer Amazon AWS Glue Data Catalog-Instanz.

Abfragen mit AWS Glue Data Catalog

Mit Autonomous Database können Sie die Synchronisierung mit den Glue Data Catalog-Metadaten von Amazon Web Service (AWS) durchführen. Eine externe Datenbanktabelle wird automatisch von Autonomous Database für jede Tabelle erstellt, für die AWS Glue ein Harvesting für in Amazon Simple Storage Service gespeicherte Daten ausführt (S3). Benutzer können in S3 gespeicherte Daten aus Autonomous Database abfragen, ohne das Schema für die externen Datenquellen manuell ableiten und externe Tabellen erstellen zu müssen.

Amazon AWS Glue Data Catalog ist ein zentralisierter Metadatenverwaltungsservice, mit dem Datenexperten Daten erkennen und Data Governance in der AWS-Cloud unterstützen können. Eine Autonomous Database-Instanz kann Metadaten des Datenkatalogs automatisch mit AWS Glue Data Catalog synchronisieren, sodass Datenbankbenutzer Autonomous Database sofort verwenden können, um in der AWS-Cloud gespeicherte Daten abzufragen.

Die Synchronisierung mit AWS Glue Data Catalog hat dieselben Eigenschaften wie die Synchronisierung mit OCI Data Catalog. Die Synchronisierung ist dynamisch, da die Datenbank in Bezug auf Änderungen an den zugrunde liegenden Daten immer auf dem neuesten Stand ist. Dadurch werden die Administrationskosten gesenkt, da Hunderte bis Tausende von Tabellen automatisch verwaltet werden.

Konzepte zur Abfrage mit AWS Glue Data Catalog

Für die Abfrage mit Amazon Web Service (AWS) Glue-Datenkatalogen ist ein Verständnis der folgenden Konzepte erforderlich.

AWS Glue-Datenkatalog: Datenbank

Eine AWS Glue-Datenbank stellt eine Sammlung relationaler Tabellendefinitionen dar, die in einer logischen Gruppe organisiert sind. Jede AWS Glue-Datenkataloginstanz verwaltet mehrere Datenbanken.

AWS Glue-Datenkatalog: Tabelle

Eine AWS Glue-Tabelle stellt eine relationale Tabelle über Daten dar, die in der AWS-Cloud gespeichert sind. Eine AWS Glue-Tabelle definiert das Schema der zugrunde liegenden Daten und besteht aus Spalteninformationen, Partitionsinformationen, Serialisierungsinformationen, Speicherinformationen, Statistiken, benutzerdefinierten Metadaten und anderen Metadaten. Tabellen im AWS Glue-Datenkatalog können manuell oder automatisch mit einem AWS Glue-Crawler erstellt werden.

Datenkatalog glue: Crawler

Mit einem Crawler können Sie den AWS Glue-Datenkatalog mit Tabellen füllen. Dies ist die primäre Methode, die von den meisten AWS Glue-Benutzern verwendet wird. Ein Crawler kann mehrere Datenspeicher in einem Durchlauf crawlen. Nach Abschluss erstellt oder aktualisiert der Crawler eine oder mehrere Tabellen im Datenkatalog. Extrahieren, Transformieren und Laden (ETL) von Jobs, die Sie in AWS Glue definieren, verwenden diese Datenkatalogtabellen als Quellen und Ziele. Der ETL-Job liest aus und schreibt in die Datenspeicher, die in den Quell- und Zieldatenkatalogtabellen angegeben sind.

AWS Glue-Tabellen können vom Benutzer manuell oder automatisch mit einem vordefinierten oder benutzerdefinierten Crawler erstellt werden. Crawler stellen eine Verbindung zu den zugrunde liegenden Datenspeichern her (z.B. Amazon S3), rufen Classifier zum Ableiten des Schemas der Daten auf und erstellen AWS Glue-Tabellen zum Speichern der abgeleiteten Metadaten. AWS Glue bietet Klassifikatoren für gängige Dateitypen wie CSV, JSON, Parquet und AVRO.

Zuordnung zwischen Autonomous Database und AWS Glue

Während des Synchronisierungsprozesses werden externe Tabellen in Autonomous Database erstellt, die aus den AWS Glue Data Catalog-Datenbanken und -Tabellen über Amazon S3 abgeleitet werden.

AWS Glue organisiert gesammelte Metadaten in Datenbanken und Tabellen. Eine AWS Glue-Datenbank ist eine Sammlung relationaler Tabellendefinitionen. AWS Glue-Tabellen, die das allgemeine Schema und die Eigenschaften der mit der Tabelle verknüpften Dateien beschreiben.

AWS Glue folgt dem relationalen Modell zur Darstellung von Attributen. Für das Zuordnen von hierarchischen Schemas zu relationalen Schemas fügt AWS Glue das Schema der halbstrukturierten Daten hinzu und vereinfacht die Daten mithilfe eines ETL-Prozesses in ein relationales Schema.

Die folgende Tabelle stellt die Zuordnung zwischen OCI Data Catalog-Konzepten und AWS Glue Data Catalog-Konzepten dar.

Tabelle 3-5: Zuordnung von OCI Data Catalog zu AWS Glue Data Catalog

OCI Data Catalog AWS Glue-Datenkatalog Oracle Database
Datenasset Datenbank Schema
Ordner (Bucket) Schema
Logische Entity Tab. Tab.

Benutzerworkflow für Abfragen mit AWS Glue Data Catalog

Der grundlegende Benutzerworkflow für die Abfrage von AWS S3-Daten mit AWS Glue Data Catalog umfasst die Verbindung zum AWS Glue Data Catalog, die Synchronisierung mit Autonomous Database, um automatisch externe Tabellen zu erstellen, und die Abfrage der S3-Daten.

Der Database Data Catalog-Administrator erstellt eine Verbindung zwischen der Autonomous Database-Instanz und einer AWS Glue Data Catalog-Instanz. Anschließend wird eine Synchronisierung zwischen AWS Glue Data Catalog und Autonomous Database konfiguriert und ausgeführt. Autonomous Database erstellt automatisch eine externe Tabelle für Tabellen, für die AWS Glue Harvesting für in S3 gespeicherte Daten ausführt.

Der Database Data Catalog-Abfrageadministrator oder Datenbankadministrator erteilt READ-Zugriff auf die generierten externen Tabellen, sodass Datenanalysten und andere Datenbankbenutzer Autonomous Database durchsuchen und abfragen können, ohne das Schema für die externen Datenquellen manuell ableiten und externe Tabellen erstellen zu müssen.

Benutzer

In der folgenden Tabelle werden die verschiedenen Benutzertypen beschrieben, die Benutzerworkflowaktionen ausführen.

User Beschreibung
Datenbankdatenkatalogadministrator Datenbankbenutzer mit der Rolle DCAT_SYNC.
Datenbankdatenkatalog - Abfrageadministrator Datenbankbenutzer, der anderen Benutzern Zugriff auf automatisch erstellte externe Tabellen erteilen kann.
Datenanalyst Datenbankbenutzer in Autonomous Database, der Daten in AWS S3 abfragt, indem er automatisch erstellte externe Tabellen abfragt oder direkt mit AWS Glue Data Catalog interagiert.

AWS Glue Data Catalog-Benutzer

AWS-Benutzer mit Zugriff auf einen AWS Glue-Datenkatalog.

AWS S3 Object Storage-Benutzer

AWS-Benutzer mit Zugriff auf Daten, die in AWS gespeichert sind S3

Benutzerworkflow

In der folgenden Tabelle wird jede Aktion beschrieben, die im Workflow enthalten ist, und welcher Benutzertyp die Aktion ausführen kann.

Hinweis

Das Package DBMS_DCAT ist für die Ausführung der Aufgaben verfügbar, die zum Abfragen des AWS S3-Objektspeichers mit AWS Glue Data Catalog erforderlich sind. Siehe DBMS_DCAT-Paket.
Maßnahme Benutzer Beschreibung
Policys erstellen Datenbankdatenkatalogadministrator

Die Autonomous Database-Benutzerzugangsdaten müssen über die entsprechenden Berechtigungen für den Zugriff auf AWS Glue Data Catalog und das Lesen aus dem S3-Objektspeicher verfügen.

Weitere Informationen: Erforderliche Zugangsdaten und IAM-Policys.

Zugangsdaten erstellen Datenbankdatenkatalogadministrator
Stellen Sie sicher, dass Datenbankzugangsdaten vorhanden sind, um auf AWS Glue Data Catalog zuzugreifen und den S3-Objektspeicher abzufragen. Der Benutzer ruft DBMS_CLOUD.CREATE_CREDENTIAL auf, um Benutzerzugangsdaten zu erstellen.
Hinweis

Nur Amazon Web Services-(AWS-)Zugangsdaten werden unterstützt. Zugangsdaten für AWS-Amazon-Ressourcennamen (ARN) werden nicht unterstützt.

Weitere Informationen: Prozedur DBMS_CLOUD CREATE_CREDENTIAL

Verbindung herstellen

Datenbankdatenkatalogadministrator

Stellen Sie eine Verbindung zwischen einer Autonomous Database-Instanz und einer AWS Glue Data Catalog-Instanz her. Die Verbindung verwendet die Berechtigungen des AWS Glue Data Catalog-Benutzers. Verbindungen von einer Autonomous Database-Instanz zu mehreren AWS Glue Data Catalog-Instanzen werden unterstützt.

So initiieren Sie eine Verbindung zwischen einer Autonomous Database-Instanz und einer AWS Glue Data Catalog-Instanz:
  1. Ruft DBMS_DCAT.SET_DATA_CATALOG_CREDENTIAL mit AWS-Zugangsdaten (Prozedur CREATE_CREDENTIAL) auf, um die AWS Glue Data Catalog-Zielinstanz anzugeben.
  2. Ruft DBMS_DCAT.SET_OBJECT_STORE_CREDENTIAL mit AWS-Zugangsdaten (Prozedur CREATE_CREDENTIAL) auf, um auf den AWS-Objektspeicher S3 zuzugreifen.
  3. Ruft DBMS_DCAT.SET_DATA_CATALOG_CONN mit einem AWS Glue-Serviceendpunkt auf

Nachdem die Verbindung hergestellt wurde, speichert Autonomous Database die zugehörigen Metadaten, wie AWS Glue-Katalog-ID, Region, Endpunkt und Zugangsdatenobjekte.

Weitere Informationen: SET_DATA_CATALOG_CONN-Prozedur, UNSET_DATA_CATALOG_CONN-Prozedur, SET_DATA_CATALOG_CREDENTIAL-Prozedur, SET_OBJECT_STORE_CREDENTIAL-Prozedur.

synchronisieren

Datenbankdatenkatalogadministrator

Der Benutzer kann manuell eine Synchronisierung mit verbundenen AWS Glue-Datenkatalogen mit DBMS_DCAT.RUN_SYNC starten oder automatische Synchronisierungen mit DBMS_DCAT.CREATE_SYNC_JOB erstellen.

Die Synchronisierung führt Folgendes aus:
  • Erstellt externe Tabellen in Autonomous Database, die aus dem verbundenen AWS Glue Data Catalog abgeleitet werden.
  • Ermöglicht Benutzern die Vorschau von Metadaten für AWS Glue-Datenbanken und -Tabellen.
  • Ändert oder löscht vorhandene synchronisierte externe Tabellen, wenn AWS Glue-Metadaten geändert wurden.
Weitere Informationen finden Sie unter: Prozedur RUN_SYNC, Prozedur CREATE_SYNC_JOB, Prozedur DROP_SYNC_JOB, Synchronisierungszuordnung.

Synchronisierung überwachen

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 zu den Mappings 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-Berechtigungen für generierte externe Tabellen erteilen. So können Datenanalysten die generierten externen Tabellen abrufen.

Abfrage

Datenanalyst

Datenanalysten können die synchronisierten Schemas und Tabellen in den GLUE$*-Schemas prüfen und die externen Tabellen mit jedem Tool oder jeder Anwendung abfragen, die Oracle SQL unterstützt.

Der Zugriff auf Daten in S3 erfolgt mit den Berechtigungen des AWS-Objektspeicherbenutzers S3.

Weitere Informationen: Beispiel: Abfrage mit AWS Glue-Datenkatalog

Verbindungen 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 des verbundenen AWS Glue Data Catalog und der externen Tabellen, die aus dem Katalog abgeleitet werden, nicht mehr planen. Mit dieser Aktion werden AWS Glue Data Catalog-Metadaten gelöscht, und synchronisierte externe Tabellen werden aus der Autonomous Database-Instanz gelöscht.

Weitere Informationen: UNSET_DATA_CATALOG_CONN-Prozedur

Beispiel: Abfrage mit AWS Glue Data Catalog

Dieses Beispiel führt Sie durch den Prozess der Ausführung von Abfragen über Datasets, die in Amazon Simple Storage Service (Amazon S3) mit einem AWS Glue-Datenkatalog gespeichert sind.

In diesem Beispiel werden Metadaten in einem AWS Glue Data Catalog geprüft, um zu sehen, welche Amazon S3-Objekte zuvor gecrawlt wurden und im Datenkatalog vorhanden sind. Autonomous Database wird dann mit dem AWS Glue Data Catalog und Amazon S3 verknüpft. Der Datenkatalog wird mit Autonomous Database synchronisiert, um externe Tabellen über die in Amazon S3 gespeicherten Datasets zu erstellen. Mit den externen Tabellen werden die Datasets in Amazon S3 abgefragt.

  1. Prüfen Sie Metadaten im AWS Glue-Datenkatalog.
    1. Starten Sie die AWS Glue-Konsole.Beschreibung von glue_console.png folgt
      Beschreibung der Abbildung glue_console.png
    2. Navigieren Sie zum Datenkatalog, zu Datenbanken und Tabellen, um vorhandene Objekte zu suchen.

      In diesem Beispiel sind einige Objekte in Amazon S3 vorhanden, für die AWS Glue zuvor Tabellen gecrawlt und erstellt hat, wie unten dargestellt:

      Beschreibung von glue_tables.png folgt
      Beschreibung der Abbildung glue_tables.png
  2. Verknüpfen Sie AWS Glue mit Autonomous Database.
    1. Erstellen Sie Zugangsdaten in Autonomous Database.

      Der folgende Prozeduraufruf umfasst die Zugriffs-ID und den Secret Key, um Autonomous Database Zugriff auf die zugrunde liegenden Daten in Amazon S3 zu ermöglichen.

      exec dbms_cloud.create_credential('CRED_AWS','<access id>', '<access key>');

    2. Verknüpfen Sie die Zugangsdaten mit dem AWS Glue Data Catalog und dem Amazon S3-Objektspeicher.
      Diese Prozeduraufrufe verknüpfen den Datenkatalog bzw. den Objektspeicher mit den Zugangsdaten.
      exec dbms_dcat.set_data_catalog_credential('CRED_AWS');
      exec dbms_dcat.set_object_store_credential('CRED_AWS');

    3. Richten Sie eine AWS-Region ein, in der Glue ausgeführt wird.
      exec dbms_dcat.set_data_catalog_conn(region => 'us-west-2', catalog_type=>'AWS_GLUE');
  3. Synchronisieren Sie Metadaten, um externe Tabellen in Autonomous Database zu erstellen, die aus AWS Glue-Datenbanken und -Tabellen abgeleitet werden.
    1. Nachdem die Verknüpfung abgeschlossen ist, finden Sie in der Ansicht all_glue_databases, welche Datenbanken sich in einem AWS Glue-Datenkatalog befinden.
      select * from all_glue_databases order by name;

    2. Verwenden Sie die View all_glue_tables, um eine Liste der Tabellen abzurufen, die für die Synchronisierung verfügbar sind.
      select * from all_glue_tables order by database_name, name;

      Beschreibung von glue_table_list.png folgt
      Beschreibung der Abbildung glue_table_list.png

    3. Synchronisieren Sie Autonomous Database mit zwei Tabellen, store und item, die in der Datenbank parq enthalten sind.
          begin
          dbms_dcat.run_sync(
              synced_objects => '
                  {
                      "database_list": [
                          {
                          "database": "parq",
                          "table_list": ["store","item"]
                          }
                       ]
                   }',
          error_semantics => 'STOP_ON_ERROR');
          end;
          /

  4. Untersuchen Sie neue Objekte in Autonomous Database, und führen Sie eine Abfrage über S3 aus.
    1. Zeigen Sie mit SQL Developer neue Objekte an, die durch den vorherigen Synchronisierungsvorgang erstellt wurden.

      Das GLUE$PARQ_TPCDS_ORACLE_PARQ-Schema wurde automatisch vom Prozeduraufruf dbms_dcat.run_sync generiert und benannt.

      Beschreibung von glue_sql_dev.png folgt
      Beschreibung der Abbildung glue_sql_dev.png

    2. Führen Sie eine SQL-Abfrage über Datensetspeicher in Amazon S3 aus.
      SELECT * FROM glue$parq_tpcds_oracle_parq.store;