Redshift consente di designare più colonne come colonne SORTKEY
, ma la maggior parte della documentazione delle best practice è scritta come se ci fosse solo un singolo SORTKEY.Che cosa significa avere più colonne di ordinamento?
Se creo una tabella con SORTKEY (COL1, COL2)
, significa che tutte le colonne vengono archiviate ordinate per COL1, quindi COL2? O forse, dal momento che è un negozio colonnare, ogni colonna viene memorizzata in un ordine diverso? Cioè COL1 in ordine COL1, COL2 in ordine COL2 e le altre colonne non ordinate?
La mia situazione è che ho una tabella con (tra gli altri) un type_id e una colonna timestamp. I dati arrivano approssimativamente in ordine di data e ora. La maggior parte delle query viene unita contro/limitata da type_id e timestamp. Solitamente le clausole type_id sono più specifiche, il che significa che una percentuale molto più grande di righe può essere esclusa osservando la clausola type_id piuttosto che osservando la clausola timestamp. type_id è il DISTKEY per questo motivo. Sto cercando di capire i pro ei contro di SORTKEY (type_id)
, SORTKEY (stamp)
, SORTKEY (type_id,stamp)
, SORTKEY (stamp,type_id)
.
Grazie.
Se si desidera che i risultati siano ordinati per più di una colonna (ORRDER BY 1.2.3 ...), ordinare i dati di conseguenza. – Guy