Bagikan melalui


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.

Kueri dengan T-SQL

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.

Contoh

--
SELECT * FROM StormEvents

T-SQL ke Bahasa Kueri Kusto

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.

Contoh

--
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)

Menjalankan fungsi tersimpan

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.

Mengatur properti permintaan

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:

Sintaks

DECLARE@__kql_set_nilai jenis = requestPropertyName ;

Parameter

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.

Contoh

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.

Cakupan

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.