Redshift kann mehrere Spalten als SORTKEY
Spalten bezeichnen, aber die meisten der Best-Practices-Dokumentation geschrieben werden, als ob es nur eine einzige SORTKEY war.Was bedeutet es, mehrere Sortierschlüsselspalten zu haben?
Wenn ich eine Tabelle mit SORTKEY (COL1, COL2)
schaffen, bedeutet das, dass alle Spalten von COL1 sortiert gespeichert werden, dann COL2? Oder vielleicht, da es ein säulenartiger Speicher ist, wird jede Spalte in einer anderen Reihenfolge gespeichert? I.e. COL1 in COL1-Reihenfolge, COL2 in COL2-Reihenfolge und die anderen Spalten ungeordnet?
Meine Situation ist, dass ich eine Tabelle mit (unter anderem) eine type_id und einen Zeitstempel-Spalte haben. Die Daten werden grob in der Reihenfolge der Zeitstempel empfangen. Die meisten Abfragen werden mit type_id und timestamp verknüpft/eingeschränkt. Normalerweise sind die type_id-Klauseln spezifischer, was bedeutet, dass ein viel größerer Prozentsatz von Zeilen durch Betrachten der type_id-Klausel ausgeschlossen werden kann, als durch Betrachten der timestamp-Klausel. type_id ist der DISTKEY aus diesem Grund. Ich versuche, die Vor- und Nachteile von SORTKEY (type_id)
, SORTKEY (stamp)
, SORTKEY (type_id,stamp)
, SORTKEY (stamp,type_id)
zu verstehen.
Danke.
Wenn Sie möchten, dass Ihre Ergebnisse nach mehr als einer Spalte sortiert werden (ORRDER BY 1.2.3 ...), sortieren Sie Ihre Daten entsprechend. – Guy