Aracılığıyla paylaş


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_kqlgö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.