Verwenden Sie ZSTD Kompressionsstufen - 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.

Verwenden Sie ZSTD Kompressionsstufen

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 komprimiertenORC, Parquet- und Textdateidaten.

Mithilfe von ZSTD Komprimierungsstufen können Sie das Komprimierungsverhältnis und die Geschwindigkeit an Ihre Anforderungen anpassen. Die ZSTD Bibliothek unterstützt Komprimierungsstufen von 1 bis 22. Athena verwendet standardmäßig die ZSTD Kompressionsstufe 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 Komprimierungsgeschwindigkeit und des Komprimierungsverhältnisses erweitern. Weitere Informationen finden Sie unter Zstandard Compression 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

Beachten Sie bei der Verwendung der ZSTD Kompressionsstufe in Athena die folgenden Punkte.

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

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

  • Die compression_level-Eigenschaft ist optional.

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

  • Mögliche Komprimierungsstufen sind 1 bis 22.

  • Die Standardkomprimierungsstufe ist 3.

Hinweise zur Unterstützung der Apache ZSTD Hive-Komprimierung in Athena finden Sie unter. Hive-Tabellenkomprimierung verwenden Hinweise zur Unterstützung der Apache ZSTD Iceberg-Komprimierung in Athena finden Sie unter. Verwenden Sie die Iceberg-Tabellenkomprimierung

Geben Sie die Komprimierungsstufen an ZSTD

Verwenden Sie die compression_level EigenschaftALTER TABLE, CREATE TABLE um die ZSTD Komprimierungsstufe für die UNLOAD Anweisungen,, und anzugeben. CREATE TABLE AS Um die ZSTD Komprimierung selbst anzugeben, müssen Sie die individuelle Komprimierungseigenschaft verwenden, die in der Syntax für die Anweisung verwendet wird.

Geben Sie in der ALTER TABLE SET TBLPROPERTIES SET TBLPROPERTIES Anweisungsklausel die ZSTD Komprimierung mit 'write.compression' = ' ZSTD' oder an'parquet.compression' = 'ZSTD'. 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 so geändertexisting_table, dass sie das Parquet-Dateiformat mit der Komprimierungs- und ZSTD ZSTD Komprimierungsstufe 4 verwendet. Beachten Sie, dass in der TBLPROPERTIES Klausel der Wert für die Komprimierungsstufe als Zeichenfolge und nicht als Ganzzahl eingegeben werden muss und daher entweder in einfache oder doppelte Anführungszeichen gesetzt werden muss.

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

Geben Sie in der CREATE TABLE TBLPROPERTIES Anweisungsklausel 'write.compression' = 'ZSTD'oder'parquet.compression' = 'ZSTD'' an compression_level = compression_level und verwenden Sie dann einen Wert zwischen 1 und 22 als Zeichenfolge. Wenn die compression_level-Eigenschaft nicht angegeben ist, ist die Standardkomprimierungsstufe 3.

Beispiel

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

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

Geben Sie write_compression = 'ZSTD' in der CREATE TABLE AS WITH Anweisungsklausel oder anparquet_compression = 'ZSTD', und verwenden compression_level = compression_level und spezifizieren Sie dann einen Wert zwischen 1 und 22 als Ganzzahl. Wenn die compression_level-Eigenschaft nicht angegeben ist, ist die Standardkomprimierungsstufe 3.

Beispiel

Im folgenden CTAS Beispiel wird Parquet als Dateiformat angegeben, das die ZSTD Komprimierung mit der Komprimierungsstufe 4 verwendet. Beachten Sie, dass in der WITH Klausel der Wert für die Komprimierungsstufe als Ganzzahl und nicht als Zeichenfolge angegeben werden muss.

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

Geben Sie compression = 'ZSTD' in der UNLOAD WITH Anweisungsklausel einen Wert zwischen 1 compression_level = compression_level und 22 an, und verwenden Sie ihn dann als Ganzzahl. 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 Komprimierung und der ZSTD ZSTD Komprimierungsstufe 4 an den angegebenen Speicherort entladen.

UNLOAD (SELECT * FROM old_table) TO 's3://amzn-s3-demo-bucket/' WITH (format = 'PARQUET', compression = 'ZSTD', compression_level = 4)