Datenkatalog-Ansichten in Athena verwenden - Amazon Athena

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.

Datenkatalog-Ansichten in Athena verwenden

Für die Erstellung von Datenkatalogansichten in Amazon Athena ist eine spezielle CREATE VIEW-Anweisung erforderlich. Ihre Abfrage verwendet die konventionelle SQL SELECT-Syntax. Datenkatalogansichten werden auch als Ansichten mit mehreren Dialekten oder bezeichnet. MDVs

Erstellen einer Datenkatalog-Ansicht

Verwenden Sie die folgende Syntax, um eine Datenkatalog-Ansicht in Athena zu erstellen.

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

Die SHOW VIEW JSON-Option gilt nur für Datenkatalogansichten und nicht für Athena-Ansichten. Bei Verwendung der SHOW VIEW JSON-Option wird ein „Testlauf“ durchgeführt, bei dem die Eingabe validiert wird. Wenn die Validierung erfolgreich ist, wird der JSON-Code des AWS Glue -Tabellenobjekts zurückgegeben, das die Ansicht darstellen wird. Die tatsächliche Ansicht wird nicht erstellt. Wenn die SHOW VIEW JSON-Option nicht angegeben ist, werden Validierungen durchgeführt und die Ansicht wird wie gewohnt im Datenkatalog erstellt.

Die folgende Beispielsyntax veranschaulicht, wie ein Benutzer der Definer-Rolle die Datenkatalog-Ansicht orders_by_date erstellt. Im Beispiel wird davon ausgegangen, dass die Definer-Rolle über vollständige SELECT-Berechtigungen für die orders-Tabelle in der default-Datenbank verfügt.

CREATE PROTECTED MULTI DIALECT VIEW orders_by_date SECURITY DEFINER AS SELECT orderdate, sum(totalprice) AS price FROM orders WHERE order_city = 'SEATTLE' GROUP BY orderdate

Weitere Informationen über Syntax finden Sie unter CREATE PROTECTED MULTI DIALECT VIEW.

Abfrage einer Datenkatalog-Ansicht

Nachdem die Ansicht erstellt wurde, kann der Lake Formation-Admin SELECT-Berechtigungen für die Datenkatalog-Ansicht den InvokerPrinzipalen gewähren. Die Invoker-Prinzipale können dann die Ansicht abfragen, ohne Zugriff auf die zugrunde liegenden Basistabellen zu haben, auf die in der Ansicht verwiesen wird. Im Folgenden finden Sie ein Beispiel für eine Invoker-Abfrage.

SELECT * from orders_by_date where price > 5000

Überlegungen und Einschränkungen

Die meisten der folgenden Einschränkungen der Datenkatalogansicht sind spezifisch für Athena. Zusätzliche Einschränkungen für Datenkatalogansichten, die auch für andere Dienste gelten, finden Sie in der Dokumentation zu Lake Formation.

  • Datenkatalog-Ansichten können nicht auf andere Ansichten, Datenbankressourcen-Links oder Tabellenressourcen-Links verweisen.

  • Sie können in der Ansichtsdefinition auf bis zu 10 Tabellen verweisen.

  • Tabellen dürfen nicht über die IAMAllowedPrincipals-Data-Lake-Berechtigung in Lake Formation verfügen. Falls vorhanden, wird der Fehler Multi Dialect views may only referenziert auf Tabellen ohne IAMAllowed Principals-Berechtigungen.

  • Der Amazon-S3-Speicherort der Tabelle muss als Data-Lake-Speicherort registriert sein. Wenn die Tabelle nicht so registriert ist, tritt der Fehler Multi-Dialect-Ansichten dürfen nur auf von Lake Formation verwaltete Tabellen verweisen auf. Informationen zur Registrierung von Amazon-S3-Speicherorten in Lake Formation finden Sie unter Registrierung eines Amazon-S3-Speicherorts im AWS Lake Formation -Entwicklerhandbuch.

  • Die SearchTablesAPI-Aufrufe AWS Glue GetTablesund aktualisieren den IsRegisteredWithLakeFormation Parameter nicht. Verwenden Sie die AWS Glue GetTableAPI, um den richtigen Wert für den Parameter anzuzeigen. Weitere Informationen finden Sie im AWS Lake Formation Entwicklerhandbuch unter GetTables und aktualisieren SearchTables APIs Sie den Wert für den IsRegisteredWithLakeFormation Parameter nicht.

  • Beim DEFINER-Prinzipal kann es sich nur um eine IAM-Rolle handeln.

  • Die DEFINER-Rolle muss über vollständige SELECT-Berechtigungen (gewährbar) für die zugrunde liegenden Tabellen verfügen.

  • UNPROTECTED-Data-Catalog-Ansichten werden nicht unterstützt.

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

  • Verbunddatenquellen von Athena können nicht in Data-Catalog-Ansichten verwendet werden.

  • Data-Catalog-Ansichten werden für externe Hive-Metastores nicht unterstützt.

  • Athena zeigt eine Fehlermeldung an, wenn veraltete Ansichten erkannt werden. Eine veraltete Ansicht wird gemeldet, wenn eines der folgenden Ereignisse auftritt:

    • Die Ansicht verweist auf Tabellen oder Datenbanken, die nicht vorhanden sind.

    • Eine Schema- oder Metadatenänderung wird in einer referenzierten Tabelle vorgenommen.

    • Eine referenzierte Tabelle wird gelöscht und mit einem anderen Schema oder einer anderen Konfiguration neu erstellt.

Berechtigungen

Für Data-Catalog-Ansichten sind drei Rollen erforderlich: Lake Formation Admin, Definer und Invoker.

  • Lake Formation Admin – Hat Zugriff auf die Konfiguration aller Lake-Formation-Berechtigungen.

  • Definer – Erstellt die Data-Catalog-Ansicht. Die Definer-Rolle muss über vollständige SELECT-Berechtigungen für alle zugrunde liegenden Tabellen verfügen, auf die die Ansichtsdefinition verweist.

  • Invoker – Kann die Data-Catalog-Ansicht abfragen oder deren Metadaten prüfen. Um den Aufrufer einer Abfrage anzuzeigen, können Sie die invoker_principal()-DML-Funktion verwenden. Weitere Informationen finden Sie unter invoker_principal().

Die Vertrauensbeziehungen der Definer Rolle müssen die sts:AssumeRole Maßnahmen für die Dienstleiter AWS Glue und Lake Formation ermöglichen. Weitere Informationen finden Sie unter Voraussetzungen für das Erstellen von Ansichten im AWS Lake Formation -Entwicklerhandbuch.

Für den Athena-Zugriff sind außerdem IAM-Berechtigungen erforderlich. Weitere Informationen finden Sie unter AWS verwaltete Richtlinien für Amazon Athena.