Megosztás a következőn keresztül:


KQL-lekérdezések és tárolt függvények futtatása SQL Server emulációval

Az Azure Data Explorer egy Táblázatos adatok Stream (TDS) végpontot biztosít, amely lehetővé teszi az adatok lekérdezését a SQL Server adatlekérdezéséhez hasonló módon. A végpont támogatja a TDS 7.x és 8.0 verzióját.

Ebből a cikkből megtudhatja, hogyan futtathat tárolt függvényeket és Kusto lekérdezésnyelv (KQL-) lekérdezéseket egy SQL-kompatibilis ügyfélről.

Megjegyzés

A cikkben szereplő információk a paraméteres hívások TDS protokollon keresztüli futtatására, más néven RPC-hívásokra vonatkoznak.

További információkért tekintse meg az Azure Data Explorer SQL Server emulációjának áttekintését.

KQL-lekérdezések futtatása

Az SQL tárolt eljárás sp_execute_kql használható KQL-lekérdezések futtatására, beleértve a paraméteres lekérdezéseket is. Az eljárás hasonló a sp_executesql tárolt eljáráshoz.

Megjegyzés

Az sp_execute_kql eljárás csak RPC-hívással hívható meg az alábbi példában látható módon, normál SQL-lekérdezésből nem.

Az első paraméter a sp_execute_kql KQL-lekérdezés, és a többi paraméter lekérdezési paraméterként lesz kezelve. Az alábbi példa a használatát sp_execute_kqlmutatja be.

  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.
      }
    }
  }

Megjegyzés

TDS-en keresztüli híváskor sp_execute_kql a paramétertípusokat a protokoll állítja be, és nem kell deklarálni.

Tárolt függvények meghívása

Tárolt függvényeket, például SQL tárolt eljárásokat hozhat létre és hívhat meg. Ha például egy tárolt függvényt az alábbi táblázatban leírtak szerint tárol, meghívhatja a kód példájában látható módon.

Name Paraméterek Törzs Mappa DocString
MyFunction (myLimit: long) {StormEvents | take myLimit} MyFolder Demo függvény paraméterrel
  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.
      }
    }
  }

Megjegyzés

A tárolt függvények és az SQL-rendszer által tárolt emulált eljárások megkülönböztetéséhez hívja meg a tárolt függvényeket a kusto sémára mutató explicit hivatkozással. A példában a tárolt függvény neve a használatával kusto.Myfunctiontörténik.