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.
Architekturkomponenten eines Amazon Redshift Data Warehouse
Wir empfehlen, dass Sie über ein grundlegendes Verständnis der Kernarchitekturkomponenten in einem Amazon Redshift Data Warehouse verfügen. Dieses Wissen kann Ihnen helfen, besser zu verstehen, wie Sie Ihre Abfragen und Tabellen für eine optimale Leistung entwerfen können.
Ein Data Warehouse in Amazon Redshift besteht aus den folgenden Kernarchitekturkomponenten:
-
Cluster — Ein Cluster, der aus einem oder mehreren Rechenknoten besteht, ist die zentrale Infrastrukturkomponente eines Amazon Redshift Data Warehouse. Rechenknoten sind für externe Anwendungen transparent, aber Ihre Client-Anwendung interagiert nur direkt mit dem Leader-Knoten. Ein typischer Cluster hat zwei oder mehr Rechenknoten. Die Rechenknoten werden über den Leader-Knoten koordiniert.
-
Leader-Node — Ein Leader-Node verwaltet die Kommunikation für Client-Programme und alle Rechenknoten. Ein Leader-Node bereitet auch die Pläne für die Ausführung einer Abfrage vor, wann immer eine Anfrage an einen Cluster gesendet wird. Wenn die Pläne fertig sind, kompiliert der Leader-Knoten den Code, verteilt den kompilierten Code an die Rechenknoten und weist dann jedem Rechenknoten Datensegmente zu, um die Abfrageergebnisse zu verarbeiten.
-
Rechenknoten — Ein Rechenknoten führt eine Abfrage aus. Der Leader-Knoten kompiliert Code für einzelne Elemente des Plans zur Ausführung der Abfrage und weist den Code einzelnen Rechenknoten zu. Die Datenverarbeitungsknoten führen den kompilierten Code aus und senden Zwischenergebnisse zur endgültigen Aggregation an den Führungsknoten zurück. Jeder Rechenknoten hat seine eigene dedizierte CPU, seinen eigenen Arbeitsspeicher und seinen eigenen Festplattenspeicher. Bei zunehmendem Workload können Sie die Rechenkapazität und Speicherkapazität eines Clusters steigern, indem sie die Anzahl der Knoten erhöhen, ein Upgrade des Knotentyps ausführen oder beides.
-
Node Slice — Ein Rechenknoten ist in Einheiten unterteilt, die als Slices bezeichnet werden. Jedem Slice in einem Rechenknoten wird ein Teil des Arbeitsspeicher- und Festplattenspeichers des Knotens zugewiesen, wo er einen Teil der dem Knoten zugewiesenen Arbeitslast verarbeitet. Die Slices arbeiten dann parallel, um die Operation abzuschließen. Die Daten werden auf der Grundlage des Verteilungsstils und des Verteilungsschlüssels einer bestimmten Tabelle auf die Bereiche verteilt. Eine gleichmäßige Verteilung der Daten ermöglicht es Amazon Redshift, Workloads gleichmäßig Slices zuzuweisen und die Vorteile der Parallelverarbeitung zu maximieren. Die Anzahl der Slices pro Rechenknoten wird auf der Grundlage des Knotentyps festgelegt. Weitere Informationen finden Sie unter Cluster und Knoten in Amazon Redshift in der Amazon Redshift Redshift-Dokumentation.
-
Massive Parallelverarbeitung (MPP) — Amazon Redshift verwendet die MPP-Architektur, um Daten schnell zu verarbeiten, selbst komplexe Abfragen und riesige Datenmengen. Mehrere Rechenknoten führen denselben Abfragecode für Teile von Daten aus, um die Parallelverarbeitung zu maximieren.
-
Client-Anwendung — Amazon Redshift lässt sich in verschiedene Tools zum Laden, Extrahieren, Transformieren und Laden (ETL), Business Intelligence (BI), Data Mining und Analysetools integrieren. Alle Client-Anwendungen kommunizieren nur über den Leader-Knoten mit dem Cluster.
Das folgende Diagramm zeigt, wie die Architekturkomponenten eines Amazon Redshift Data Warehouse zusammenarbeiten, um Abfragen zu beschleunigen.
Es gibt sieben Phasen des Abfragelebenszyklus:
-
Empfang und Analyse von Abfragen:
-
Die Abfrage wird an den Führungsknoten übermittelt und dort geparst.
-
Der Parser erzeugt einen anfänglichen Abfragebaum, der die logische Struktur der ursprünglichen Abfrage darstellt.
-
Amazon Redshift speist diesen Abfragebaum in den Abfrageoptimierer ein.
-
-
Abfrageoptimierung:
-
Der Optimierer wertet die Abfrage aus und schreibt sie gegebenenfalls neu, um die Effizienz zu maximieren.
-
Dieser Optimierungsprozess kann das Erstellen mehrerer verwandter Abfragen beinhalten, um eine einzelne zu ersetzen.
-
-
Generierung des Abfrageplans:
-
Der Optimierer generiert einen Abfrageplan (oder mehrere Pläne, falls erforderlich) zur Ausführung.
-
Der Abfrageplan spezifiziert Ausführungsoptionen wie Join-Typen, Join-Reihenfolge, Aggregationsmethoden und Anforderungen an die Datenverteilung.
-
-
Übersetzung der Ausführungs-Engine:
-
Die Ausführungs-Engine übersetzt den Abfrageplan in einzelne Schritte, Segmente und Streams:
-
Schritt — Stellt einen einzelnen Vorgang dar, der während der Abfrageausführung erforderlich ist. Die Schritte können kombiniert werden, sodass Rechenknoten Abfragen, Verknüpfungen oder andere Datenbankoperationen ausführen können.
-
Segment — Kombiniert mehrere Schritte, die ein einzelner Prozess ausführen kann. Es ist die kleinste Kompilierungseinheit, die von einem Compute-Node-Slice ausgeführt werden kann. (Ein Slice ist die Einheit der Parallelverarbeitung in Amazon Redshift.)
-
Stream — Eine Sammlung von Segmenten, die auf verfügbare Rechenknotenbereiche verteilt sind.
-
-
Die Execution Engine generiert kompilierten Code auf der Grundlage dieser Schritte, Segmente und Streams. Kompilierter Code wird schneller ausgeführt als interpretierter Code und verbraucht weniger Rechenkapazität.
-
Der Leader-Knoten überträgt den kompilierten Code an die Rechenknoten.
-
-
Parallele Ausführung:
-
Dieser Schritt erfolgt einmal für jeden Stream.
-
Compute Node Slices führt Abfragesegmente parallel aus.
-
Während dieses Vorgangs optimiert Amazon Redshift die Netzwerkkommunikation, die Speichernutzung und die Festplattenverwaltung, um Zwischenergebnisse von einem Abfrageplanschritt zum nächsten weiterzuleiten.
-
Diese Optimierung trägt zu einer schnelleren Abfrageausführung bei.
-
-
Stream-Verarbeitung:
-
Dieser Schritt erfolgt einmal für jeden Stream.
-
Die Engine erstellt für jeden Stream ausführbare Segmente für eine effiziente Parallelverarbeitung.
-
-
Endgültige Sortierung und Aggregation:
-
Der Leader-Knoten befasst sich mit allen abschließenden Sortierungs- oder Aggregationsvorgängen, die für die Abfrage erforderlich sind.
-
Nach Abschluss des Vorgangs gibt der Leader-Knoten die Ergebnisse an den Client zurück.
-
Informationen zu Architekturkomponenten finden Sie unter Data Warehouse-Systemarchitektur in der Amazon Redshift Redshift-Dokumentation.