Arbeiten mit Short Query Acceleration - 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.

Arbeiten mit Short Query Acceleration

Wenn Sie Short Query Acceleration (SQA) verwenden, werden ausgewählte, kurze Abfragen gegenüber Abfragen mit einer höheren Dauer priorisiert. SQA führt kurze Abfragen an einer dedizierten Stelle aus, sodass SQA-Abfragen nicht hinter längeren Abfragen in Warteschlangen eingereiht werden. SQA priorisiert nur Warteschlangen, die über eine kurze Zeit ausgeführt werden und sich in einer benutzerdefinierten Warteschlange befinden. Mit SQA werden kürzere Abfragen schneller ausgeführt und der Benutzer sieht schneller Ergebnisse.

Wenn Sie SQA aktivieren, können Sie dedizierte Workload Management (WLM)-Warteschlangen für kurze Abfragen reduzieren. Außerdem konkurrieren lange Abfragen nicht mit kurzen Abfragen um Slots in einer Warteschlange, daher können Sie Ihre WLM-Warteschlangen mit weniger Abfrage-Slots konfigurieren. Wenn Sie einen niedrigeren Nebenläufigkeitswert verwenden, wird bei den meisten Arbeitslasten der Abfragedurchsatz erhöht und die gesamte Systemleistung verbessert.

CREATE TABLE AS (CTAS)-Anweisungen und schreibgeschützte Abfragen wie SELECT-Anweisungen sind für SQA qualifiziert.

Amazon Redshift verwendet einen Machine-Learning-Algorithmus, um berechtigte Abfragen zu analysieren und die Ausführungsdauer der Abfrage abzuschätzen. Standardmäßig weist WLM dynamisch einen Wert für die maximale SQA-Laufzeit zu, basierend auf der Analyse des Cluster-Workloads. Alternativ können Sie einen festen Wert von 1–20 Sekunden angeben. Wenn die prognostizierte Laufzeit der Abfrage geringer ist als die definierte oder dynamisch zugewiesene maximale SQA-Laufzeit und die Abfrage in einer WLM-Warteschlange wartet, separiert SQA die Abfrage von den WLM-Warteschlangen und plant sie für die vorrangige Ausführung. Wenn eine Abfrage länger als die maximale SQA-Laufzeit ausgeführt wird, verschiebt WLM die Abfrage entsprechend den WLM-Warteschlangenzuweisungsregeln in die erste übereinstimmende WLM-Warteschlange. Mit der Zeit werden die Voraussagen besser, da SQA aus den Abfragemustern lernt.

SQA ist in der Standardparametergruppe und für alle neuen Parametergruppen standardmäßig aktiviert. Um SQA in der Amazon-Redshift-Konsole zu deaktivieren, bearbeiten Sie die WLM-Konfiguration für eine Parametergruppe und deaktivieren Enable short query acceleration (Short Query Acceleration aktivieren). Wir empfehlen, üblicherweise höchstens 15 WLM-Abfrage-Slots zu verwenden, um die Systemleistung zu optimieren. Weitere Informationen zum Ändern von WLM-Konfigurationen finden Sie unter Konfigurieren von Workload Management im Amazon-Redshift-Verwaltungshandbuch.

Maximale Ausführungszeit für kurze Abfragen

Wenn Sie SQA aktivieren, legt WLM die maximale Ausführungszeit für kurze Abfragen standardmäßig als „dynamisch“ fest. Sie sollten die dynamische Einstellung für die maximale SQA-Laufzeit beibehalten. Sie können die Standardeinstellung überschreiben, indem Sie einen festen Wert von 1–20 Sekunden angeben.

In einigen Fällen sollten Sie möglicherweise die Verwendung anderer Werte für die maximale SQA-Laufzeit in Betracht ziehen, um die Leistung des Systems zu verbessern. Analysieren Sie in solchen Fällen den Workload, um die maximale Ausführungsdauer der meisten kürzeren Abfragen zu bestimmen. Die folgende Abfrage gibt die maximale Laufzeit für Abfragen mit ungefähr der 70. Perzentile zurück.

select least(greatest(percentile_cont(0.7) within group (order by total_exec_time / 1000000) + 2, 2), 20) from stl_wlm_query where userid >= 100 and final_state = 'Completed';

Nachdem Sie für Ihren Workload eine geeignete maximale Laufzeit festgelegt haben, müssen Sie diese nur ändern, wenn der Workload erheblich geändert wird.

SQA-Überwachung

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

select * from stv_wlm_service_class_config where service_class = 14;

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. SQA-Abfragen in Serviceklasse 14.

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 SQA abgeholt 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 = 14 and a.final_state = 'Completed' order by b.query desc limit 5;

Um herauszufinden, welche Abfragen von SQA abgeholt wurden, aber einen Timeout hatten, 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 = 14 and a.final_state = 'Evicted' order by b.query desc limit 5;

Weitere Informationen zu bereinigten Abfragen und allgemein zu regelbasierten Aktionen, die auf Abfragen angewendet werden können, finden Sie unter WLM-Abfrageüberwachungsregeln.