2016-10-20 2 views

Antwort

5

Sie tun nicht wollen dies tun.

In Amazon Rotverschiebung die Verteilungsschlüssel (DISTKEY) verwendet wird, um Daten zwischen den Scheiben zu verteilen (es gibt mehrere Scheiben pro Knoten). Wenn eine Abfrage zwei Tabellen mithilfe von DISTKEY verknüpft, wird sie viel schneller ausgeführt, da sich die Daten in beiden Tabellen in Bezug auf diesen Schlüssel in demselben Segment befinden. Es ist nicht erforderlich, Daten zwischen Segmenten zu verschieben, und die Segmente können parallel arbeiten. Das DISTKEY sollte das Feld sein, das Sie am häufigsten zu JOIN Tabellen zusammen verwenden.

Es gibt auch eine Sortierschlüssel (SORTKEY), die Daten sortiert auf einer Scheibe sortiert. Eine Abfrage, die diesen SORTKEY in einer WHERE-Klausel verwendet, funktioniert effizienter, da die Abfrage auf dem Datenträger übersprungen werden kann. Jeder 1MB-Plattenblock enthält Werte, die sich auf eine Spalte in einer Tabelle beziehen. Jeder Block hat eine Zone Map, die die minimalen und maximalen Werte im Block identifiziert. Wenn der Block keine Werte enthält, die der WHERE-Klausel entsprechen, muss Redshift den Block nicht lesen. Dies macht die Abfrage extrem schnell.

Also, wenn Sie meist Abfrage Quartalsdaten, dann sollten Sie die SORTKEY der Tabelle auf die Zeitstempel-Feld. Dies ermöglicht es jedem Slice, Daten parallel zu verarbeiten, während irrelevante Plattenblöcke übersprungen werden. Verwenden Sie keinen Datumswert für das DISTKEY - dies würde dazu führen, dass nur ein Slice die Abfrage ausführt und langsamer ausgeführt wird. Setzen Sie stattdessen Ihren DISTKEY auf das, was Sie am häufigsten verwenden, um diese Tabelle mit anderen Tabellen (z. B. Kunden-ID) zu verbinden.

+0

Vielen Dank für die ausführliche Erklärung. Könnten Sie mir bitte erklären, wie Daten über mehrere Knoten verteilt sind? Und wie kann der Verteilungsstil die Leistung beeinflussen? – imVJ

+0

Dokumentation: [Wählen Sie den besten Verteilungsstil] (https://docs.aws.amazon.com/redshift/latest/dg/c_best-practices-best-dist-key.html) & [Verteilungsbeispiele] (https://docs.aws.amazon.com/redshift/latest/dg/c_Distribution_examples.html). Ich empfehle auch die [Redshift-Präsentation von AWS Summit] (https://aws.amazon.com/summits/sydney/on-demand/), die eine gute visuelle Analogie für die Datenverteilung bietet. –

Verwandte Themen