Wie kann ich eine Amazon Athena-Abfrageausgabe in einem anderen Format als CSV speichern, z. B. in einem komprimierten Format?

Lesedauer: 2 Minute
0

Ich möchte Amazon Athena-Abfrageergebnisse in einem anderen Format als CSV speichern, z. B. JSON oder einem komprimierten Format.

Lösung

Athena unterstützt nur CSV-Ausgabedateien. Die UNLOAD-Abfrage schreibt Abfrageergebnisse aus einer SELECT-Anweisung in das angegebene Datenformat. Zu den unterstützten Formaten für UNLOAD gehören Apache Parquet, ORC, Apache Avro und JSON. CSV ist das einzige Ausgabeformat, das von der Athena SELECT-Abfrage verwendet wird, Sie können UNLOAD jedoch verwenden, um die Ausgabe einer SELECT-Abfrage in die Formate zu schreiben, die UNLOAD unterstützt. Sie können die CTAS-Anweisung zwar verwenden, um Daten in anderen Formaten als CSV auszugeben, diese Anweisungen erfordern jedoch zudem die Erstellung einer Tabelle in Athena. Die UNLOAD-Anweisung ist nützlich, wenn Sie die Ergebnisse einer SELECT-Abfrage in einem Nicht-CSV-Format ausgeben möchten, die zugehörige Tabelle jedoch nicht benötigen. Beispielsweise kann eine Downstream-Anwendung erfordern, dass die Ergebnisse einer SELECT-Abfrage im JSON-Format vorliegen, und Parquet oder ORC können einen Leistungsvorteil gegenüber CSV bieten, wenn Sie beabsichtigen, die Ergebnisse der SELECT-Abfrage für zusätzliche Analysen zu verwenden.

Um Abfrageausgabedateien in einem anderen Format zu speichern, verwenden Sie eine CREATE TABLE AS SELECT (CTAS)-Abfrage und konfigurieren Sie dann die Eigenschaft Format. Nachdem die Abfrage abgeschlossen ist, löschen Sie die CTAS-Tabelle. Beachten Sie Folgendes:

  • Sie können das Format auf ORC, PARQUET, AVRO, JSON oder TEXTFILE setzen. Wenn Sie kein Format für die CTAS-Abfrage angeben, verwendet Athena standardmäßig Parquet.
  • Der Name des Parameters, format, muss in Kleinbuchstaben aufgeführt werden, sonst schlägt Ihre CTAS-Abfrage fehl. Ein Beispiel finden Sie unter Beispiel: Abfrageergebnisse in ein anderes Format schreiben.
  • Standardmäßig verwenden alle CTAS-Abfragen die GZIP-Komprimierung. Für Parquet und ORC können Sie die Optionen parquet_compression und orc_compression verwenden, um andere Komprimierungstypen wie SNAPPY festzulegen. Ein Beispiel finden Sie unter Beispiel: Festlegen von Datenspeicher- und Komprimierungsformaten.
  • Für textbasierte Formate können Sie ein field_delimiter wie folgt angeben: WITH (field_delimiter = ',') . Wenn Sie kein Feldtrennzeichen angeben, verwendet Athena standardmäßig \001.
  • Wenn Sie den Parameter external_location in der CTAS-Abfrage verwenden, stellen Sie sicher, dass der Speicherort von Amazon Simple Storage Service (Amazon S3) keine Daten enthält. Andernfalls wird möglicherweise ein Fehler wie dieser angezeigt: „HIVE_PATH_ALREADY_EXISTS: Das Zielverzeichnis für die Tabelle 'table_name' ist bereits vorhanden: s3://AWSDOC-EXAMPLE-BUCKET.“ Weitere Informationen zum Parameter external_location finden Sie unter Eigenschaften der CTAS-Tabelle.

Ähnliche Informationen

Überlegungen und Einschränkungen für CTAS-Abfragen

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren