Implementieren von automatischem WLM - Amazon Redshift

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.

Implementieren von automatischem WLM

Anhand des automatischen Workload Management (WLM) verwaltet Amazon Redshift die Abfragenebenläufigkeit sowie die Speicherzuweisung. Sie können bis zu acht Warteschlangen mit den Serviceklassen-IDs 100 bis 107 erstellen. Jede Warteschlange besitzt eine Priorität. Weitere Informationen finden Sie unter Abfragepriorität.

Das automatische WLM legt die Menge der Ressourcen fest, die von Abfragen benötigt werden, und passt die Nebenläufigkeit entsprechend dem Workload an. Befinden sich Abfragen im System, die große Mengen an Ressourcen benötigen (z. B. Hash-Joins zwischen großen Tabellen), ist die Nebenläufigkeit geringer. Werden leichtere Abfragen (wie Einfügen, Löschen, Scannen oder einfache Aggregationen) übermittelt, ist die Nebenläufigkeit höher.

Das automatische WLM unterscheidet sich von der Short Query Acceleration (SQA) und wertet Abfragen auf andere Weise aus. Automatisches WLM und SQA arbeiten zusammen, damit kurz ausgeführte und einfache Abfragen abgeschlossen werden können, auch wenn ressourcenintensive Abfragen aktiv sind. Weitere Informationen zu SQA finden Sie unter Arbeiten mit Short Query Acceleration.

Amazon Redshift ermöglicht automatisches WLM über Parametergruppen:

  • Wenn Ihre Cluster die Standardparametergruppe verwenden, aktiviert Amazon Redshift das automatische WLM für sie.

  • Wenn Ihre Cluster benutzerdefinierte Parametergruppen verwenden, können Sie diese Cluster für die Unterstützung des automatischen WLM konfigurieren. Sie sollten eine eigene Parametergruppe für Ihre Konfiguration des automatischen WLM verwenden.

Um WLM zu konfigurieren, bearbeiten Sie den Parameter wlm_json_configuration in einer Parametergruppe, die mit einem oder mehreren Clustern verknüpft werden kann. Weitere Informationen finden Sie unter Modifizieren der WLM-Konfiguration.

Sie können Abfragewarteschlangen innerhalb der WLM-Konfiguration definieren. Sie können der WLM-Standardkonfiguration weitere Abfragewarteschlangen (bis zu acht Benutzerwarteschlangen) hinzufügen. Für jede Abfragewarteschlange kann Folgendes konfiguriert werden:

  • Priorität

  • Nebenläufigkeitsskalierungsmodus

  • Benutzergruppen

  • Abfragegruppen

  • Abfrageüberwachungsregeln

Priorität

Sie können die relative Wichtigkeit der Abfragen in einem Workload definieren, indem Sie einen Prioritätswert festlegen. Die Priorität wird für eine Warteschlange angegeben und von allen Abfragen geerbt, die mit der Warteschlange verknüpft sind. Weitere Informationen finden Sie unter Abfragepriorität.

Nebenläufigkeitsskalierungsmodus

Bei aktivierter Nebenläufigkeitsskalierung fügt Amazon Redshift automatisch zusätzliche Cluster-Kapazität hinzu, wenn diese benötigt wird, um eine gestiegene Zahl von gleichzeitigen Lese- und Schreibabfragen zu verarbeiten. Ihre Benutzer sehen stets die jeweils aktuellen Daten, unabhängig davon, ob die Abfragen auf dem Haupt- oder einem Nebenläufigkeitsskalierungs-Cluster ausgeführt werden.

Sie können verwalten, welche Abfragen an das Nebenläufigkeitsskalierungs-Cluster gesendet werden, indem Sie WLM-Warteschlangen konfigurieren. Wenn die Nebenläufigkeitsskalierung für eine Warteschlange aktiviert ist, werden entsprechend qualifizierte Abfragen an das Nebenläufigkeitsskalierungs-Cluster übermittelt, anstatt in einer Warteschlange zu warten. Weitere Informationen finden Sie unter Arbeiten mit Nebenläufigkeitsskalierung.

Benutzergruppen

Sie können einer Warteschlange einen Satz von Benutzergruppen zuweisen, indem Sie die einzelnen Namen der Benutzergruppen angeben oder Platzhalter verwenden. Wenn ein Mitglied einer aufgeführten Benutzergruppe eine Abfrage ausführt, wird diese in der entsprechenden Warteschlange ausgeführt. Es gibt keine Grenze für die Anzahl der Benutzergruppen, die einer Warteschlange zugewiesen werden können. Weitere Informationen finden Sie unter Zuweisen von Abfragen zu Warteschlangen auf der Grundlage von Benutzergruppen.

Abfragegruppen

Sie können einer Warteschlange einen Satz von Abfragegruppen zuweisen, indem Sie die einzelnen Namen der Abfragegruppen angeben oder Platzhalter verwenden. Eine Abfragegruppe ist einfach eine Beschriftung. Während der Laufzeit können Sie die Beschriftung der Abfragegruppe einer Serie von Abfragen zuweisen. Alle einer aufgeführten Abfragegruppe zugewiesenen Abfragen werden in der entsprechenden Warteschlange ausgeführt. Es gibt keine Grenze für die Anzahl der Abfragegruppen, die einer Warteschlange zugewiesen werden können. Weitere Informationen finden Sie unter Zuweisen einer Abfrage zu einer Abfragegruppe.

Platzhalter

Wenn in der WLM-Warteschlangenkonfiguration Platzhalter aktiviert sind, können Sie Benutzergruppen und Abfragegruppen einzeln oder mithilfe von Platzhaltern im Unix-Shell-Typ einer Warteschlange zuweisen. Der Musterabgleich beachtet die Groß- und Kleinschreibung.

So entspricht beispielsweise das Platzhalterzeichen „*“ einer beliebigen Anzahl von Zeichen. Wenn Sie dementsprechend dba_* zur Liste der Benutzergruppen für eine Warteschlange hinzufügen, wird dieser Warteschlange jede Benutzerabfrage zugeordnet, die zu einer Gruppe gehört, deren Name mit dba_ beginnt. Beispiele sind dba_admin oder DBA_primary. Das Platzhalterzeichen „?“ entspricht einem einzelnen Zeichen. Wenn die Warteschlange also die Benutzergruppe dba?1enthält, dann passen die Benutzergruppen mit Namen dba11 und dba21, dba12 jedoch nicht.

Standardmäßig sind Platzhalter nicht aktiviert.

Abfrageüberwachungsregeln

Sie können auf Metriken basierende Leistungsgrenzen für WLM-Warteschlangen definieren und angeben, welche Aktion durchgeführt werden soll, wenn eine Abfrage diese Grenzwerte überschreitet. So können Sie etwa für eine für kurze Abfragen dedizierte Warteschlange eine Regel erstellen, die Abfragen abbricht, die länger als 60 Sekunden ausgeführt werden. Zur Nachverfolgung schlecht gestalteter Abfragen können Sie eine weitere Regel verwenden, die Abfragen mit eingebetteten Schleifen protokolliert. Weitere Informationen finden Sie unter WLM-Abfrageüberwachungsregeln.

Überprüfen auf automatisches WLM

Führen Sie die folgende Abfrage aus, um zu überprüfen, ob das automatische WLM aktiviert ist. Wenn für die Abfrage mindestens eine Zeile zurückgegeben wird, ist das automatische WLM aktiviert.

select * from stv_wlm_service_class_config where service_class >= 100;

Die folgende Abfrage zeigt die Anzahl der Abfragen, die die einzelnen Abfragewarteschlangen durchlaufen haben (Service-Klasse). Sie zeigt zudem die durchschnittliche Ausführungsdauer, die Anzahl der Abfragen mit einer Wartezeit ab der 90. Perzentile und die durchschnittliche Wartezeit. Automatische WLM-Abfragen verwenden die Serviceklassen 100 bis 107.

select final_state, service_class, count(*), avg(total_exec_time), percentile_cont(0.9) within group (order by total_queue_time), avg(total_queue_time) from stl_wlm_query where userid >= 100 group by 1,2 order by 2,1;

Um herauszufinden, welche Abfragen von dem automatischen WLM ausgeführt und erfolgreich abgeschlossen wurden, führen Sie die folgende Abfrage aus.

select a.queue_start_time, a.total_exec_time, label, trim(querytxt) from stl_wlm_query a, stl_query b where a.query = b.query and a.service_class >= 100 and a.final_state = 'Completed' order by b.query desc limit 5;