Wykonywanie zapytań dotyczących danych przy użyciu języka T-SQL
Edytor zapytań usługi Azure Data Explorer obsługuje używanie języka T-SQL oprócz podstawowego języka zapytań, języka zapytań Kusto (KQL). Chociaż język KQL jest zalecanym językiem zapytań, język T-SQL może być przydatny w przypadku narzędzi, które nie mogą używać języka KQL.
Uwaga
Obsługiwane są tylko polecenia języka DQL (Data Query Language). Aby uzyskać więcej informacji, zobacz Pokrycie.
Wykonywanie zapytań przy użyciu języka T-SQL
Aby uruchomić zapytanie T-SQL, rozpocznij zapytanie z pustym wierszem komentarza języka T-SQL: --
. Składnia --
nakazuje edytorowi zapytań interpretowanie następującego zapytania jako języka T-SQL, a nie języka KQL.
Przykład
--
SELECT * FROM StormEvents
T-SQL do język zapytań Kusto
Edytor zapytań obsługuje możliwość tłumaczenia zapytań T-SQL na język KQL. Ta funkcja tłumaczenia może być przydatna dla użytkowników, którzy znają język SQL i chcą dowiedzieć się więcej na temat języka KQL.
Aby uzyskać odpowiednik języka KQL dla instrukcji języka T-SQL SELECT
, dodaj słowo kluczowe explain
przed zapytaniem. Dane wyjściowe będą wersją języka KQL zapytania, która może być przydatna do zrozumienia odpowiedniej składni i pojęć języka KQL.
Pamiętaj, aby wstępnie czytać zapytania języka T-SQL z wierszem komentarza języka T-SQL, --
, aby poinformować edytor zapytań o interpretowanie następującego zapytania jako języka T-SQL, a nie języka KQL.
Przykład
--
explain
SELECT top(10) *
FROM StormEvents
ORDER BY DamageProperty DESC
Wyjście
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)
Uruchamianie przechowywanych funkcji
W przypadku korzystania z języka T-SQL zalecamy utworzenie zoptymalizowanych zapytań KQL i hermetyzowanie ich w funkcjach przechowywanych, co minimalizuje kod T-SQL i może zwiększyć wydajność. Jeśli na przykład masz funkcję przechowywaną zgodnie z opisem w poniższej tabeli, możesz wykonać ją, jak pokazano w przykładzie kodu.
Nazwisko | Parametry | Treść | Folder | DocString |
---|---|---|---|---|
MyFunction | (myLimit: long) | {StormEvents | take myLimit} | Mójfolder | Funkcja demonstracyjna z parametrem |
SELECT * FROM kusto.MyFunction(10)
Uwaga
Aby odróżnić przechowywane funkcje i emulowane procedury składowane systemu SQL, wykonaj funkcje składowane z jawnym odwołaniem do schematu kusto
. W tym przykładzie przechowywana funkcja jest wykonywana przy użyciu polecenia kusto.Myfunction
.
Ustawianie właściwości żądania
Żądanie właściwości kontroluje sposób wykonywania i zwracania wyników przez zapytanie. Aby ustawić właściwości żądania za pomocą języka T-SQL, przedstaw zapytanie przy użyciu co najmniej jednej instrukcji z następującą składnią:
Składnia
DECLARE
@__kql_set_
requestPropertyName, wartość typu =
;
Parametry
Nazwisko | Type | Wymagania | opis |
---|---|---|---|
requestPropertyName | string |
✔️ | Nazwa właściwości żądania do ustawienia. |
type | string |
✔️ | Typ danych języka T-SQL wartości. |
wartość | skalar | ✔️ | Wartość, która ma zostać przypisana do właściwości żądania. |
Uwaga
- Dwie instrukcje muszą być oddzielone średnikiem i nie powinno być pustego wiersza przed zapytaniem.
- Właściwości żądania dotyczą tylko instrukcji wyrażenia tabelarycznego, które są natychmiast zgodne.
Przykłady
W poniższej tabeli przedstawiono przykłady ustawiania właściwości żądania za pomocą języka T-SQL.
Właściwość Request | Przykład |
---|---|
query_datetimescope_to |
DEKLAROWANIE @__kql_set_query_datetimescope_to DATETIME = '2023-03-31 03:02:01'; |
request_app_name |
DEKLAROWANIE @__kql_set_request_app_name NVARCHAR = "kuku"; |
query_results_cache_max_age |
ZADEKLARUJ czas @__kql_set_query_results_cache_max_age = '00:05:00'; |
truncationmaxsize |
DEKLAROWANIE @__kql_set_truncationmaxsize BIGINT = 4294967297; |
maxoutputcolumns |
DEKLAROWANIE @__kql_set_maxoutputcolumns INT = 3001; |
notruncation |
DEKLAROWANIE @__kql_set_notruncation BIT = 1; |
norequesttimeout |
DEKLAROWANIE @__kql_set_norequesttimeout BIT = 0; |
Aby ustawić właściwości żądania za pomocą języka KQL, zobacz instrukcję set.
Pokrycie
Usługa Azure Data Explorer oferuje ograniczoną obsługę języka T-SQL. W poniższej tabeli przedstawiono instrukcje i funkcje języka T-SQL, które nie są obsługiwane lub są częściowo obsługiwane.
Instrukcja lub funkcja języka T-SQL | opis |
---|---|
CREATE , INSERT , DROP i ALTER |
Nieobsługiwane |
Modyfikacje schematu lub danych | Nieobsługiwane |
ANY , ALL i EXISTS |
Nieobsługiwane |
WITHIN GROUP |
Nieobsługiwane |
TOP PERCENT |
Nieobsługiwane |
TOP WITH TIES |
Oceniane jako regularne TOP |
TRUNCATE |
Zwraca najbliższą wartość |
SELECT * |
Kolejność kolumn może się różnić od oczekiwań. Użyj nazw kolumn, jeśli kolejność ma znaczenie. |
AT TIME ZONE |
Nieobsługiwane |
Kursory SQL | Nieobsługiwane |
Skorelowane podzapytania | Nieobsługiwane |
Rekursywne CTEs | Nieobsługiwane |
Instrukcje dynamiczne | Nieobsługiwane |
Instrukcje sterowania przepływem | Obsługiwane są tylko IF THEN ELSE instrukcje z identycznym schematem i .THEN ELSE |
Zduplikowane nazwy kolumn | Nieobsługiwane. Oryginalna nazwa jest zachowywana dla jednej kolumny. |
Typy danych | Zwrócone dane mogą różnić się od typu programu SQL Server. Na przykład TINYINT i SMALLINT nie mają odpowiednika w usłudze Azure Data Explorer i mogą zostać zwrócone jako INT32 lub INT64 zamiast BYTE lub INT16 . |
Powiązana zawartość
- Dowiedz się więcej o emulacji programu SQL Server w usłudze Azure Data Explorer
- Używanie bazy danych SQL do język zapytań Kusto ściągawce