Sdílet prostřednictvím


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, DROPa ALTER Nepodporováno
Změny schématu nebo dat Nepodporováno
ANY, ALLa 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.