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
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 dieUNLOAD
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 =
und verwenden Sie dann einen Wert zwischen 1 und 22 als Zeichenfolge. Wenn die compression_level
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
=
und spezifizieren Sie dann einen Wert zwischen 1 und 22 als Ganzzahl. Wenn die compression_level
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 =
und 22 an, und verwenden Sie ihn dann als Ganzzahl. Wenn die compression_level
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)