Verwendung von ZSTD-Komprimierungsstufen 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.

Verwendung von ZSTD-Komprimierungsstufen in Athena

Der Zstandard-Algorithmus zur Datenkomprimierung in Echtzeit ist ein schneller Kompressionsalgorithmus, der hohe Komprimierungsraten bereitstellt. Die Zstandard (ZSTD)-Bibliothek ist Open-Source-Software und verwendet eine BSD-Lizenz. Athena unterstützt das Lesen und Schreiben von ZSTD-komprimierten ORC-, Parquet- und Textdatei-Daten.

Sie können die ZSTD-Komprimierungsstufen verwenden, um das Komprimierungsverhältnis und die Geschwindigkeit entsprechend Ihren Anforderungen anzupassen. Die ZSTD-Bibliothek unterstützt Komprimierungsstufen von 1 bis 22. Athena verwendet standardmäßig die ZSTD-Komprimierungsstufe 3.

Komprimierungsstufen stellen differenzierte Kompromisse zwischen der Komprimierungsgeschwindigkeit und dem erreichten Komprimierungsgrad bereit. Niedrigere Komprimierungsstufen bieten eine höhere Geschwindigkeit aber größere Dateigrößen. Sie können beispielsweise Stufe 1 verwenden, wenn Geschwindigkeit am wichtigsten ist und Stufe 22, wenn Größe am wichtigsten ist. Stufe 3 eignet sich für viele Anwendungsfälle und ist die Standardeinstellung. Verwenden Sie Stufen über 19 mit Vorsicht, da sie mehr Arbeitsspeicher benötigen. Die ZSTD-Bibliothek bietet auch negative Komprimierungsstufen, die den Bereich der Komprimierungsgeschwindigkeiten und -verhältnisse erweitern. Weitere Informationen finden Sie im Zstandard-Komprimierungs-RFC.

Die Fülle an Komprimierungsstufen bietet erhebliche Möglichkeiten zur Feinabstimmung. Stellen Sie jedoch sicher, dass Sie Ihre Daten messen und die Kompromisse berücksichtigen, wenn Sie sich für eine Komprimierungsstufe entscheiden. Wir empfehlen, die Standardstufe 3 oder eine Stufe im Bereich von 6 bis 9 zu verwenden für einen angemessenen Kompromiss zwischen Komprimierungsgeschwindigkeit und komprimierter Datengröße zu erzielen. Reservieren Sie die Stufen 20 und höher für Fälle, in denen die Größe am wichtigsten ist und die Kompressionsgeschwindigkeit kein Problem darstellt.

Überlegungen und Einschränkungen

Berücksichtigen Sie bei der Verwendung der ZSTD-Komprimierungsstufe in Athena die folgenden Punkte.

  • Die ZSTD-Eigenschaft compression_level wird nur in der Athena-Engine-Version 3 unterstützt.

  • Die ZSTD-Eigenschaft compression_level wird für die ALTER TABLE-, CREATE TABLE-, CREATE TABLE AS (CTAS)- und UNLOAD-Anweisungen unterstützt.

  • Die compression_level-Eigenschaft ist optional.

  • Die compression_level-Eigenschaft wird nur für ZSTD-Komprimierung unterstützt.

  • Mögliche Komprimierungsstufen sind 1 bis 22.

  • Die Standardkomprimierungsstufe ist 3.

Informationen zur Unterstützung für Apache-Hive-ZSTD-Komprimierung in Athena finden Sie unter Unterstützung der Komprimierung von Hive-Tabellen nach Dateiformaten. Informationen zur Verwendung der Apache-Iceberg-ZSTD-Komprimierung in Athena finden Sie unter Unterstützung der Komprimierung von Iceberg-Tabellen nach Dateiformaten.

Festlegen der ZSTD-Komprimierungsstufen

