Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

Mit Glue-Datenkatalogansichten arbeiten - Amazon EMR

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Mit Glue-Datenkatalogansichten arbeiten

Sie können Ansichten im AWS Glue Data Catalog für die Verwendung mit EMR Serverless erstellen und verwalten. Diese werden allgemein als AWS Glue Data Catalog-Ansichten bezeichnet. Diese Ansichten sind nützlich, da sie mehrere SQL-Abfrage-Engines unterstützen, sodass Sie über verschiedene AWS Dienste wie EMR Serverless und Amazon Redshift auf dieselbe Ansicht zugreifen können. Amazon Athena

Indem Sie eine Ansicht im Datenkatalog erstellen, können Sie mithilfe von Ressourcenzuweisungen und tagbasierten Zugriffskontrollen Zugriff AWS Lake Formation darauf gewähren. Mit dieser Methode der Zugriffskontrolle müssen Sie keinen zusätzlichen Zugriff auf die Tabellen konfigurieren, auf die Sie beim Erstellen der Ansicht verwiesen haben. Diese Methode zur Erteilung von Berechtigungen wird Definer-Semantik genannt, und diese Ansichten werden Defineransichten genannt. Weitere Informationen zur Zugriffskontrolle in Lake Formation finden Sie unter Gewähren und Widerrufen von Berechtigungen für Datenkatalogressourcen im AWS Lake Formation Developer Guide.

Datenkatalogansichten sind für die folgenden Anwendungsfälle nützlich:

  • Granulare Zugriffskontrolle — Sie können eine Ansicht erstellen, die den Datenzugriff auf der Grundlage der vom Benutzer benötigten Berechtigungen einschränkt. Mithilfe von Ansichten im Datenkatalog können Sie beispielsweise verhindern, dass Mitarbeiter, die nicht in der Personalabteilung arbeiten, persönlich identifizierbare Informationen (PII) sehen.

  • Vollständige Ansichtsdefinition — Indem Sie Filter auf Ihre Ansicht im Datenkatalog anwenden, stellen Sie sicher, dass die in einer Ansicht im Datenkatalog verfügbaren Datensätze immer vollständig sind.

  • Verbesserte Sicherheit — Die zur Erstellung der Ansicht verwendete Abfragedefinition muss vollständig sein. Dieser Vorteil bedeutet, dass Ansichten im Datenkatalog weniger anfällig für SQL-Befehle von böswilligen Akteuren sind.

  • Einfaches Teilen von Daten — Teilen Sie Daten mit anderen AWS Konten, ohne Daten verschieben zu müssen. Weitere Informationen finden Sie unter Kontoübergreifender Datenaustausch in Lake Formation.

Erstellen einer Data-Catalog-Ansicht

Es gibt verschiedene Möglichkeiten, eine Datenkatalogansicht zu erstellen. Dazu gehört die Verwendung von AWS CLI oder Spark-SQL. Es folgen einige Beispiele.

Using SQL

Im Folgenden wird die Syntax zum Erstellen einer Datenkatalogansicht veranschaulicht. Notieren Sie sich den MULTI DIALECT Ansichtstyp. Dies unterscheidet die Datenkatalogansicht von anderen Ansichten. Das SECURITY Prädikat ist angegeben als. DEFINER Dies weist auf eine Datenkatalogansicht mit DEFINER Semantik hin.

CREATE [ OR REPLACE ] PROTECTED MULTI DIALECT VIEW [IF NOT EXISTS] view_name [(column_name [COMMENT column_comment], ...) ] [ COMMENT view_comment ] [TBLPROPERTIES (property_name = property_value, ... )] SECURITY DEFINER AS query;

Im Folgenden finden Sie eine CREATE Beispielanweisung, die der Syntax folgt:

CREATE PROTECTED MULTI DIALECT VIEW catalog_view SECURITY DEFINER AS SELECT order_date, sum(totalprice) AS price FROM source_table GROUP BY order_date

Sie können eine Ansicht auch im Probelaufmodus mit SQL erstellen, um die Erstellung der Ansicht zu testen, ohne die Ressource tatsächlich zu erstellen. Die Verwendung dieser Option führt zu einem „Probelauf“, der die Eingabe validiert und, falls die Validierung erfolgreich ist, die JSON des AWS Glue-Tabellenobjekts zurückgibt, das die Ansicht darstellt. In diesem Fall wird die tatsächliche Ansicht nicht erstellt.

CREATE [ OR REPLACE ] PROTECTED MULTI DIALECT VIEW view_name SECURITY DEFINER [ SHOW VIEW JSON ] AS view-sql
Using the AWS CLI
Anmerkung

Wenn Sie den CLI-Befehl verwenden, wird das SQL, das zum Erstellen der Ansicht verwendet wurde, nicht analysiert. Dies kann dazu führen, dass die Ansicht zwar erstellt wird, Abfragen jedoch nicht erfolgreich sind. Stellen Sie sicher, dass Sie Ihre SQL-Syntax testen, bevor Sie die Ansicht erstellen.

Sie verwenden den folgenden CLI-Befehl, um eine Ansicht zu erstellen:

