Arbeiten mit Spaltenkomprimierung - Amazon Redshift

Arbeiten mit Spaltenkomprimierung

Komprimierung ist eine Operation auf Spaltenebene, die die Speichergröße von Daten reduziert. Die Komprimierung bewahrt Speicherplatz und reduziert die Größe der Daten, die aus dem Speicher gelesen werden. Dies reduziert die Menge der Datenträger-I/O und verbessert damit die Abfrageleistung.

ENCODE AUTO ist die Standardeinstellung für Tabellen. Amazon Redshift verwaltet automatisch die Komprimierungskodierung für alle Spalten in der Tabelle. Sie können die Option ENCODE AUTO für die Tabelle angeben, damit Amazon Redshift die Komprimierungskodierung für alle Spalten in der Tabelle automatisch verwalten kann. Weitere Informationen erhalten Sie unter CREATE TABLE und ALTER TABLE.

Wenn Sie jedoch die Komprimierungskodierung für eine Spalte in der Tabelle angeben, wird die Tabelle nicht mehr auf ENCODE AUTO festgelegt. Amazon Redshift verwaltet nicht mehr automatisch die Komprimierungskodierung für alle Spalten in der Tabelle.

Sie können einen Komprimierungstyp oder encoding manuell auf die Tabellen anwenden, wenn Sie sie erstellen. Sie können auch den Befehl COPY verwenden, um die Komprimierung automatisch zu analysieren und anzuwenden. Weitere Informationen finden Sie unter Lassen Sie COPY die Kompressionskodierungen auswählen. Details zur Anwendung der automatischen Kompression finden Sie unter Laden von Tabellen mit automatischer Kompression.

Anmerkung

Es wird nachdrücklich empfohlen, den COPY-Befehl zu verwenden, um die automatische Kompression anzuwenden.

Sie können die Komprimierungskodierung manuell anwenden, wenn die neue Tabelle dieselben Datenmerkmale wie eine andere Tabelle aufweist. Sie können dies auch tun, wenn Sie während Tests entdecken, dass die während der automatischen Komprimierung angewendeten Komprimierungskodierungen für Ihre Daten nicht optimal geeignet sind. Wenn Sie Kompressionskodierungen manuell anwenden, können Sie den Befehl ANALYZE COMPRESSION für eine bereits ausgefüllte Tabelle ausführen und die Ergebnisse verwenden, um die Kompressionskodierungen zu wählen.

Um die Kompression manuell anzuwenden, geben Sie die Kompressionskodierungen für einzelne Spalten als Teil der Anweisung CREATE TABLE an. Die Syntax ist wie folgt.

CREATE TABLE table_name (column_name data_type ENCODE encoding-type)[, ...]

Wobei encoding-type der Schlüsselworttabelle im folgenden Abschnitt entnommen ist.

Die folgende Anweisung erstellt beispielsweise eine Tabelle mit zwei Spalten, PRODUCT. Wenn Daten in die Tabelle geladen werden, wird nicht die Spalte PRODUCT_ID komprimiert, sondern die Spalte PRODUCT_NAME. Dabei wird die Byte-Verzeichnis-Kodierung (BYTEDICT) verwendet.

create table product( product_id int encode raw, product_name char(20) encode bytedict);

Sie können die Kodierung für eine Spalte angeben, wenn sie einer Tabelle mittels des Befehls ALTER TABLE hinzugefügt wird.

ALTER TABLE table-name ADD [ COLUMN ] column_name column_type ENCODE encoding-type