Abfragen von Daten mithilfe von T-SQL
Der Azure Data Explorer-Abfrage-Editor unterstützt die Verwendung von T-SQL zusätzlich zur primären Abfragesprache Kusto Query Language (KQL). Während KQL die empfohlene Abfragesprache ist, kann T-SQL für Tools nützlich sein, die KQL nicht verwenden können.
Hinweis
Es werden nur DQL-Befehle (Data Query Language) unterstützt. Weitere Informationen finden Sie unter Abdeckung.
Abfragen mit T-SQL
Um eine T-SQL-Abfrage auszuführen, beginnen Sie die Abfrage mit einer leeren T-SQL-Kommentarzeile: --
. Die --
Syntax weist den Abfrage-Editor an, die folgende Abfrage als T-SQL und nicht als KQL zu interpretieren.
Beispiel
--
SELECT * FROM StormEvents
T-SQL zu Kusto-Abfragesprache
Der Abfrage-Editor unterstützt die Möglichkeit, T-SQL-Abfragen in KQL zu übersetzen. Dieses Übersetzungsfeature kann für Benutzer hilfreich sein, die mit SQL vertraut sind und mehr über KQL erfahren möchten.
Um die entsprechende KQL für eine T-SQL-Anweisung SELECT
abzurufen, fügen Sie vor der Abfrage die Schlüsselwort (keyword) explain
hinzu. Die Ausgabe ist die KQL-Version der Abfrage, die hilfreich sein kann, um die entsprechende KQL-Syntax und -Konzepte zu verstehen.
Denken Sie daran, T-SQL-Abfragen mit einer T-SQL-Kommentarzeile ( ) voran zu führen, --
um den Abfrage-Editor anweisen, die folgende Abfrage als T-SQL und nicht als KQL zu interpretieren.
Beispiel
--
explain
SELECT top(10) *
FROM StormEvents
ORDER BY DamageProperty DESC
Ausgabe
StormEvents
| project
StartTime,
EndTime,
EpisodeId,
EventId,
State,
EventType,
InjuriesDirect,
InjuriesIndirect,
DeathsDirect,
DeathsIndirect,
DamageProperty,
DamageCrops,
Source,
BeginLocation,
EndLocation,
BeginLat,
BeginLon,
EndLat,
EndLon,
EpisodeNarrative,
EventNarrative,
StormSummary
| sort by DamageProperty desc nulls first
| take int(10)
Ausführen gespeicherter Funktionen
Bei verwendung von T-SQL wird empfohlen, optimierte KQL-Abfragen zu erstellen und in gespeicherten Funktionen zu kapseln, da dies T-SQL-Code minimiert und die Leistung möglicherweise erhöht. Wenn Sie beispielsweise über eine gespeicherte Funktion verfügen, wie in der folgenden Tabelle beschrieben, können Sie sie wie im Codebeispiel gezeigt ausführen.
Name | Parameter | Text | Ordner | DocString |
---|---|---|---|---|
Myfunction | (myLimit: long) | {StormEvents | take myLimit} | MyFolder | Demofunktion mit Parameter |
SELECT * FROM kusto.MyFunction(10)
Hinweis
Um zwischen gespeicherten Funktionen und emulierten gespeicherten SQL-Systemprozeduren zu unterscheiden, führen Sie gespeicherte Funktionen mit einem expliziten Verweis auf das kusto
Schema aus. Im Beispiel wird die gespeicherte Funktion mit kusto.Myfunction
ausgeführt.
Festlegen von Anforderungseigenschaften
Anforderungseigenschaften steuern, wie eine Abfrage ausgeführt wird und Ergebnisse zurückgibt. Um Anforderungseigenschaften mit T-SQL festzulegen, stellen Sie Ihrer Abfrage eine oder mehrere Anweisungen mit der folgenden Syntax voran:
Syntax
DECLARE
@__kql_set_
RequestPropertyName-Typwert=
;
Parameter
Name | Typ | Erforderlich | BESCHREIBUNG |
---|---|---|---|
requestPropertyName | string |
✔️ | Der Name der festzulegenden Anforderungseigenschaft . |
type | string |
✔️ | Der T-SQL-Datentyp des Werts. |
value | Skalar | ✔️ | Der Wert, der der Anforderungseigenschaft zugewiesen werden soll. |
Hinweis
- Zwei Anweisungen müssen durch ein Semikolon getrennt werden, und es sollte keine leere Zeile vor der Abfrage sein.
- Anforderungseigenschaften gelten nur für die anweisungen des tabellarischen Ausdrucks , die unmittelbar folgen.
Beispiele
Die folgende Tabelle enthält Beispiele zum Festlegen von Anforderungseigenschaften mit T-SQL.
Request-Eigenschaft | Beispiel |
---|---|
query_datetimescope_to |
DECLARE @__kql_set_query_datetimescope_to DATETIME = '2023-03-31 03:02:01'; |
request_app_name |
DECLARE @__kql_set_request_app_name NVARCHAR = 'kuku'; |
query_results_cache_max_age |
DECLARE @__kql_set_query_results_cache_max_age TIME = '00:05:00'; |
truncationmaxsize |
DECLARE @__kql_set_truncationmaxsize BIGINT = 4294967297; |
maxoutputcolumns |
DECLARE @__kql_set_maxoutputcolumns INT = 3001; |
notruncation |
DECLARE @__kql_set_notruncation BIT = 1; |
norequesttimeout |
DECLARE @__kql_set_norequesttimeout BIT = 0; |
Informationen zum Festlegen von Anforderungseigenschaften mit KQL finden Sie unter set-Anweisung.
Abdeckung
Azure Data Explorer bietet eingeschränkte Unterstützung für T-SQL. In der folgenden Tabelle werden die T-SQL-Anweisungen und -Features beschrieben, die nicht oder teilweise unterstützt werden.
T-SQL-Anweisung oder -Funktion | BESCHREIBUNG |
---|---|
CREATE , INSERT , DROP und ALTER |
Nicht unterstützt |
Schema- oder Datenänderungen | Nicht unterstützt |
ANY , ALL und EXISTS |
Nicht unterstützt |
WITHIN GROUP |
Nicht unterstützt |
TOP PERCENT |
Nicht unterstützt |
TOP WITH TIES |
Wird als normal ausgewertet TOP |
TRUNCATE |
Gibt den nächsten Wert zurück. |
SELECT * |
Die Spaltenreihenfolge kann von der Erwartung abweichen. Verwenden Sie Spaltennamen, wenn die Reihenfolge wichtig ist. |
AT TIME ZONE |
Nicht unterstützt |
SQL-Cursor | Nicht unterstützt |
Correlated subqueries (Korrelierte Unterabfragen) | Nicht unterstützt |
Rekursive CTEs | Nicht unterstützt |
Dynamische Anweisungen | Nicht unterstützt |
Flusssteuerungsanweisungen | Nur IF THEN ELSE Anweisungen mit einem identischen Schema für THEN und ELSE werden unterstützt. |
Doppelte Spaltennamen | Wird nicht unterstützt. Der ursprüngliche Name wird für eine Spalte beibehalten. |
Datentypen | Die zurückgegebenen Daten können sich vom Typ SQL Server unterscheiden. Beispielsweise TINYINT haben und SMALLINT keine Entsprechung in Azure Data Explorer und können als INT32 oder INT64 anstelle von BYTE oder INT16 zurückgeben. |
Verwandte Inhalte
- Informationen zur SQL Server-Emulation in Azure Data Explorer
- Verwenden von SQL zum Kusto-Abfragesprache Spickzettel
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für