Für die Abfrageleistung relevante Faktoren - Amazon Redshift

Amazon Redshift unterstützt UDFs ab Patch 198 nicht mehr die Erstellung von neuem Python. Das bestehende Python UDFs wird bis zum 30. Juni 2026 weiterhin funktionieren. Weitere Informationen finden Sie im Blog-Posting.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Für die Abfrageleistung relevante Faktoren

Die Abfrageleistung kann durch eine Reihe von Faktoren beeinflusst werden. Wie schnell Ihre Abfragen ausgeführt werden, hängt von den folgenden Aspekten Ihrer Daten, Cluster und Datenbankoperationen ab.

  • Anzahl der Knoten, Prozessoren oder Slices – Ein Rechenknoten wird in Slices aufgeteilt. Mehr Knoten bedeuten auch mehr Prozessoren und mehr Slices; dadurch können Abfragen schneller verarbeitet werden, weil mehr Teile der Abfrage gleichzeitig auf die Slices verteilt werden können. Mehr Knoten bedeuten jedoch auch, dass die Kosten für Verwaltungsoperationen höher sind. Es muss also bei der Anzahl der zu verwendenden Slices auf ein für Ihr System ausgewogenes Verhältnis zwischen Kosten und Leistung geachtet werden. Weitere Informationen zur Amazon-Redshift-Clusterarchitektur finden Sie unter Architektur des Data Warehouse-Systems.

  • Knotentypen – Ein Amazon-Redshift-Cluster kann einen von mehreren Knotentypen verwenden. Die verschiedenen Knotentypen sind in verschiedenen Größen und mit unterschiedlichen Grenzwerten verfügbar, was eine geeignete Skalierung Ihres Clusters ermöglicht. Die Knotengröße bestimmt die Speicherkapazität, den Arbeitsspeicher, die CPU und den Preis für die einzelnen Knoten in dem Cluster. Weitere Informationen zu den einzelnen Knotentypen finden Sie unter Übersicht über Amazon-Redshift-Cluster im Amazon-Redshift-Verwaltungshandbuch.

  • Datenverteilung – Amazon Redshift speichert Tabellendaten in den Rechenknoten entsprechend dem Verteilungsstil der Tabelle. Wenn sie eine Abfrage ausführen, führt der Abfrageoptimierer nach Bedarf eine Neuverteilung der Daten auf die Datenverarbeitungsknoten durch, um Join- oder Aggregierungsoperationen durchführen zu können. Durch die Auswahl eines geeigneten Tabellenverteilungsstils können die Auswirkungen des Neuverteilungsschritts dadurch minimiert werden, dass die Daten dort platziert sind, wo sie benötigt werden, bevor die Join-Operationen ausgeführt werden. Weitere Informationen finden Sie unter Datenverteilung zur Abfrageoptimierung.

  • Datensortierreihenfolge – Amazon Redshift speichert die Tabellendaten auf der Festplatte in sortierter Form gemäß den Sortierschlüsseln einer Tabelle. Der Abfrageoptimierer und der Abfrageprozessor nutzen Informationen dazu, an welcher Stelle die Daten gespeichert sind, aus, um die Anzahl der zu scannenden Blöcke zu verringern und so die Ausführungsgeschwindigkeit der Abfrage zu verbessern. Weitere Informationen finden Sie unter Sortierschlüssel.

  • Datensatzgröße – Eine größere Datenmenge im Cluster kann Abfragen verlangsamen, da mehr Zeilen gescannt und neu verteilt werden müssen. Sie können diese Effekt verringern, indem Sie die Daten regelmäßig komprimieren und archivieren, aber auch indem Sie mit einem Prädikat das Dataset für die Abfrage beschränken.

  • Gleichzeitige Operationen – Die gleichzeitige Ausführung mehrerer Operationen kann die Abfrageleistung beeinträchtigen. Jede Operation belegt einen oder mehrere Plätze in einer verfügbaren Abfragewarteschlange und verbraucht den Speicher für diese Plätze. Wenn gleichzeitig weitere Operationen ausgeführt werden, sind möglicherweise nicht genügend Plätze in Abfragewarteschlangen verfügbar. In diesem Fall kann die Abfrage erst dann verarbeitet werden, wenn wieder Plätze verfügbar sind. Weitere Informationen zum Erstellen und Konfigurieren von Abfragewarteschlangen finden Sie unter Workload-Management.

  • Abfragestruktur – Die Abfrageleistung richtet sich auch danach, wie Ihre Abfrage geschrieben ist. Achten Sie bei der Formulierung von Abfragen darauf, dass jeweils so wenig Daten wie möglich und nur so viele Daten wie nötig verarbeitet und zurückgegeben werden. Weitere Informationen finden Sie unter Bewährte Methoden für die Gestaltung von Abfragen mit Amazon Redshift.

  • Codekompilierung — Amazon Redshift generiert und kompiliert optimierten Code für jeden Abfrageausführungsplan. Der kompilierte Code wird schneller ausgeführt, weil der Verwaltungsaufwand für den Interpreter entfällt. Um die Latenz für neue Abfragen zu minimieren und gleichzeitig die Leistungsvorteile von kompiliertem Code zu erhalten, verwendet Amazon Redshift eine Technik, die als Komposition bezeichnet wird. Die Komposition generiert eine einfache Anordnung bereits vorhandener Logik, um neue Abfragen sofort zu verarbeiten und gleichzeitig hochoptimierten, abfragespezifischen Code im Hintergrund zu kompilieren. Dadurch wird die Kompilierung aus dem kritischen Pfad der Abfrageausführung entfernt, sodass neue Abfragen schneller gestartet werden und eine Leistung bieten, die mit nachfolgenden Ausführungen konsistent ist.

    Amazon Redshift verwendet auch einen serverlosen Kompilierungsservice, um Abfragekompilierungen über die Rechenressourcen eines Amazon Redshift Redshift-Clusters hinaus zu skalieren. Kompilierte Codesegmente werden sowohl lokal auf dem Cluster als auch in einem praktisch unbegrenzten Remote-Cache zwischengespeichert, der auch nach einem Neustart des Clusters erhalten bleibt. Nachfolgende Ausführungen derselben Abfrage werden schneller ausgeführt, da sie die Kompilierungsphase überspringen. Durch die Verwendung eines skalierbaren Kompilierungsdienstes kompiliert Amazon Redshift Code parallel, um eine gleichbleibend schnelle Leistung zu gewährleisten.