Jalankan kueri KQL dan fungsi tersimpan dengan emulasi SQL Server
Azure Data Explorer menyediakan titik akhir Tabular Data Stream (TDS) yang memungkinkan Anda mengkueri data dengan cara yang mirip dengan cara mengkueri data di SQL Server. Titik akhir mendukung TDS versi 7.x dan 8.0.
Dalam artikel ini, Anda akan mempelajari cara menjalankan fungsi tersimpan dan kueri Bahasa Kueri Kusto (KQL) dari klien yang kompatibel dengan SQL.
Catatan
Informasi dalam artikel ini berlaku untuk menjalankan panggilan parameter melalui protokol TDS, juga dikenal sebagai panggilan RPC.
Untuk informasi selengkapnya, lihat gambaran umum tentang emulasi SQL Server di Azure Data Explorer.
Menjalankan kueri KQL
Prosedur sp_execute_kql
tersimpan SQL dapat digunakan untuk menjalankan kueri KQL , termasuk kueri berparameter. Prosedur ini mirip dengan prosedur tersimpan sp_executesql
.
Catatan
Prosedur sp_execute_kql
hanya dapat dipanggil melalui panggilan RPC seperti yang ditunjukkan dalam contoh berikut dan bukan dari dalam kueri SQL biasa.
Parameter sp_execute_kql
pertama adalah kueri KQL, dan parameter lainnya diperlakukan sebagai parameter kueri. Contoh berikut menunjukkan cara menggunakan sp_execute_kql
.
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.
}
}
}
Catatan
Saat memanggil sp_execute_kql
melalui TDS, jenis parameter diatur oleh protokol dan tidak perlu dinyatakan.
Memanggil fungsi tersimpan
Anda dapat membuat dan memanggil fungsi tersimpan seperti prosedur tersimpan SQL. Misalnya, jika Anda memiliki fungsi tersimpan seperti yang dijelaskan dalam tabel berikut, Anda dapat memanggilnya seperti yang ditunjukkan dalam contoh kode.
Nama | Parameter | Isi | Folder | DocString |
---|---|---|---|---|
MyFunction | (myLimit: long) | {StormEvents | take myLimit} | MyFolder | Fungsi demo dengan parameter |
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.
}
}
}
Catatan
Untuk membedakan antara fungsi yang disimpan dan prosedur tersimpan sistem SQL yang ditiru, panggil fungsi tersimpan dengan referensi eksplisit ke kusto
skema. Dalam contoh, fungsi tersimpan disebut menggunakan kusto.Myfunction
.
Konten terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk