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 języka 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 T-SQL SELECT
, dodaj słowo kluczowe explain
przed zapytaniem. Dane wyjściowe będą wersją KQL zapytania, która może być przydatna do zrozumienia odpowiedniej składni i pojęć dotyczących języka KQL.
Pamiętaj, aby wstępnie czytać zapytania 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
Dane wyjściowe
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 funkcji przechowywanych
W przypadku korzystania z języka T-SQL zalecamy utworzenie zoptymalizowanych zapytań KQL i hermetyzowanie ich w przechowywanych funkcjach, co pozwala zminimalizować kod T-SQL i zwiększyć wydajność. Jeśli na przykład masz funkcję przechowywaną zgodnie z opisem w poniższej tabeli, możesz ją wykonać, jak pokazano w przykładzie kodu.
Nazwa | Parametry | Treść | Folder | DocString |
---|---|---|---|---|
MyFunction | (myLimit: long) | {StormEvents | take myLimit} | Myfolder | Funkcja demo z parametrem |
SELECT * FROM kusto.MyFunction(10)
Uwaga
Aby odróżnić funkcje przechowywane i emulowane procedury składowane systemu SQL, wykonaj funkcje składowane z wyraźnym 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, wstępnie treść zapytania z co najmniej jedną instrukcją z następującą składnią:
Składnia
DECLARE
@__kql_set_
requestPropertyName, wartośćtypu=
;
Parametry
Nazwa | Typ | Wymagane | Opis |
---|---|---|---|
requestPropertyName | string |
✔️ | Nazwa właściwości żądania do ustawienia. |
typ | string |
✔️ | Typ danych języka T-SQL wartości. |
wartość | Wartość skalarna | ✔️ | Wartość do przypisania 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 mają zastosowanie tylko do 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 podquery | 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 THEN i.ELSE |
Zduplikowane nazwy kolumn | Nieobsługiwane. Oryginalna nazwa jest zachowywana dla jednej kolumny. |
Typy danych | Zwrócone dane mogą różnić się w typie od SQL Server. Na przykład TINYINT i SMALLINT nie ma odpowiednika w usłudze Azure Data Explorer i może zostać zwrócony jako INT32 lub INT64 zamiast BYTE lub INT16 . |
Zawartość pokrewna
- Dowiedz się więcej o emulacji SQL Server na platformie Azure Data Explorer
- Używanie programu SQL do język zapytań Kusto ściągawki
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla