SQL Server öykünme ile KQL sorgularını ve saklı işlevleri çalıştırma

Azure Veri Gezgini, verileri SQL Server'da sorguladığınıza benzer şekilde sorgulamanıza olanak tanıyan bir Tablosal Veri Stream (TDS) uç noktası sağlar. Uç nokta, 7.x ve 8.0 TDS 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ılar çalıştırmak için geçerlidir.

Daha fazla bilgi için bkz. Azure Veri Gezgini'da SQL Server öykünmesiyle ilgili 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ılabilir.

öğesinin sp_execute_kql ilk parametresi KQL sorgusudur ve diğer parametreler sorgu parametresi olarak kabul edilir. 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.

Name Parametreler Gövde Klasör DocString
Myfunction (myLimit: long) {StormEvents | take myLimit} MyFolder Parametreli 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ünülmüş 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.