2016-09-05 1 views
0

Was verwendet Amazon Redshift, um Werte im Cluster zu verteilen: Hash oder BTree?Verteilung in Amazon Redshift - BTree oder Hash

Wenn beispielsweise mein Verteilungsschlüssel ein Datum im Format "yyyy-MM-dd" ist, werden zwei aufeinander folgende Tage auf demselben Knoten gespeichert (wenn Btree verwendet wird) oder wahrscheinlich auf verschiedenen Knoten (wenn Hash ist verwendet, wird dies wahrscheinlich der Fall sein)?

Danke

Antwort

2

Intelligente Frage. Sie wissen, wie die meisten RDBMS funktionieren.

Es gibt keine B-Bäume.

Eine Hash-Funktion wird auf Ihren Verteilungsschlüssel angewendet, und das Ergebnis der Hash-Funktion bestimmt, welcher Slice Ihre Daten empfängt.

Es gibt keine Indizes im traditionellen Sinn des Wortes. Redshift verwendet Informationen in seinem "Superblock", um zu ermitteln, ob eine vollständige Tabellensuche für bestimmte Abfragen vermieden werden kann.

Für große Datensätze gibt es 4 Praktiken, die dramatisch Ihre Leistung verbessern:

  1. DISTRIBUTION KEY --- The most important design decision in an MPP system.
  2. COMPRESSION -- This can be done automatically as you load the database.
  3. SORT KEY -- Getting a good sort key is extremely important for large tables.
  4. ANALYZE and VACUUM --- This ensures that the SORT Key is optimized and the database has good statistics.

Hinweis, was von fehlt meine Liste? Ja, ich habe keine Indizes gesagt. Redshift hat keine Indizes.

Verwandte Themen