Dotazování dat pomocí T-SQL
Editor dotazů Azure Data Exploreru podporuje použití jazyka T-SQL kromě primárního dotazovacího jazyka Kusto (KQL). I když je jazyk KQL doporučeným dotazovacím jazykem, může být jazyk T-SQL užitečný pro nástroje, které nemůžou používat jazyk KQL.
Poznámka:
Podporují se pouze příkazy jazyka 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 interpretovat následující dotaz jako T-SQL, nikoli jako KQL.
Příklad
--
SELECT * FROM StormEvents
T-SQL do dotazovací jazyk Kusto
Editor dotazů podporuje možnost překladu dotazů T-SQL do jazyka 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.
Pokud chcete 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 pomocí řádku komentáře T-SQL, aby editoru dotazů řekl, --
aby interpretoval následující dotaz jako T-SQL, a ne 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)
Spouštění uložených funkcí
Při použití jazyka T-SQL doporučujeme vytvořit optimalizované dotazy KQL a zapouzdřit je do uložených funkcí, protože tím minimalizujete kód T-SQL a může zvýšit výkon. Pokud máte například uloženou funkci popsanou v následující tabulce, můžete ji spustit, jak je znázorněno v příkladu kódu.
Název | Parametry | Text | Složka | DocString |
---|---|---|---|---|
MyFunction | (myLimit: long) | {StormEvents | take myLimit} | MyFolder | Demo funkce s parametrem |
SELECT * FROM kusto.MyFunction(10)
Poznámka:
Pokud chcete rozlišovat mezi uloženými funkcemi a emulovanými uloženými procedurami 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í kusto.Myfunction
.
Nastavení vlastností požadavku
Vlastnosti požadavku určují, jak se dotaz spouští a vrací výsledky. Pokud chcete nastavit vlastnosti požadavku pomocí jazyka T-SQL, předestavte svůj dotaz jedním nebo více příkazy s následující syntaxí:
Syntaxe
DECLARE
@__kql_set_
requestPropertyName – hodnota typu =
;
Parametry
Název | Type | Požadováno | Popis |
---|---|---|---|
requestPropertyName | string |
✔️ | Název vlastnosti požadavku, která se má nastavit. |
type | string |
✔️ | Datový typ T-SQL hodnoty. |
value | skalární | ✔️ | Hodnota, která se má přiřadit k 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 nastavení vlastností požadavku pomocí T-SQL.
Vlastnost Požadavku | Příklad |
---|---|
query_datetimescope_to |
DEKLARACE @__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 |
DEKLARACE @__kql_set_query_results_cache_max_age ČAS = '00:05:00'; |
truncationmaxsize |
DEKLARACE @__kql_set_truncationmaxsize BIGINT = 4294967297; |
maxoutputcolumns |
DEKLARACE @__kql_set_maxoutputcolumns INT = 3001; |
notruncation |
DEKLARUJTE @__kql_set_notruncation BIT = 1; |
norequesttimeout |
DEKLARUJTE @__kql_set_norequesttimeout BIT = 0; |
Pokud chcete nastavit vlastnosti požadavku pomocí KQL, viz příkaz set.
Disponibilita
Azure Data Explorer nabízí omezenou podporu T-SQL. Následující tabulka popisuje příkazy a funkce T-SQL, které nejsou podporované nebo jsou částečně podporované.
Příkaz T-SQL nebo funkce | Popis |
---|---|
CREATE , INSERT , DROP a ALTER |
Nepodporováno |
Změny 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 pravidelné TOP |
TRUNCATE |
Vrátí nejbližší hodnotu. |
SELECT * |
Pořadí sloupců se může lišit od očekávání. Názvy sloupců používejte v případě, že záleží na objednávce. |
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 THEN a ELSE jsou podporovány. |
Duplicitní názvy sloupců | Nepodporováno Původní název je zachován pro jeden sloupec. |
Datové typy | Vrácená data se můžou lišit v typu od SQL Serveru. TINYINT Například v SMALLINT Azure Data Exploreru nemá žádný ekvivalent a může se vrátit jako INT32 nebo INT64 místo BYTE nebo INT16 . |
Související obsah
- Informace o emulaci SQL Serveru v Azure Data Exploreru
- Použití jazyka SQL k dotazovací jazyk Kusto taháku