aws glue create-table --cli-input-json '{ "DatabaseName": "database", "TableInput": { "Name": "view", "StorageDescriptor": { "Columns": [ { "Name": "col1", "Type": "data-type" }, ... { "Name": "colN", "Type": "data-type" } ], "SerdeInfo": {} }, "ViewDefinition": { "SubObjects": [ "arn:aws:glue:aws-region:aws-account-id:table/database/referenced-table1", ... "arn:aws:glue:aws-region:aws-account-id:table/database/referenced-tableN", ], "IsProtected": true, "Representations": [ { "Dialect": "SPARK", "DialectVersion": "1.0", "ViewOriginalText": "Spark-SQL", "ViewExpandedText": "Spark-SQL" } ] } } }'

Im Folgenden wird die Syntax zum Erstellen einer Datenkatalogansicht veranschaulicht. Notieren Sie sich den MULTI DIALECT Ansichtstyp. Dies unterscheidet die Datenkatalogansicht von anderen Ansichten. Das SECURITY Prädikat ist angegeben als. DEFINER Dies weist auf eine Datenkatalogansicht mit DEFINER Semantik hin.

CREATE [ OR REPLACE ] PROTECTED MULTI DIALECT VIEW [IF NOT EXISTS] view_name [(column_name [COMMENT column_comment], ...) ] [ COMMENT view_comment ] [TBLPROPERTIES (property_name = property_value, ... )] SECURITY DEFINER AS query;

Im Folgenden finden Sie eine CREATE Beispielanweisung, die der Syntax folgt:

CREATE PROTECTED MULTI DIALECT VIEW catalog_view SECURITY DEFINER AS SELECT order_date, sum(totalprice) AS price FROM source_table GROUP BY order_date

Sie können eine Ansicht auch im Probelaufmodus mit SQL erstellen, um die Erstellung der Ansicht zu testen, ohne die Ressource tatsächlich zu erstellen. Die Verwendung dieser Option führt zu einem „Probelauf“, der die Eingabe validiert und, falls die Validierung erfolgreich ist, die JSON des AWS Glue-Tabellenobjekts zurückgibt, das die Ansicht darstellt. In diesem Fall wird die tatsächliche Ansicht nicht erstellt.

CREATE [ OR REPLACE ] PROTECTED MULTI DIALECT VIEW view_name SECURITY DEFINER [ SHOW VIEW JSON ] AS view-sql

Unterstützte View-Operationen

Die folgenden Befehlsfragmente zeigen Ihnen verschiedene Möglichkeiten, mit Datenkatalogsichten zu arbeiten:

  • ANSICHT ERSTELLEN

    Erstellt eine Datenkatalogansicht. Im Folgenden finden Sie ein Beispiel, das das Erstellen einer Ansicht aus einer vorhandenen Tabelle zeigt:

    CREATE PROTECTED MULTI DIALECT VIEW catalog_view SECURITY DEFINER AS SELECT * FROM my_catalog.my_database.source_table
  • ANSICHT ÄNDERN

    Verfügbare Syntax:

    • ALTER VIEW view_name [FORCE] ADD DIALECT AS query

    • ALTER VIEW view_name [FORCE] UPDATE DIALECT AS query

    • ALTER VIEW view_name DROP DIALECT

    Sie können die FORCE ADD DIALECT Option verwenden, um die Aktualisierung des Schemas und der Unterobjekte gemäß dem neuen Engine-Dialekt zu erzwingen. Beachten Sie, dass dies zu Abfragefehlern führen kann, wenn Sie nicht auch andere Engine-Dialekte aktualisieren. FORCE Im Folgenden wird ein Beispiel gezeigt:

    ALTER VIEW catalog_view FORCE ADD DIALECT AS SELECT order_date, sum(totalprice) AS price FROM source_table GROUP BY orderdate;

    Im Folgenden wird gezeigt, wie eine Ansicht geändert wird, um den Dialekt zu aktualisieren:

    ALTER VIEW catalog_view UPDATE DIALECT AS SELECT count(*) FROM my_catalog.my_database.source_table;
  • ANSICHT BESCHREIBEN

    Verfügbare Syntax für die Beschreibung einer Ansicht:

    • SHOW COLUMNS {FROM|IN} view_name [{FROM|IN} database_name]— Wenn der Benutzer über die erforderlichen AWS Glue- und Lake Formation Formation-Berechtigungen verfügt, um die Ansicht zu beschreiben, kann er die Spalten auflisten. Im Folgenden finden Sie einige Beispielbefehle zum Anzeigen von Spalten:

      SHOW COLUMNS FROM my_database.source_table; SHOW COLUMNS IN my_database.source_table;
    • DESCRIBE view_name— Wenn der Benutzer über die erforderlichen AWS Glue- und Lake Formation Formation-Berechtigungen verfügt, um die Ansicht zu beschreiben, kann er die Spalten in der Ansicht zusammen mit ihren Metadaten auflisten.

  • ANSICHT LÖSCHEN

    Verfügbare Syntax:

    • DROP VIEW [ IF EXISTS ] view_name

      Das folgende Beispiel zeigt eine DROP Anweisung, die testet, ob eine Ansicht existiert, bevor sie gelöscht wird:

      DROP VIEW IF EXISTS catalog_view;
  • ANSICHT „ERSTELLEN“ ANZEIGEN

    • SHOW CREATE VIEW view_name— Zeigt die SQL-Anweisung an, die die angegebene Ansicht erstellt. Im Folgenden finden Sie ein Beispiel, das die Erstellung einer Datenkatalogansicht zeigt:

      SHOW CREATE TABLE my_database.catalog_view; CREATE PROTECTED MULTI DIALECT VIEW my_catalog.my_database.catalog_view ( net_profit, customer_id, item_id, sold_date) TBLPROPERTIES ( 'transient_lastDdlTime' = '1736267222') SECURITY DEFINER AS SELECT * FROM my_database.store_sales_partitioned_lf WHERE customer_id IN (SELECT customer_id from source_table limit 10)
  • ANSICHTEN ANZEIGEN

    Listet alle Ansichten im Katalog auf, z. B. reguläre Ansichten, Ansichten mit mehreren Dialekten (MDV) und MDV ohne Spark-Dialekt. Die verfügbare Syntax lautet wie folgt:

    • SHOW VIEWS [{ FROM | IN } database_name] [LIKE regex_pattern]:

      Im Folgenden wird ein Beispielbefehl zum Anzeigen von Ansichten gezeigt:

      SHOW VIEWS IN marketing_analytics LIKE 'catalog_view*';

