Externe Daten mit AWS Glue Data Catalog abfragen

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

Informationen zum Abfragen mit AWS Glue Data Catalog

Mit Autonomous Database können Sie mit Amazon Web Service-(AWS-)Glue Data Catalog-Metadaten synchronisieren. Eine externe Datenbanktabelle wird automatisch von Autonomous Database für jede Tabelle erstellt, die von AWS Glue über in Amazon Simple Storage Service (S3) gespeicherte Daten erfasst wird. 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 automatisch Datenkatalogmetadaten mit AWS Glue Data Catalog synchronisieren, sodass Datenbankbenutzer Daten, die in der AWS-Cloud gespeichert sind, sofort mit Autonomous Database abfragen können.

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

Konzepte für die Abfrage mit AWS Glue Data Catalog

Für Abfragen 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.

Glue Data Catalog: 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 einer einzelnen Ausführung crawlen. Nach Abschluss erstellt oder aktualisiert der Crawler eine oder mehrere Tabellen im Datenkatalog. ETL-(Extrahieren, Transformieren und Laden-)Jobs, die Sie in AWS Glue definieren, verwenden diese Datenkatalogtabellen als Quellen und Ziele. Der ETL-Job liest und schreibt in die Datenspeicher, die in den Quell- und Zieldatenkatalogtabellen angegeben sind.

AWS Glue-Tabellen können manuell vom Benutzer 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 auf, um das Schema der Daten abzuleiten, und erstellen AWS Glue-Tabellen zum Speichern der inferenzierten 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 Dateien beschreiben, die mit der Tabelle verknüpft sind.

AWS Glue folgt dem relationalen Modell zur Darstellung von Attributen. Um hierarchische Schemas relationalen Schemas zuzuordnen, leitet AWS Glue das Schema der halbstrukturierten Daten ab und vereinfacht die Daten mithilfe eines ETL-Prozesses auf 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 Tabelle Tabelle

Benutzerworkflow für die Abfrage mit AWS Glue Data Catalog

Der grundlegende Benutzerworkflow für die Abfrage von AWS S3-Daten mit AWS Glue Data Catalog umfasst die Verbindung zu 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 konfiguriert und führt er eine Synchronisierung (Sync) zwischen dem AWS Glue Data Catalog und Autonomous Database aus. Autonomous Database erstellt automatisch eine externe Tabelle für Tabellen, die von AWS Glue über in S3 gespeicherte Daten erstellt wurden.

Der Administrator der Datenbankdatenkatalogabfrage oder der 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.

Benutzer Beschreibung
Datenbank-Data Catalog-Administrator Datenbankbenutzer mit der Rolle DCAT_SYNC.
Datenbankdatenkatalog - Abfrageadministrator Datenbankbenutzer können anderen Benutzern Zugriff auf automatisch erstellte externe Tabellen erteilen.
Datenanalyst Datenbankbenutzer auf Autonomous Database, der Daten in AWS S3 abfragt, entweder durch Abfragen automatisch erstellter externer Tabellen oder durch direkte Interaktion mit AWS Glue Data Catalog.

AWS Glue-Datenkatalogbenutzer

AWS-Benutzer mit Zugriff auf einen AWS Glue Data Catalog.

AWS S3 Object Storage-Benutzer

AWS-Benutzer mit Zugriff auf in AWS S3 gespeicherte Daten

Benutzerworkflow

In der folgenden Tabelle werden die einzelnen Aktionen im Workflow und der Typ des Benutzers beschrieben, der die Aktion ausführen kann.

Hinweis

Das DBMS_DCAT-Package 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 Package.
Aktion Wer ist der Benutzer Beschreibung
Policys erstellen Datenbank-Data Catalog-Administrator

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

Weitere Informationen: Erforderliche Zugangsdaten und IAM-Policys.

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

Nur Amazon Web Services-(AWS-)Zugangsdaten werden unterstützt. AWS Amazon Resource Names-(ARN-)Zugangsdaten werden nicht unterstützt.

Weitere Informationen: Prozedur DBMS_CLOUD CREATE_CREDENTIAL

Verbinden

Datenbank-Data Catalog-Administrator

Herstellen einer Verbindung zwischen einer Autonomous Database-Instanz und einer AWS Glue Data Catalog-Instanz. 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 starten 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 (CREATE_CREDENTIAL-Prozedur) auf, um die AWS Glue Data Catalog-Zielinstanz anzugeben.
  2. Ruft die DBMS_DCAT.SET_OBJECT_STORE_CREDENTIAL mit AWS-Zugangsdaten (CREATE_CREDENTIAL-Prozedur) auf, um auf den AWS S3-Objektspeicher 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 die AWS Glue-Katalog-ID, die Region, den Endpunkt und die Zugangsdatenobjekte.

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

Synchronisieren

Datenbank-Data Catalog-Administrator

Der Benutzer kann eine Synchronisierung mit verbundenen AWS Glue Data Catalogs mit DBMS_DCAT.RUN_SYNC manuell 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: Siehe Prozedur RUN_SYNC, Prozedur CREATE_SYNC_JOB, Prozedur DROP_SYNC_JOB, Synchronisierungszuordnung

Synchronisierung ü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 Mappings 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-Berechtigungen für generierte externe Tabellen erteilen. Dadurch können die Datenanalysten die generierten externen Tabellen abfragen.

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, das Oracle SQL unterstützt.

Der Zugriff auf Daten in S3 erfolgt über die Berechtigungen des AWS-Objektspeicherbenutzers S3.

Weitere Informationen: Beispiel: Abfrage mit AWS Glue Data Catalog

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

Weitere Informationen: Prozedur UNSET_DATA_CATALOG_CONN

Beispiel: Abfrage mit AWS Glue Data Catalog

In diesem Beispiel werden Abfragen über Datasets ausgeführt, die in Amazon Simple Storage Service (Amazon S3) mit einem AWS Glue Data Catalog 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. Die externen Tabellen werden zur Abfrage der Datasets in Amazon S3 verwendet.

  1. Prüfen Sie Metadaten im AWS Glue Data Catalog.
    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 gezeigt:

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

      Der folgende Prozeduraufruf enthält die Zugriffs-ID und den Secret Key, um Autonomous Database Zugriff auf die zugrunde liegenden Daten in Amazon S3 zu erteilen.

      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. Einrichten einer AWS-Region, 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 von AWS Glue-Datenbanken und -Tabellen abgeleitet werden.
    1. Nachdem die Verknüpfung abgeschlossen ist, suchen Sie in der Ansicht all_glue_databases, welche Datenbanken sich in einem AWS Glue Data Catalog befinden.
      select * from all_glue_databases order by name;

    2. Mit der Ansicht all_glue_tables können Sie eine Liste der Tabellen abrufen, 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. Prüfen Sie neue Objekte in Autonomous Database, und führen Sie eine Abfrage über S3 aus.
    1. Mit SQL Developer können Sie neue Objekte anzeigen, die durch den vorherigen Synchronisierungsvorgang erstellt wurden.

      Das Schema GLUE$PARQ_TPCDS_ORACLE_PARQ wurde automatisch durch den Prozeduraufruf dbms_dcat.run_sync generiert und benannt.

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

    2. SQL-Abfrage über Datasetspeicher in Amazon S3 ausführen
      SELECT * FROM glue$parq_tpcds_oracle_parq.store;