Redshift umożliwia oznaczanie wielu kolumn jako kolumn SORTKEY
, ale większość dokumentacji dotyczącej najlepszych praktyk jest napisana tak, jakby istniał tylko jeden SORTKEY.Co to znaczy mieć wiele kolumn sortkey?
Jeśli utworzę tabelę z SORTKEY (COL1, COL2)
, czy to oznacza, że wszystkie kolumny są przechowywane posortowane według COL1, a następnie COL2? A może, ponieważ jest to magazyn kolumnowy, każda kolumna zostaje zapisana w innej kolejności? To znaczy. COL1 w porządku COL1, COL2 w porządku COL2, a pozostałe kolumny nieuporządkowane?
Moja sytuacja polega na tym, że mam tabelę z (między innymi) kolumną type_id i timestamp. Dane przybywają z grubsza w kolejności znaczników czasu. Większość zapytań łączy się z/ogranicza zarówno typ_id, jak i znacznik czasu. Zwykle klauzule type_id są bardziej szczegółowe, co oznacza, że znacznie większy procent wierszy można wykluczyć, patrząc na klauzulę type_id, niż patrząc na klauzulę timestamp. type_id to DISTKEY z tego powodu. Próbuję zrozumieć zalety i wady: SORTKEY (type_id)
, SORTKEY (stamp)
, SORTKEY (type_id,stamp)
, SORTKEY (stamp,type_id)
.
Dzięki.
Jeśli chcesz, aby twoje wyniki były posortowane według więcej niż jednej kolumny (ORRDER BY 1.2.3 ...), posortuj odpowiednio dane. – Guy