Um die ZSTD-Komprimierungsstufe für die ALTER TABLE-, CREATE TABLE-, CREATE TABLE AS-, and UNLOAD-Anweisungen anzugeben, verwenden Sie die compression_level-Eigenschaft. Um die ZSTD-Komprimierung selbst anzugeben, müssen Sie die individuelle Komprimierungseigenschaft verwenden, die in der Syntax für die Anweisung verwendet wird.

ALTER TABLE SET TBLPROPERTIES

Geben Sie in der ALTER TABLE SET TBLPROPERTIES-Anweisung der SET TBLPROPERTIES-Klausel die ZSTD-Komprimierung mit 'write.compression' = ' ZSTD' oder 'parquet.compression' = 'ZSTD' an. Verwenden Sie anschließend die compression_level-Eigenschaft, um einen Wert zwischen 1 und 22 anzugeben (z. B. compression_level' = 5). Wenn Sie keine Eigenschaft für die Komprimierungsstufe angeben, wird die Komprimierungsstufe standardmäßig auf 3 gesetzt.

Beispiel

Im folgenden Beispiel wird die Tabelle existing_table so geändert, dass das Parquet-Dateiformat mit ZSTD-Komprimierung und ZSTD-Komprimierungsstufe 4 verwendet wird. Beachten Sie, dass der Wert für die Komprimierungsstufe als Zeichenfolge und nicht als Ganzzahl eingegeben werden muss.

ALTER TABLE existing_table SET TBLPROPERTIES ('parquet.compression' = 'ZSTD', 'compression_level' = 4)

CREATE TABLE

Geben Sie in der CREATE TABLE-Anweisung der TBLPROPERTIES-Klausel write.compression' = 'ZSTD' oder 'parquet.compression' = 'ZSTD' an, verwenden Sie anschließend compression_level = compression_level und geben Sie einen Wert zwischen 1 und 22 an. Wenn die compression_level-Eigenschaft nicht angegeben ist, ist die Standardkomprimierungsstufe 3.

Beispiel

Im folgenden Beispiel wird eine Tabelle im Parquet-Dateiformat mit ZSTD-Komprimierung und ZSTD-Komprimierungsstufe 4 erstellt.

CREATE EXTERNAL TABLE new_table ( `col0` string COMMENT '', `col1` string COMMENT '' ) STORED AS PARQUET LOCATION 's3://DOC-EXAMPLE-BUCKET/' TBLPROPERTIES ('write.compression' = 'ZSTD', 'compression_level' = 4)

CREATE TABLE AS (CTAS)

Geben Sie in der CREATE TABLE AS-Anweisung der WITH-Klausel write_compression = 'ZSTD' oder parquet_compression = 'ZSTD' an, verwenden Sie anschließend compression_level = compression_level und geben Sie einen Wert zwischen 1 und 22 an. Wenn die compression_level-Eigenschaft nicht angegeben ist, ist die Standardkomprimierungsstufe 3.

Beispiel

Das folgende CTAS-Beispiel gibt Parquet als Dateiformat an, das die ZSTD-Komprimierung mit der Komprimierungsstufe 4 verwendet.

CREATE TABLE new_table WITH ( format = 'PARQUET', write_compression = 'ZSTD', compression_level = 4) AS SELECT * FROM old_table

UNLOAD

Geben Sie in der UNLOAD-Anweisung der WITH-Klausel compression = 'ZSTD' an, verwenden Sie anschließend compression_level = compression_level und geben Sie einen Wert zwischen 1 und 22 an. Wenn die compression_level-Eigenschaft nicht angegeben ist, ist die Standardkomprimierungsstufe 3.

Beispiel

Im folgenden Beispiel werden die Abfrageergebnisse unter Verwendung des Parquet-Dateiformats, der ZSTD-Komprimierung und der ZSTD-Komprimierungsstufe 4 an den angegebenen Speicherort entladen.

UNLOAD (SELECT * FROM old_table) TO 's3://DOC-EXAMPLE-BUCKET/' WITH (format = 'PARQUET', compression = 'ZSTD', compression_level = 4)