Verwenden Sie Datenkatalogansichten in Athena - 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.

Verwenden Sie Datenkatalogansichten in Athena

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

Erstellen Sie eine Datenkatalogansicht

Verwenden Sie die folgende Syntax, um eine Datenkatalogansicht 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 „Probelauf“ durchgeführt, der die Eingabe validiert und, falls die Überprüfung erfolgreich ist, das JSON AWS Glue Tabellenobjekt zurückgibt, 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.

Das folgende Beispiel zeigt, wie ein Benutzer der Definer Rolle die orders_by_date Datenkatalogansicht 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

Informationen zur Syntax finden Sie unterCREATE PROTECTED MULTI DIALECT VIEW.

Fragen Sie eine Datenkatalogansicht ab

Nachdem die Ansicht erstellt wurde, kann der Lake Formation Administrator den Invoker Prinzipalen SELECT Berechtigungen für die Datenkatalogansicht 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.

  • Datenkatalogsichten können nicht auf andere Ansichten, Datenbankressourcenlinks oder Tabellenressourcenlinks 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, tritt der Fehler Multi Dialect views may only references tables without IAMAllowedPrincipals permissions.

  • Der Amazon S3-Standort der Tabelle muss als Lake Formation Data Lake-Standort registriert sein. Wenn die Tabelle nicht so 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.

  • Die SearchTablesAPIAufrufe AWS Glue GetTablesund aktualisieren den IsRegisteredWithLakeFormation Parameter nicht. Um den richtigen Wert für den Parameter anzuzeigen, verwenden Sie den AWS Glue GetTableAPI. Weitere Informationen finden Sie im AWS Lake Formation Entwicklerhandbuch unter GetTables und aktualisieren SearchTables APIs Sie den Wert für den IsRegisteredWithLakeFormation Parameter nicht.

  • Der DEFINER Principal kann nur eine IAM Rolle sein.

  • 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.

  • Datenkatalogansichten werden für externe Datenkatalogansichten nicht unterstützt Hive Metastoren.

  • 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 im AWS Lake Formation Entwicklerhandbuch unter Voraussetzungen für das Erstellen von Ansichten.

IAMBerechtigungen für den Zugriff auf Athena sind ebenfalls erforderlich. Weitere Informationen finden Sie unter AWS verwaltete Richtlinien für Amazon Athena.