Dotazování dat pomocí T-SQL
Editor dotazů Azure Data Explorer podporuje kromě primárního dotazovacího jazyka Kusto (KQL) použití jazyka T-SQL. Zatímco KQL je doporučený dotazovací jazyk, T-SQL může být užitečný pro nástroje, které nemůžou používat KQL.
Poznámka
Podporují se pouze příkazy DQL (Data Query Language). Další informace najdete v tématu Pokrytí.
Dotazování pomocí T-SQL
Pokud chcete spustit dotaz T-SQL, začněte dotaz prázdným řádkem komentáře T-SQL: --
. Syntaxe --
říká editoru dotazů, aby následující dotaz interpretovat jako T-SQL, a ne jako KQL.
Příklad
--
SELECT * FROM StormEvents
T-SQL do dotazovací jazyk Kusto
Editor dotazů podporuje možnost překladu dotazů T-SQL do KQL. Tato funkce překladu může být užitečná pro uživatele, kteří jsou obeznámeni s SQL a chtějí se dozvědět více o KQL.
Chcete-li získat ekvivalentní KQL pro příkaz T-SQL SELECT
, přidejte před dotaz klíčové slovo explain
. Výstupem bude verze KQL dotazu, která může být užitečná pro pochopení odpovídající syntaxe a konceptů KQL.
Nezapomeňte před dotazy T-SQL použít řádek komentáře T-SQL, --
aby editor dotazů interpretoval následující dotaz jako T-SQL, a ne jako KQL.
Příklad
--
explain
SELECT top(10) *
FROM StormEvents
ORDER BY DamageProperty DESC
Výstup
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)
Spuštění uložených funkcí
Při použití T-SQL doporučujeme vytvářet optimalizované dotazy KQL a zapouzdřovat je do uložených funkcí, protože tím se minimalizuje kód T-SQL a může se zvýšit výkon. Pokud máte například uloženou funkci, jak je popsáno v následující tabulce, můžete ji spustit, jak je znázorněno v příkladu kódu.
Name | Parametry | Text | Složka | DocString |
---|---|---|---|---|
MyFunction | (myLimit: long) | {StormEvents | take myLimit} | MyFolder | Demo funkce s parametrem |
SELECT * FROM kusto.MyFunction(10)
Poznámka
Chcete-li rozlišovat mezi uloženými funkcemi a uloženými procedurami emulovaného systému SQL, spusťte uložené funkce s explicitním odkazem na kusto
schéma. V příkladu se uložená funkce spustí pomocí příkazu kusto.Myfunction
.
Nastavení vlastností požadavku
Vlastnosti požadavku určují, jak se dotaz provede a vrátí výsledky. Pokud chcete nastavit vlastnosti požadavku pomocí T-SQL, předkažte dotaz jedním nebo více příkazy s následující syntaxí:
Syntax
DECLARE
@__kql_set_
hodnotatypu=
requestPropertyName;
Parametry
Název | Typ | Vyžadováno | Popis |
---|---|---|---|
requestPropertyName | string |
✔️ | Název vlastnosti požadavku , která se má nastavit. |
typ | string |
✔️ | Datový typ T-SQL hodnoty. |
value | Skalár | ✔️ | Hodnota, která se má přiřadit vlastnosti požadavku. |
Poznámka
- Dva příkazy musí být oddělené středníkem a před dotazem by neměl být prázdný řádek.
- Vlastnosti požadavku se vztahují pouze na příkazy tabulkového výrazu , které bezprostředně následují.
Příklady
Následující tabulka ukazuje příklady, jak nastavit vlastnosti požadavku pomocí T-SQL.
Vlastnost Request | Příklad |
---|---|
query_datetimescope_to |
DEKLARUJTE @__kql_set_query_datetimescope_to DATETIME = '2023-03-31 03:02:01'; |
request_app_name |
DEKLARUJTE @__kql_set_request_app_name NVARCHAR = 'kuku'; |
query_results_cache_max_age |
DEKLAROVAT @__kql_set_query_results_cache_max_age TIME = '00:05:00'; |
truncationmaxsize |
DEKLARUJTE @__kql_set_truncationmaxsize BIGINT = 4294967297; |
maxoutputcolumns |
DEKLARUJTE @__kql_set_maxoutputcolumns INT = 3001; |
notruncation |
DEKLAROVAT @__kql_set_notruncation BIT = 1; |
norequesttimeout |
DEKLAROVAT @__kql_set_norequesttimeout BIT = 0; |
Pokud chcete nastavit vlastnosti požadavku pomocí KQL, projděte si příkaz set.
Pokrytí
Azure Data Explorer nabízí omezenou podporu T-SQL. Následující tabulka popisuje funkce a příkazy T-SQL, které nejsou podporované nebo jsou podporované částečně.
Příkaz nebo funkce T-SQL | Description |
---|---|
CREATE , INSERT , DROP a ALTER |
Nepodporováno |
Úpravy schématu nebo dat | Nepodporováno |
ANY , ALL a EXISTS |
Nepodporováno |
WITHIN GROUP |
Nepodporováno |
TOP PERCENT |
Nepodporováno |
TOP WITH TIES |
Vyhodnoceno jako normální TOP |
TRUNCATE |
Vrátí nejbližší hodnotu. |
SELECT * |
Pořadí sloupců se může lišit od očekávání. Pokud záleží na pořadí, použijte názvy sloupců. |
AT TIME ZONE |
Nepodporováno |
Kurzory SQL | Nepodporováno |
Korelované poddotazy | Nepodporováno |
Rekurzivní CTE | Nepodporováno |
Dynamické příkazy | Nepodporováno |
Příkazy řízení toku | Podporují se pouze IF THEN ELSE příkazy se stejným schématem pro THEN a.ELSE |
Duplicitní názvy sloupců | Nepodporováno Původní název se zachová pro jeden sloupec. |
Typy dat | Vrácená data se mohou lišit od typu SQL Server. Například TINYINT a SMALLINT nemají v Azure Data Explorer žádný ekvivalent a může se vrátit jako INT32 nebo INT64 místo BYTE nebo INT16 . |
Související obsah
- Informace o emulaci SQL Server v Azure Data Explorer
- Použití SQL k dotazovací jazyk Kusto taháku
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro