

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
<a name="views-glue"></a>

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
<a name="views-glue-creating-a-data-catalog-view"></a>

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](create-view.md#create-protected-multi-dialect-view).

## Abfrage einer Datenkatalog-Ansicht
<a name="views-glue-querying-a-data-catalog-view"></a>

Nachdem die Ansicht erstellt wurde, kann der `Lake Formation`-Admin `SELECT`-Berechtigungen für die Datenkatalog-Ansicht den `Invoker`Prinzipalen 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
<a name="views-glue-limitations"></a>

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](https://docs.aws.amazon.com/lake-formation/latest/dg/register-location.html) im *AWS Lake Formation -Entwicklerhandbuch*.
+ Die [SearchTables](https://docs.aws.amazon.com/glue/latest/webapi/API_SearchTables.html)API-Aufrufe AWS Glue [GetTables](https://docs.aws.amazon.com/glue/latest/webapi/API_GetTables.html)und aktualisieren den `IsRegisteredWithLakeFormation` Parameter nicht. Verwenden Sie die AWS Glue [GetTable](https://docs.aws.amazon.com/glue/latest/webapi/API_GetTable.html)API, 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](https://docs.aws.amazon.com/lake-formation/latest/dg/limitations.html#issue-GetTables-value).
+ 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
<a name="views-glue-permissions"></a>

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\$1principal()](functions-env3.md#functions-env3-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](https://docs.aws.amazon.com/lake-formation/latest/dg/working-with-views.html#views-prereqs) 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](security-iam-awsmanpol.md).

# Datenkatalog-Ansichten verwalten
<a name="views-glue-managing"></a>

Sie können DDL-Befehle verwenden, um Ihre Datenkatalogansichten zu aktualisieren und zu verwalten.

## Aktualisieren einer Datenkatalog-Ansicht
<a name="views-glue-updating-a-data-catalog-view"></a>

Der `Lake Formation`-Admin oder Definierer der die `ALTER VIEW UPDATE DIALECT`-Syntax verwenden, um die Ansichtsdefinition zu aktualisieren. Im folgenden Beispiel wird die Ansichtsdefinition so geändert, dass Spalten aus der `returns`-Tabelle statt aus der `orders`-Tabelle ausgewählt werden.

```
ALTER VIEW orders_by_date UPDATE DIALECT
AS
SELECT return_date, sum(totalprice) AS price
FROM returns
WHERE order_city = 'SEATTLE'
GROUP BY orderdate
```

## Unterstützte DDL-Aktionen für Views AWS Glue Data Catalog
<a name="views-glue-supported-actions"></a>

Athena unterstützt die folgenden Aktionen für AWS Glue Data Catalog Ansichten.


| Statement | Description | 
| --- | --- | 
| [ANSICHTSDIALEKT ÄNDERN](alter-view-dialect.md) |  Aktualisiert einen Datenkatalog, indem Sie entweder ein Engine-Dialekt hinzugefügt oder ein vorhandener Engine-Dialekt aktualisiert oder gelöscht wird.  | 
| [CREATE PROTECTED MULTI DIALECT VIEW](create-view.md#create-protected-multi-dialect-view) |  Erstellt eine neue Datenkatalog-Ansicht aus einer angegebenen `SELECT`-Abfrage. Weitere Informationen finden Sie unter [CREATE PROTECTED MULTI DIALECT VIEW](create-view.md#create-protected-multi-dialect-view). Mit der optionalen `OR REPLACE`-Klausel können Sie die vorhandene Ansicht aktualisieren, indem Sie sie ersetzen.  | 
| [DESCRIBE VIEW](describe-view.md) |  Zeigt die Liste der Spalten für die benannte Ansicht an. Auf diese Weise können Sie die Attribute einer komplexen Ansicht untersuchen.   | 
| [DROP VIEW](drop-view.md) |  Löscht eine vorhandene Ansicht. Mit der optionalen `IF EXISTS`-Klausel wird der Fehler unterdrückt, falls die Ansicht nicht existiert.  | 
| [SHOW CREATE VIEW](show-create-view.md) |  Zeigt die SQL-Anweisung an, die die angegebene Ansicht erstellt.  | 
| [SHOW VIEWS](show-views.md) |  Listet die Ansichten in der angegebenen Datenbank oder in der aktuellen Datenbank auf, wenn Sie den Datenbanknamen weglassen. Verwenden Sie die optionale `LIKE`-Klausel mit einem regulären Ausdruck, um die Liste der Ansichtsnamen einzugrenzen. Im linken Bereich der Konsole sehen Sie die Liste der Ansichten ebenfalls.  | 
| [SHOW COLUMNS](show-columns.md) |  Führt die Spalten im Schema für eine Ansicht auf.  | 