SQL Server öykünmesi ile KQL sorguları ve saklı işlevleri çalıştırma
Azure Veri Gezgini, VERILERI SQL Server'da sorguladığınız gibi sorgulamanıza olanak tanıyan bir Tablosal Veri Akışı (TDS) uç noktası sağlar. Uç nokta, TDS 7.x ve 8.0 sürümlerini destekler.
Bu makalede, SQL uyumlu bir istemciden depolanan işlevleri ve Kusto Sorgu Dili (KQL) sorgularını çalıştırmayı öğreneceksiniz.
Not
Bu makaledeki bilgiler, RPC çağrıları olarak da bilinen TDS protokolü üzerinden parametreli çağrı çalıştırma için geçerlidir.
Daha fazla bilgi için bkz. Azure Veri Gezgini'de SQL Server öykünmesi hakkında genel bakış.
KQL sorgularını çalıştırma
SQL saklı yordamısp_execute_kql
, parametreli sorgular da dahil olmak üzere KQL sorgularını çalıştırmak için kullanılabilir. Yordam saklı yordama sp_executesql
benzer.
Not
Yordam sp_execute_kql
yalnızca aşağıdaki örnekte gösterildiği gibi bir RPC çağrısı aracılığıyla çağrılabilir ve normal bir SQL sorgusunun içinden çağrılmaz.
öğesinin sp_execute_kql
ilk parametresi KQL sorgusudur ve diğer parametreler sorgu parametresi olarak değerlendirilir. Aşağıdaki örnekte nasıl kullanılacağı sp_execute_kql
gösterilmektedir.
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.
}
}
}
Not
TDS aracılığıyla çağrı sp_execute_kql
yapılırken, parametre türleri protokol tarafından ayarlanır ve bildirilmesi gerekmez.
Depolanan işlevleri çağırma
SQL saklı yordamları gibi saklı işlevler oluşturabilir ve çağırabilirsiniz. Örneğin, aşağıdaki tabloda açıklandığı gibi bir saklı işleviniz varsa, kod örneğinde gösterildiği gibi çağırabilirsiniz.
Veri Akışı Adı | Parametreler | Gövde | Klasör | DocString |
---|---|---|---|---|
MyFunction | (myLimit: long) | {StormEvents | take myLimit} | MyFolder | Parametresi olan demo işlevi |
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.
}
}
}
Not
Depolanan işlevlerle öykünmüş SQL sistemi saklı yordamları arasında ayrım yapmak için, saklı işlevleri şemaya açık bir başvuruyla çağırın kusto
. Örnekte saklı işlev kullanılarak kusto.Myfunction
çağrılır.