
Optimierung der Abfrageleistung mit Redshift Concurrency Scaling

Einführung
Amazon Redshift ist ein starkes Data-Warehouse, das Ihnen hilft, große Datenmengen schnell zu analysieren. Mit zunehmenden Datenvolumen und steigenden Benutzeranforderungen kann die Aufrechterhaltung einer optimalen Abfrageleistung zu einer Herausforderung werden. Hier kommt Redshift Concurrency Scaling ins Spiel.
In diesem Artikel werden die Grundlagen von Redshift Concurrency Scaling behandelt, einschließlich Einrichtungskommandos und Parameter. Wir werden auch diskutieren, wie es hilft, Arbeitslasten für Hochleistungs- und Hochverfügbarkeitsanwendungen zu verteilen.
Was ist Redshift Concurrency Scaling?
Redshift Concurrency Scaling passt die Clusterkapazität für mehr gleichzeitige Leseabfragen an, was einen großen Unterschied macht. Es ändert, wie viele Abfragen Ihr Cluster gleichzeitig verarbeiten kann, und stellt sicher, dass die Antworten immer schnell und konsistent sind.
Wie funktioniert das? Redshift stellt automatisch zusätzliche temporäre Cluster bereit, wenn Concurrency Scaling aktiviert ist. Dies geschieht jedes Mal, wenn die Anzahl gleichzeitiger Benutzerabfragen den konfigurierten Warteschlangenschwellenwert überschreitet. Temporäre Cluster verarbeiten Abfragen, die Redshift nur in der Warteschlange abarbeiten kann.
Ihrem Hauptcluster können weiterhin andere Aufgaben unterbrechungsfrei zugeordnet werden. Sobald die Warteschlangenmenge unter den Schwellenwert fällt, beendet das System automatisch die temporären Cluster, um die Kosten zu optimieren.
Einrichtung von Concurrency Scaling
Um die Leistung von Redshift Concurrency Scaling zu nutzen, müssen Sie es auf Ihrem Cluster aktivieren. Hier ist, wie es geht:
1. Stellen Sie sicher, dass Ihr Cluster mit einem ra3.16xlarge oder höherem Knotentyp läuft.
2. Führen Sie den folgenden SQL-Befehl aus, um Concurrency Scaling zu aktivieren:
ALTER CLUSTER <your-cluster-name> SET CONCURRENCY SCALING ENABLED;
3. Konfigurieren Sie den Concurrency Scaling Modus mit dem SET-Befehl. Es gibt zwei verfügbare Modi:
– AUTO: Redshift verwaltet automatisch die Anzahl der temporären Cluster basierend auf der Arbeitslast. Dies ist der Standardmodus.
– MANUAL: Sie geben die maximale Anzahl der temporären Cluster an.
4. Um den Modus einzustellen, verwenden Sie den folgenden Befehl:
ALTER CLUSTER <your-cluster-name> SET CONCURRENCY SCALING MODE 'AUTO|MANUAL';
5. Wenn Sie den manuellen Modus verwenden, legen Sie die maximale Anzahl der temporären Cluster fest:
ALTER CLUSTER <your-cluster-name> SET CONCURRENCY SCALING MAX_CLUSTERS <number>;
Arbeitslastverteilung mit Abfrage-Warteschlangen
Redshift Concurrency Scaling arbeitet Hand in Hand mit Abfrage-Warteschlangen, um Arbeitslasten effizient über Ihren Cluster und temporäre Cluster zu verteilen. Abfrage-Warteschlangen ermöglichen Ihnen die Priorisierung und Verwaltung verschiedener Abfragetypen basierend auf deren Bedeutung und Ressourcenanforderungen.
Standardmäßig verfügt Redshift über eine einzige Standardwarteschlange. Sie können jedoch zusätzliche Warteschlangen erstellen, um Arbeitslasten zu trennen und zu priorisieren. Hier ist ein Beispiel für die Erstellung einer neuen Abfrage-Warteschlange:
CREATE QUEUE reporting_queue PRIORITY 5 QUERY_GROUP 'reporting';
In diesem Beispiel erstellen wir eine Berichtswarteschlange mit einer Priorität von 5. Wir verknüpfen dann die Berichtswarteschlange mit einer Abfragegruppe namens ‘reporting’. Abfragen, die an diese Warteschlange gesendet werden, haben eine höhere Priorität als diejenigen in der Standardwarteschlange.
Um Abfragen zu bestimmten Warteschlangen zu leiten, können Sie den SET-Befehl verwenden:
SET query_group TO 'reporting';
Diese Aktion setzt die aktuelle Sitzung der Abfragegruppe auf ‘reporting’, und das System leitet nachfolgende Abfragen an die zugeordnete Warteschlange weiter.
Concurrency Scaling Parameter für hohe Verfügbarkeit
Bei der Konfiguration von Redshift Concurrency Scaling für Hochverfügbarkeitsanwendungen sind mehrere Schlüsselparameter zu beachten:
- max_concurrency_scaling_clusters: Dieser Parameter gibt die maximale Anzahl temporärer Cluster an, die bereitgestellt werden können. Setzen Sie ihn basierend auf Ihren Arbeitslastanforderungen und Budgeteinschränkungen.
- concurrency_scaling_mode: Wie bereits erwähnt, bestimmt dieser Parameter, ob Concurrency Scaling automatisch oder manuell verwaltet wird.
- wlm_query_slot_count: Dieser Parameter legt die Anzahl der Abfrageslots (gleichzeitige Abfragen) pro Cluster fest. Passen Sie ihn basierend auf Ihren Arbeitslastmerkmalen und verfügbaren Ressourcen an.
- query_group: Verwenden Sie Abfragegruppen, um Abfragen zu bestimmten Warteschlangen zu leiten und kritische Arbeitslasten zu priorisieren.
Hier ist ein Beispiel für eine Konfiguration für eine Hochverfügbarkeitsumgebung:
ALTER CLUSTER <your-cluster-name> SET CONCURRENCY SCALING MAX_CLUSTERS 5; ALTER CLUSTER <your-cluster-name> SET CONCURRENCY SCALING MODE 'AUTO'; ALTER CLUSTER <your-cluster-name> SET wlm_query_slot_count 50; CREATE QUEUE critical_queue PRIORITY 10 QUERY_GROUP 'critical'; CREATE QUEUE reporting_queue PRIORITY 5 QUERY_GROUP 'reporting';
In diesem Beispiel haben wir bis zu fünf temporäre Cluster. Wir schalten auch das automatische Concurrency Scaling ein. Zusätzlich weisen wir 50 Abfrageslots pro Cluster zu. Wir erstellen zwei Warteschlangen, critical_queue und reporting_queue, mit unterschiedlichen Prioritäten, um kritische und Berichtsarbeitslasten separat zu verarbeiten.
Praxisbeispiel
Betrachten wir ein Praxisbeispiel, in dem ein E-Commerce-Unternehmen Redshift für seine Data-Warehouse-Anforderungen verwendet. Während geschäftiger Verkaufszeiten erhalten sie viele Abfragen von verschiedenen Abteilungen wie Vertrieb, Inventar und Kundenanalyse.
Um diese erhöhte Arbeitslast zu bewältigen, aktivieren sie Redshift Concurrency Scaling mit der folgenden Konfiguration:
ALTER CLUSTER ecommerce_cluster SET CONCURRENCY SCALING ENABLED; ALTER CLUSTER ecommerce_cluster SET CONCURRENCY SCALING MODE 'AUTO'; ALTER CLUSTER ecommerce_cluster SET CONCURRENCY SCALING MAX_CLUSTERS 10; CREATE QUEUE sales_analytics_queue PRIORITY 8 QUERY_GROUP 'sales_analytics'; CREATE QUEUE inventory_queue PRIORITY 6 QUERY_GROUP 'inventory'; CREATE QUEUE customer_segmentation_queue PRIORITY 4 QUERY_GROUP 'customer_segmentation';
Wenn zu viele Abfragen gleichzeitig ausgeführt werden, erstellt Redshift zusätzliche temporäre Cluster, um die Arbeitslast zu verwalten. Die Abfragen werden effizient über den Hauptcluster und temporäre Cluster verteilt, basierend auf ihren zugewiesenen Abfragegruppen und Warteschlangenprioritäten.
Als Ergebnis behält das E-Commerce-Unternehmen eine optimale Abfrageleistung während der Spitzenzeiten bei und stellt rechtzeitige Einblicke für kritische Geschäftsentscheidungen sicher. Die Abfragen zur Verkaufsanalyse erhalten die höchste Priorität, gefolgt von Lagerverwaltung und Kundenanalyseabfragen.
Fazit
Redshift Concurrency Scaling ermöglicht es Ihnen, die Kapazität Ihres Clusters anzupassen, um plötzliche Zunahmen an Abfragen effizient zu bewältigen. Durch die Nutzung von Abfrage-Warteschlangen und die Konfiguration der Ressourcenverteilung können Sie Arbeitslasten effizient verteilen und kritische Abfragen für Hochleistungs- und Hochverfügbarkeitsanwendungen priorisieren.
Denken Sie daran, bei der Konfiguration von Concurrency Scaling Faktoren wie Arbeitslastmerkmale, Ressourcenverfügbarkeit und Budget zu berücksichtigen. Mit der richtigen Einrichtung können Sie das volle Potenzial von Redshift ausschöpfen und Ihren Benutzern blitzschnelle Abfrageleistungen bieten.
Weitere Informationen zu Redshift Concurrency Scaling finden Sie in der offiziellen AWS-Dokumentation:
DataSunrise: Verbesserte Datenbanksicherheit und Compliance
Während Redshift robuste Funktionen für Leistung und Skalierbarkeit bietet, ist die Sicherstellung der Sicherheit und Compliance Ihrer Daten ebenso wichtig. DataSunrise bietet benutzerfreundliche und flexible Werkzeuge für Datenbanksicherheit, Maskierung und Compliance. Mit DataSunrise können Sie Hochverfügbarkeitskonfigurationen implementieren und Ihre sensiblen Daten schützen.
Um mehr über die Lösungen von DataSunrise zu erfahren und sie in Aktion zu sehen, besuchen Sie unsere Website und vereinbaren Sie noch heute Ihre persönliche Demonstration!