Mengkueri data menggunakan T-SQL
Editor kueri Azure Data Explorer mendukung penggunaan T-SQL selain bahasa kueri utamanya, bahasa kueri Kusto (KQL). Meskipun KQL adalah bahasa kueri yang direkomendasikan, T-SQL dapat berguna untuk alat yang tidak dapat menggunakan KQL.
Catatan
Hanya perintah Data Query Language (DQL) yang didukung. Untuk informasi selengkapnya, lihat Cakupan.
Untuk menjalankan kueri T-SQL, mulai kueri dengan baris komentar T-SQL kosong: --
. --
Sintaksis memberi tahu editor kueri untuk menginterpretasikan kueri berikut sebagai T-SQL dan bukan KQL.
--
SELECT * FROM StormEvents
Editor kueri mendukung kemampuan untuk menerjemahkan kueri T-SQL ke dalam KQL. Fitur terjemahan ini dapat membantu pengguna yang terbiasa dengan SQL dan ingin mempelajari lebih lanjut tentang KQL.
Untuk mendapatkan KQL yang setara untuk pernyataan T-SQL SELECT
, tambahkan kata kunci explain
sebelum kueri. Output akan menjadi versi KQL dari kueri, yang dapat berguna untuk memahami sintaks dan konsep KQL yang sesuai.
Ingatlah untuk mengawali kueri T-SQL dengan baris komentar T-SQL, --
, untuk memberi tahu editor kueri untuk menafsirkan kueri berikut sebagai T-SQL dan bukan KQL.
--
explain
SELECT top(10) *
FROM StormEvents
ORDER BY DamageProperty DESC
Hasil
StormEvents
| project
StartTime,
EndTime,
EpisodeId,
EventId,
State,
EventType,
InjuriesDirect,
InjuriesIndirect,
DeathsDirect,
DeathsIndirect,
DamageProperty,
DamageCrops,
Source,
BeginLocation,
EndLocation,
BeginLat,
BeginLon,
EndLat,
EndLon,
EpisodeNarrative,
EventNarrative,
StormSummary
| sort by DamageProperty desc nulls first
| take int(10)
Saat menggunakan T-SQL, kami sarankan Anda membuat kueri KQL yang dioptimalkan dan merangkumnya dalam fungsi tersimpan, karena itu meminimalkan kode T-SQL dan dapat meningkatkan performa. Misalnya, jika Anda memiliki fungsi tersimpan seperti yang dijelaskan dalam tabel berikut, Anda dapat menjalankannya seperti yang ditunjukkan dalam contoh kode.
Nama | Parameter | Isi | Folder | DocString |
---|---|---|---|---|
MyFunction | (myLimit: long) | {StormEvents | take myLimit} | MyFolder | Fungsi demo dengan parameter |
SELECT * FROM kusto.MyFunction(10)
Catatan
Untuk membedakan antara fungsi tersimpan dan prosedur tersimpan sistem SQL yang ditiru, jalankan fungsi tersimpan dengan referensi eksplisit ke kusto
skema. Dalam contoh, fungsi tersimpan dijalankan menggunakan kusto.Myfunction
.
Properti permintaan mengontrol cara kueri menjalankan dan mengembalikan hasil. Untuk mengatur properti permintaan dengan T-SQL, awali kueri Anda dengan satu atau beberapa pernyataan dengan sintaks berikut:
DECLARE
@__kql_set_
nilai jenis =
requestPropertyName ;
Nama | Tipe | Wajib | Deskripsi |
---|---|---|---|
requestPropertyName | string |
✔️ | Nama properti permintaan yang akan diatur. |
jenis | string |
✔️ | Jenis data T-SQL dari nilai . |
value | skalar | ✔️ | Nilai yang akan ditetapkan ke properti permintaan. |
Catatan
- Dua pernyataan harus dipisahkan oleh titik koma, dan seharusnya tidak ada baris kosong sebelum kueri.
- Properti permintaan hanya berlaku untuk pernyataan ekspresi tabular yang segera mengikuti.
Tabel berikut ini memperlihatkan contoh cara mengatur properti permintaan dengan T-SQL.
Properti permintaan | Contoh |
---|---|
query_datetimescope_to |
DEKLARASIKAN @__kql_set_query_datetimescope_to DATETIME = '2023-03-31 03:02:01'; |
request_app_name |
DEKLARASIKAN @__kql_set_request_app_name NVARCHAR = 'kuku'; |
query_results_cache_max_age |
DECLARE @__kql_set_query_results_cache_max_age TIME = '00:05:00'; |
truncationmaxsize |
DEKLARASIKAN @__kql_set_truncationmaxsize BIGINT = 4294967297; |
maxoutputcolumns |
DEKLARASIKAN @__kql_set_maxoutputcolumns INT = 3001; |
notruncation |
DEKLARASIKAN BIT @__kql_set_notruncation = 1; |
norequesttimeout |
DEKLARASIKAN BIT @__kql_set_norequesttimeout = 0; |
Untuk mengatur properti permintaan dengan KQL, lihat mengatur pernyataan.
Azure Data Explorer menawarkan dukungan terbatas untuk T-SQL. Tabel berikut menguraikan pernyataan dan fitur T-SQL yang tidak didukung atau didukung sebagian.
Pernyataan atau fitur T-SQL | Deskripsi |
---|---|
CREATE , INSERT , DROP , dan ALTER |
Tidak didukung |
Skema atau modifikasi data | Tidak didukung |
ANY , ALL , dan EXISTS |
Tidak didukung |
WITHIN GROUP |
Tidak didukung |
TOP PERCENT |
Tidak didukung |
TOP WITH TIES |
Dievaluasi sebagai reguler TOP |
TRUNCATE |
Mengembalikan nilai terdekat |
SELECT * |
Urutan kolom mungkin berbeda dari harapan. Gunakan nama kolom jika pesanan penting. |
AT TIME ZONE |
Tidak didukung |
Kursor SQL | Tidak didukung |
Subkueri berkorelasi | Tidak didukung |
CFT Berulang | Tidak didukung |
Pernyataan dinamis | Tidak didukung |
Pernyataan kontrol alur | Hanya IF THEN ELSE pernyataan dengan skema yang identik untuk THEN dan ELSE didukung. |
Buat duplikat nama kolom | Tidak didukung. Nama asli dipertahankan untuk satu kolom. |
Jenis data | Data yang dikembalikan mungkin berbeda dalam jenis dari SQL Server. Misalnya, TINYINT dan SMALLINT tidak memiliki yang setara di Azure Data Explorer, dan dapat kembali sebagai INT32 atau INT64 alih-alih BYTE atau INT16 . |
- Pelajari tentang emulasi SQL Server di Azure Data Explorer
- Menggunakan SQL untuk Bahasa Kueri Kusto contekan