Erstellen Sie Tabellen 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.

Erstellen Sie Tabellen in Athena

Um Tabellen zu erstellen, können Sie DDL Anweisungen in der Athena-Konsole ausführen, das Formular Athena Create table verwenden oder einen JDBC oder einen ODBC Treiber verwenden. Athena definiert mithilfe von Apache Hive Tabellen und erstellt Datenbanken, die an sich ein logischer Namespace von Tabellen sind. Athena unterstützt eine Vielzahl von serializer-deserializer (SerDe) -Bibliotheken zum Erstellen von Tabellen für bestimmte Datenformate. Eine Liste der unterstützten Bibliotheken finden Sie unter. SerDe Wählen Sie eine SerDe für Ihre Daten

Wenn Sie eine Datenbank und Tabelle in Athena erstellen, beschreiben Sie einfach das Schema und den Speicherort, an dem die Tabellendaten in Amazon S3 für Abfragen beim Lesen gespeichert sind. Athena bearbeitet Ihre Daten in Amazon S3 nicht. Die Begriffe Datenbank und Tabelle haben daher eine etwas abweichende Bedeutung als in traditionellen relationalen Datenbanksystemen, da die Daten nicht zusammen mit der Schemadefinition für die Datenbank und Tabelle gespeichert werden.

Athena speichert das Schema im AWS Glue Data Catalog und verwendet es, um die Daten zu lesen, wenn Sie die Tabelle mit SQL abfragen. Dieser schema-on-readAnsatz, bei dem ein Schema auf Ihre Daten projiziert wird, wenn Sie eine Abfrage ausführen, macht das Laden oder Transformieren von Daten überflüssig.

Überlegungen und Einschränkungen

Im Folgenden finden Sie einige wichtige Einschränkungen und Überlegungen für Tabellen in Athena.

Überlegungen zu Amazon S3

Beim Erstellen einer Tabelle geben Sie einen Amazon-S3-Bucket-Speicherort für die zugrunde liegenden Daten mit der Klausel LOCATION an. Berücksichtigen Sie dabei Folgendes:

  • Athena kann nur die neueste Version der Daten in einem versionierten Amazon-S3-Bucket und keine vorherigen Versionen der Daten abfragen.

  • Sie müssen über Berechtigungen verfügen, um mit Daten am Amazon S3 S3-Standort zu arbeiten. Weitere Informationen finden Sie unter Steuern Sie den Zugriff auf Amazon S3 von Athena aus.

  • Athena unterstützt das Abfragen von Objekten, die mit verschiedenen Speicherklassen im gleichen von der LOCATION-Klausel angegebenen Bucket gespeichert werden. Beispielsweise können Sie Daten in Objekten abfragen, die in verschiedenen Speicherklassen in Amazon S3 gespeichert sind (Standard, Standard IA und Intelligent-Tiering).

  • Athena unterstützt Buckets mit Zahlung durch den Anforderer. Weitere Informationen zum Aktivieren der Zahlung durch den Anforderer für Buckets mit Quelldaten, die Sie in Athena abfragen möchten, finden Sie unter Erstellen von Arbeitsgruppen.

  • Sie können Athena verwenden, um wiederhergestellte Objekte aus den Amazon S3-Speicherklassen S3 Glacier Flexible Retrieval (früher Glacier) und S3 Glacier Deep Archive abzufragen, aber Sie müssen die Funktion für jede Tabelle aktivieren. Wenn Sie das Feature nicht für eine Tabelle aktivieren, bevor Sie eine Abfrage ausführen, überspringt Athena während der Abfrageausführung alle Objekte der Tabelle von S3 Glacier Flexible Retrieval und S3 Glacier Deep Archive. Weitere Informationen finden Sie unter Abfragen wiederhergestellter Amazon S3 Glacier-Objekte.

    Informationen zu Speicherklassen finden Sie unter Speicherklassen, Ändern der Speicherklasse eines Objekts in Amazon S3, Übergang zur GLACIER Speicherklasse (Objektarchivierung) und Requester Pays Buckets im Amazon Simple Storage Service-Benutzerhandbuch.

  • Wenn Sie Abfragen gegen Amazon-S3-Buckets mit einer großen Anzahl von Objekten ausgeben und die Daten nicht partitioniert sind, können sich solche Abfragen auf die Grenzwerte für die Get-Anforderungsrate in Amazon S3 auswirken und zu Amazon-S3-Ausnahmen führen. Um Fehler zu vermeiden, partitionieren Sie Ihre Daten. Überlegen Sie zusätzlich, ob Sie Ihre Amazon-S3-Anforderungsraten optimieren möchten. Weitere Informationen finden Sie unter Anfragerate und Leistungsaspekte.

Weitere Informationen zur Angabe eines Speicherorts für Ihre Daten in Amazon S3 finden Sie unterGeben Sie einen Tabellenstandort in Amazon S3 an.

Weitere Überlegungen

  • Transaktionale Datentransformationen werden nicht unterstützt — Athena unterstützt keine transaktionsbasierten Operationen (wie sie in Hive oder Presto zu finden sind) mit Tabellendaten. Eine vollständige Liste der nicht unterstützten Schlüsselwörter finden Sie unter Nicht unterstützt. DDL

  • Operationen an Tabellen sind ACID — Wenn Sie Tabellen erstellen, aktualisieren oder löschen, sind diese Operationen garantiert ACID konform. Wenn beispielsweise mehrere Benutzer oder Clients gleichzeitig versuchen, eine vorhandene Tabelle zu erstellen oder zu bearbeiten, ist nur einer erfolgreich.

  • Tabellen sind EXTERNAL — Außer beim Erstellen von Iceberg-Tabellen sollten Sie immer das EXTERNAL Schlüsselwort verwenden. Wenn Sie CREATE TABLE ohne das EXTERNAL-Schlüsselwort für Nicht-Iceberg-Tabellen verwenden, gibt Athena einen Fehler aus. Wenn Sie eine Tabelle in Athena löschen, werden nur die Tabellenmetadaten gelöscht. Die Daten verbleiben in Amazon S3.

  • Maximale Länge der Abfragezeichenfolge — Die maximale Länge der Abfragezeichenfolge beträgt 256 KB.

  • Wenn Sie das AWS Glue CreateTableAPIOperation oder AWS CloudFormation AWS::Glue::TableVorlage, um eine Tabelle für die Verwendung in Athena ohne Angabe der TableType Eigenschaft zu erstellen und dann eine DDL Abfrage wie SHOW CREATE TABLE oder auszuführenMSCK REPAIR TABLE, Sie können die Fehlermeldung erhalten FAILED: NullPointerException Name ist null.

    Um den Fehler zu beheben, geben Sie einen Wert für das TableInputTableTypeAttribut als Teil der AWS Glue CreateTableAPIrufen Sie an oder AWS CloudFormation Vorlage. Mögliche Werte für TableType sind EXTERNAL_TABLE oder VIRTUAL_VIEW.

    Diese Anforderung gilt nur, wenn Sie eine Tabelle mit dem erstellen AWS Glue CreateTableAPIOperation oder die AWS::Glue::Table Vorlage. Wenn Sie eine Tabelle für Athena erstellen, indem Sie eine DDL Anweisung oder eine AWS Glue Crawler, die TableType Eigenschaft wird automatisch für Sie definiert.