SQL-Inferenz - Amazon CloudWatch

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.

SQL-Inferenz

CloudWatch Metrics Insights verwendet mehrere Mechanismen, um auf die Absicht einer bestimmten SQL-Abfrage zu schließen.

Zeit-Bucketing

Zeitreihendatenpunkte, die sich aus einer Abfrage ergeben, werden basierend auf dem angeforderten Zeitraum in Zeitbuckets zusammengeführt. Um Werte in Standard-SQL zu aggregieren, muss eine explizite GROUP BY-Klausel definiert werden, um alle Beobachtungen eines bestimmten Zeitraums zusammen zu sammeln. Da dies die Standardmethode für die Abfrage von Zeitreihendaten ist, leitet CloudWatch Metrics Insights eine Zeitspanne ab, ohne dass eine explizite GROUP BY-Klausel ausgedrückt werden muss.

Wenn beispielsweise eine Abfrage mit einem Zeitraum von einer Minute ausgeführt wird, werden alle Beobachtungen, die zu dieser Minute bis zur nächsten (ausgeschlossen) gehören, bis zur Startzeit des Zeitbuckets zusammengeführt. Dies macht Metrics-Insights-SQL-Anweisungen prägnanter und weniger ausführlich.

SELECT AVG(CPUUtilization) FROM SCHEMA("AWS/EC2", InstanceId)

Die vorherige Abfrage gibt eine einzelne Zeitreihe (Zeitstempel-Wert-Paare) zurück, die die durchschnittliche CPU-Auslastung aller Amazon-EC2-Instances darstellt. Unter der Annahme, dass der angeforderte Zeitraum eine Minute beträgt, stellt jeder zurückgegebene Datenpunkt den Durchschnitt aller Beobachtungen dar, die innerhalb eines bestimmten Intervalls von einer Minute gemessen werden (Startzeit inklusive, Endzeit exklusiv). Der Zeitstempel, der sich auf den spezifischen Datenpunkt bezieht, ist die Startzeit des Buckets

Projektion von Feldern

Metrics-Insights-Abfragen geben immer die Zeitstempelprojektion zurück. Sie müssen keine Zeitstempelspalte in der SELECT-Klausel angeben, um den Zeitstempel jedes entsprechenden Datenpunktwerts abzurufen. Weitere Informationen dazu, wie der Zeitstempel berechnet wird, finden Sie unter Zeit-Bucketing.

Bei Verwendung von GROUP BY wird jeder Gruppenname ebenfalls abgeleitet und im Ergebnis projiziert, sodass Sie die zurückgegebenen Zeitreihen gruppieren können.

SELECT AVG(CPUUtilization) FROM SCHEMA("AWS/EC2", InstanceId) GROUP BY InstanceId

Die vorherige Abfrage gibt eine Zeitreihe für jede Amazon-EC2-Instance zurück. Jede Zeitreihe wird nach dem Wert der Instance-ID beschriftet.

SORTIEREN NACH globaler Aggregation

Wenn Sie ORDER BY verwenden, leitet FUNCTION() ab, nach welcher Aggregatfunktion Sie sortieren möchten (die Datenpunktwerte der abgefragten Metriken). Der Aggregatvorgang wird über alle übereinstimmenden Datenpunkte jeder einzelnen Zeitreihe im abgefragten Zeitfenster ausgeführt.

SELECT AVG(CPUUtilization) FROM SCHEMA("AWS/EC2", InstanceId) GROUP BY InstanceId ORDER BY MAX() LIMIT 10

Die vorherige Abfrage gibt die CPU-Auslastung für jede Amazon-EC2-Instance zurück und beschränkt die Ergebnismenge auf 10 Einträge. Die Ergebnisse werden basierend auf dem Maximalwert der einzelnen Zeitreihe innerhalb des angeforderten Zeitfensters sortiert. Die ORDER BY-Klausel wird vor LIMIT angewendet, damit die Sortierung mit mehr als 10 Zeitreihen berechnet wird.