Cheat Sheet für die Übersetzung von SQL in Kusto

Kusto unterstützt einen Teilbereich der SQL-Programmiersprache. Die vollständige Liste der nicht unterstützten Funktionen finden Sie unter Bekannte SQL-Probleme.

Die primäre Sprache für die Interaktion mit Kusto ist KQL (Kusto Query Language). Um den Übergang und den Lernvorgang zu vereinfachen, können Sie Kusto verwenden, um SQL-Abfragen in KQL zu übersetzen. Senden Sie eine SQL-Abfrage an Kusto, und stellen sie ihr das Verb „EXPLAIN“ voran.

Zum Beispiel:

EXPLAIN 
SELECT COUNT_BIG(*) as C FROM StormEvents 
Abfrage
StormEvents
| zusammenfassung C=count()
| Projekt C

Cheat Sheet für die Übersetzung von SQL in Kusto

Die folgende Tabelle zeigt Beispielabfragen in SQL und ihre KQL-Entsprechungen.

Category SQL-Abfrage Kusto-Abfrage
Auswählen von Daten aus einer Tabelle SELECT * FROM dependencies dependencies
-- SELECT name, resultCode FROM dependencies dependencies | project name, resultCode
-- SELECT TOP 100 * FROM dependencies dependencies | take 100
Null-Auswertung SELECT * FROM-Abhängigkeiten
WHERE resultCode IS NOT NULL
Abhängigkeiten
| where isnotnull(resultCode)
Vergleichsoperatoren (Datum) SELECT * FROM-Abhängigkeiten
WHERE timestamp > getdate()-1
Abhängigkeiten
| wo Zeitstempel > vor(1d)
-- SELECT * FROM-Abhängigkeiten
WO Zeitstempel ZWISCHEN ... UND...
Abhängigkeiten
| wobei Zeitstempel zwischen (Datetime(2016-10-01) .. datetime(2016-11-01))
Vergleichsoperatoren (Zeichenfolge) SELECT * FROM-Abhängigkeiten
WHERE type = "Azure blob"
Abhängigkeiten
| wo typ == "Azure blob"
-- -- Unterzeichenfolge
SELECT * FROM-Abhängigkeiten
WHERE-Typ wie "%blob%"
Teilzeichenfolge
dependencies
| wobei der Typ "blob" enthält
-- -- Wildcard
SELECT * FROM-Abhängigkeiten
WHERE-Typ wie "Azure%"
Platzhalter
dependencies
| wo der Typ mit "Azure" beginnt
Oder
dependencies
| wobei der Typ regex "^Azure.*" entspricht
Vergleich (Boolesch) SELECT * FROM-Abhängigkeiten
WO! (Erfolg)
Abhängigkeiten
| wo Erfolg == "False"
Gruppierung, Aggregation SELECT name, AVG(duration) FROM abhängigkeiten
GRUPPIEREN NACH Name
Abhängigkeiten
| zusammenfassung avg(duration) nach Name
Distinct SELECT DISTINCT name, type FROM dependencies Abhängigkeiten
| Zusammenfassung nach Name, Typ
-- SELECT-Name, COUNT(DISTINCT-Typ)
FROM-Abhängigkeiten
GRUPPIEREN NACH Name
-Abhängigkeiten
| Zusammenfassen nach Name, Typ | Zusammenfassen der Anzahl() nach Name
oder ungefähr für große Mengen
dependencies
| zusammenfassung dcount(type) nach Name
Spaltenaliase, Erweitern SELECT operationName as Name, AVG(duration) as AvgD FROM abhängigkeiten
GRUPPIEREN NACH Name
Abhängigkeiten
| zusammenfassung AvgD = avg(duration) by Name=operationName
-- SELECT conference, CONCAT(sessionid, ' ' , session_title) AS session FROM ConferenceSessions KonferenzSessions
| erweiterungssitzung=strcat(sessionid, " ", session_title)
| Projektkonferenz, Sitzung
Sortieren SELECT-Name, Zeitstempel VON Abhängigkeiten
ORDER BY timestamp ASC
Abhängigkeiten
| Projektname, Zeitstempel
| Reihenfolge nach Zeitstempel asc nulls zuletzt
Top n nach Measure SELECT TOP 100 Name, COUNT(*) als Anzahl VON Abhängigkeiten
GRUPPIEREN NACH Name
ORDER BY Count DESC
Abhängigkeiten
| Summenanzahl = Anzahl() nach Name
| Top 100 nach Anzahl desc
Union SELECT * FROM-Abhängigkeiten
UNION
SELECT * FROM ausnahmen
union dependencies, exceptions
-- SELECT * FROM-Abhängigkeiten
WO Zeitstempel > ...
UNION
SELECT * FROM-Ausnahmen
WO Zeitstempel > ...
Abhängigkeiten
| wo Zeitstempel > vor(1d)
| Union
  (Ausnahmen
  | wo Zeitstempel > vor(1d))
Join SELECT * FROM-Abhängigkeiten
LEFT OUTER JOIN-Ausnahme
ON dependencies.operation_Id = exceptions.operation_Id
Abhängigkeiten
| Join kind = leftouter
  (Ausnahmen)
on $left.operation_Id == $right.operation_Id
Geschachtelte Abfragen SELECT * FROM-Abhängigkeiten
WHERE resultCode ==
(SELECT TOP 1 resultCode FROM-Abhängigkeiten
WHERE resultId = 7
ORDER BY timestamp DESC)
Abhängigkeiten
| where resultCode == toscalar(
  dependencies
  | where resultId == 7
  | Top 1 nach Zeitstempel desc
  | Project resultCode)
Having SELECT COUNT(*) FROM dependencies
GRUPPIEREN NACH Name
ANZAHL(*) > 3
Abhängigkeiten
| count = count() by name
| Wobei Anzahl > 3