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_kql
mutatja 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.Myfunction
történik.