Spaltenbasierte Speicherformate verwenden - Amazon Athena

Spaltenbasierte Speicherformate verwenden

Apache Parquet und ORC sind spaltenbasierte Speicherformate, die für den schnellen Abruf von Daten optimiert sind und in analytischen AWS-Anwendungen verwendet werden.

Spaltenbasierte Speicherformate haben die folgenden Eigenschaften, wodurch sie sich für die Verwendung mit Athena eignen:

  • Komprimierung nach Spalte mit dem für den Spaltendatentyp ausgewählten Komprimierungsalgorithmus, um Speicherplatz in Amazon S3 zu sparen und Festplattenspeicher und die I/O-Vorgänge während der Abfrageverarbeitung zu reduzieren.

  • Prädikat-Pushdown in Parquet und ORC ermöglicht Athena-Abfragen, um nur die tatsächlich benötigten Blöcke abzurufen, wobei die Abfrageleistung verbessert wird. Wenn eine Athena-Abfrage Werte aus bestimmten Spalten von Ihren Daten erhält, verwendet es Statistiken von Datenblockprädikaten, wie z. B. Max.-/Min.-Werte, um festzustellen, ob der Block zu lesen oder zu überspringen ist.

  • Das Aufteilen von Daten in Parquet und ORC ermöglicht Athena das Lesen von Daten an mehrere Leser und die Erhöhung der Parallelität während der Abfrageverarbeitung.

Um Ihre vorhandenen Rohdaten von anderen Speicherformaten für Parquet oder ORC zu konvertieren, können Sie CREATE TABLE AS SELECT (CTAS)-Abfragen in Athena ausführen und ein Datenspeicherformat als Parquet oder ORC angeben, oder verwenden Sie den AWS Glue-Crawler.

Wählen Sie zwischen Parquet und ORC

Die Wahl zwischen ORC (Optimized Row Columnar) und Parquet hängt von Ihren spezifischen Nutzungsanforderungen ab.

Apache Parquet bietet effiziente Datenkomprimierungs- und Kodierungsschemata und ist ideal für die Ausführung komplexer Abfragen und die Verarbeitung großer Datenmengen. Parquet ist für die Verwendung mit Apache Arrow optimiert. Dies kann von Vorteil sein, wenn Sie Tools verwenden, die sich auf Arrow beziehen.

ORC bietet eine effiziente Möglichkeit, Hive-Daten zu speichern. ORC-Dateien sind oft kleiner als Parquet-Dateien, und ORC-Indizes können Abfragen beschleunigen. Darüber hinaus unterstützt ORC komplexe Typen wie Strukturen, Maps und Listen.

Wenn Sie zwischen Parquet und ORC wählen, sollten Sie die folgenden Faktoren berücksichtigen:

Abfrageleistung – Da Parquet eine breitere Palette von Abfragetypen unterstützt, ist Parquet möglicherweise die bessere Wahl, wenn Sie komplexe Abfragen ausführen möchten.

Komplexe Datentypen – Wenn Sie komplexe Datentypen verwenden, ist ORC möglicherweise die bessere Wahl, da es ein breiteres Spektrum an komplexen Datentypen unterstützt.

Dateigröße – Wenn der Speicherplatz ein Problem darstellt, führt ORC in der Regel zu kleineren Dateien, wodurch die Speicherkosten gesenkt werden können.

Komprimierung – Sowohl Parquet als auch ORC bieten eine gute Komprimierung, aber welches Format für Sie am besten geeignet ist, hängt von Ihrem spezifischen Anwendungsfall ab.

Evolution – Sowohl Parquet als auch ORC unterstützen die Schemaentwicklung, was bedeutet, dass Sie im Laufe der Zeit Spalten hinzufügen, entfernen oder ändern können.

Sowohl Parquet als auch ORC sind eine gute Wahl für Big-Data-Anwendungen. Berücksichtigen Sie jedoch die Anforderungen Ihres Szenarios, bevor Sie sich entscheiden. Möglicherweise möchten Sie Benchmarks für Ihre Daten und Abfragen durchführen, um herauszufinden, welches Format für Ihren Anwendungsfall besser geeignet ist.

Konvertieren in spaltenbasierte Formate

Optionen zum einfachen Konvertieren von Quelldaten wie JSON oder CSV in ein Säulenformat, umfassen die Verwendung von CREATE TABLE AS-Abfragen oder das Ausführen von Aufträgen in AWS Glue.