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 in der 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 Zugriff auf Amazon S3 von Athena.

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

  • Athena unterstützt keine Abfragen für Daten in den Speicherklassen S3 Glacier Flexible Retrieval oder S3 Glacier Deep Archive. Objekte in den Speicherklassen S3 Glacier Flexible Retrieval und S3 Glacier Deep Archive werden ignoriert. Alternativ können Sie die Speicherklasse Amazon S3 Glacier Instant Retrieval verwenden, die von Athena abgefragt werden kann. Weitere Informationen finden Sie unter Amazon-S3-Speicherklasse Glacier Instant Retrieval.

    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 die AWS Glue CreateTableAPIOperation oder die AWS CloudFormation AWS::Glue::TableVorlage verwenden, um eine Tabelle für die Verwendung in Athena zu erstellen, ohne die TableType Eigenschaft anzugeben, und dann eine DDL Abfrage wie SHOW CREATE TABLE oder ausführenMSCK REPAIR TABLE, können Sie die Fehlermeldung erhalten FAILED: NullPointerException Name ist null.

    Um den Fehler zu beheben, geben Sie im Rahmen des AWS Glue CreateTable API Aufrufs oder der AWS CloudFormation Vorlage einen Wert für das TableInputTableTypeAttribut an. Mögliche Werte für TableType sind EXTERNAL_TABLE oder VIRTUAL_VIEW.

    Diese Anforderung gilt nur, wenn Sie eine Tabelle mithilfe der AWS Glue CreateTable API Operation oder der AWS::Glue::Table Vorlage erstellen. Wenn Sie mithilfe einer DDL Anweisung oder eines AWS Glue Crawlers eine Tabelle für Athena erstellen, wird die TableType Eigenschaft automatisch für Sie definiert.