Weitere Informationen zum Erstellen und Konfigurieren von Datenkatalog-Ansichten finden Sie unter Building AWS Glue Data Catalog Views im AWS Lake Formation Developer Guide.

Abfrage einer Data-Catalog-Ansicht

Nachdem Sie eine Datenkatalogsicht erstellt haben, können Sie eine IAM-Rolle verwenden, um die Ansicht abzufragen. Die IAM-Rolle muss über die Lake Formation SELECT-Berechtigung in der Datenkatalogansicht verfügen. Sie müssen keinen Zugriff auf die zugrunde liegenden Tabellen gewähren, auf die in der Ansicht verwiesen wird. Die für die Abfrage der Ansicht verwendete IAM-Rolle muss die Runtime-Rolle der EMR-Anwendung sein. Sie können von EMR Serverless aus auf die Ansicht zugreifen, indem Sie eine Runtime-Rolle aus Amazon EMR Steps, EMR Studio und AI Studio verwenden. SageMaker

Sobald Sie alles eingerichtet haben, können Sie Ihre Ansicht abfragen. Nachdem Sie beispielsweise eine serverlose EMR-Anwendung in EMR Studio erstellt haben, können Sie die folgende Abfrage ausführen, um auf eine Ansicht zuzugreifen.

SELECT * from my_database.catalog_view LIMIT 10;

Überlegungen und Einschränkungen

Wenn Sie Datenkatalogansichten erstellen, gilt Folgendes:

  • Sie können Datenkatalogansichten nur mit Amazon EMR 7.6 und höher erstellen.

  • Der Data Catalog View Definer muss SELECT Zugriff auf die zugrunde liegenden Basistabellen haben, auf die über die Ansicht zugegriffen wird. Das Erstellen der Datenkatalogansicht schlägt fehl, wenn einer bestimmten Basistabelle Lake Formation-Filter zugewiesen wurden, die der Definiererrolle zugewiesen wurden.

  • Basistabellen dürfen nicht über die IAMAllowedPrincipals Data Lake-Berechtigung in Lake Formation verfügen. Falls vorhanden, tritt der Fehler Multi Dialect views may only reference tables without IAMAllowed Principals permissions auf.

  • Der Amazon S3-Standort der Tabelle muss als Lake Formation Data Lake-Standort registriert sein. Wenn die Tabelle nicht registriert ist, tritt der Fehler Multi Dialect views may only reference Lake Formation managed tables auf. Informationen zur Registrierung von Amazon S3 S3-Standorten in Lake Formation finden Sie unter Registrierung eines Amazon S3 S3-Standorts im AWS Lake Formation Entwicklerhandbuch.

  • Sie können nur PROTECTED Datenkatalogansichten erstellen. UNPROTECTEDAnsichten werden nicht unterstützt.

  • Sie können in einer Datenkatalog-Ansichtsdefinition nicht auf Tabellen in einem anderen AWS Konto verweisen. Sie können auch nicht auf eine Tabelle in demselben Konto verweisen, das sich in einer separaten Region befindet.

  • Um Daten für ein Konto oder eine Region gemeinsam zu nutzen, muss die gesamte Ansicht mithilfe von Lake Formation Formation-Ressourcenlinks konto- und regionsübergreifend geteilt werden.

  • Benutzerdefinierte Funktionen (UDFs) werden nicht unterstützt.

  • Sie können Ansichten verwenden, die auf Iceberg-Tabellen basieren. Die Open-Table-Formate Apache Hudi und Delta Lake werden ebenfalls unterstützt.

  • Sie können in Datenkatalogansichten nicht auf andere Ansichten verweisen.

DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.