Spouštění dotazů KQL a uložených funkcí pomocí emulace SQL Server
Azure Data Explorer poskytuje koncový bod TDS (Tabular Data Stream), který umožňuje dotazovat data podobným způsobem jako dotazování dat v SQL Server. Koncový bod podporuje TDS verze 7.x a 8.0.
V tomto článku se dozvíte, jak spouštět uložené funkce a dotazy dotazovací jazyk Kusto (KQL) z klienta kompatibilního s SQL.
Poznámka
Informace v tomto článku se týkají spouštění parametrizovaných volání přes protokol TDS, označovaný také jako volání RPC.
Další informace najdete v přehledu emulace SQL Server v Azure Data Explorer.
Spouštění dotazů KQL
Uložená procedura sp_execute_kql
SQL se dá použít ke spouštění dotazů KQL , včetně parametrizovaných dotazů. Procedura je podobná uložené proceduře sp_executesql
.
Poznámka
Proceduru sp_execute_kql
lze volat pouze prostřednictvím volání RPC, jak je znázorněno v následujícím příkladu, a ne z běžného dotazu SQL.
Prvním parametrem sp_execute_kql
je dotaz KQL a všechny ostatní parametry se považují za parametry dotazu. Následující příklad ukazuje, jak použít sp_execute_kql
.
using (var connection = new SqlConnection(csb.ToString()))
{
await connection.OpenAsync();
using (var command = new SqlCommand("sp_execute_kql", connection))
{
command.CommandType = CommandType.StoredProcedure;
var query = new SqlParameter("@kql_query", SqlDbType.NVarChar);
command.Parameters.Add(query);
var parameter = new SqlParameter("mylimit", SqlDbType.Int);
command.Parameters.Add(parameter);
query.Value = "StormEvents | take myLimit";
parameter.Value = 3;
using (var reader = await command.ExecuteReaderAsync())
{
// Read the response.
}
}
}
Poznámka
Při volání sp_execute_kql
přes TDS jsou typy parametrů nastaveny protokolem a není nutné je deklarovat.
Volání uložených funkcí
Můžete vytvářet a volat uložené funkce , jako jsou uložené procedury SQL. Pokud máte například uloženou funkci, jak je popsáno v následující tabulce, můžete ji volat, 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 |
using (var connection = new SqlConnection(csb.ToString()))
{
await connection.OpenAsync();
using (var command = new SqlCommand("kusto.MyFunction", connection))
{
command.CommandType = CommandType.StoredProcedure;
var parameter = new SqlParameter("mylimit", SqlDbType.Int);
command.Parameters.Add(parameter);
parameter.Value = 3;
using (var reader = await command.ExecuteReaderAsync())
{
// Read the response.
}
}
}
Poznámka
Pokud chcete rozlišovat mezi uloženými funkcemi a emulovanými uloženými procedurami systému SQL, volejte uložené funkce s explicitním odkazem na kusto
schéma. V příkladu je uložená funkce volána pomocí kusto.Myfunction
.
Související obsah
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