table()

Fungsi table() mereferensikan tabel dengan memberikan namanya sebagai ekspresi dari jenis string.

Sintaks

table(TableName [,DataScope] )

Pelajari selengkapnya tentang konvensi sintaksis.

Parameter

Nama Jenis Diperlukan Deskripsi
TableName string ✔️ Nama tabel yang sedang dirujuk. Nilai ekspresi ini harus konstan pada titik panggilan ke fungsi, yang berarti tidak dapat bervariasi menurut konteks data.
DataScope string Digunakan untuk membatasi referensi tabel ke data sesuai dengan bagaimana data ini berada di bawah kebijakan cache efektif tabel. Jika digunakan, argumen aktual harus merupakan salah satu nilai cakupan data yang valid.

Nilai cakupan data yang valid

Nilai Deskripsi
hotcache Hanya data yang dikategorikan sebagai cache panas yang akan dirujuk.
all Semua data dalam tabel akan dirujuk.
default Defaultnya adalah all, kecuali jika telah diatur ke hotcache oleh admin kluster.

Mengembalikan

table(T) menghasilkan:

  • Data dari tabel T jika tabel bernama T ada.
  • Data yang dikembalikan oleh fungsi T jika tabel bernama T tidak ada tetapi fungsi bernama T ada. Fungsi T tidak boleh mengambil argumen dan harus mengembalikan hasil tabular.
  • Kesalahan semantik dimunculkan jika tidak ada tabel bernama T dan tidak ada fungsi bernama T.

Contoh

Menggunakan table() untuk mengakses tabel database saat ini

table('StormEvents') | count

Output

Hitungan
59066

Menggunakan table() di dalam pernyataan

Kueri di atas dapat ditulis ulang sebagai fungsi yang ditentukan kueri (pernyataan let) yang menerima parameter tableName - yang diteruskan ke fungsi table().

let foo = (tableName:string)
{
    table(tableName) | count
};
foo('StormEvents')

Output

Hitungan
59066

Menggunakan table() di dalam Fungsi

Kueri yang sama seperti di atas dapat ditulis ulang untuk digunakan dalam fungsi yang menerima parameter tableName - yang diteruskan ke fungsi table().

.create function foo(tableName:string)
{
    table(tableName) | count
};

Catatan

Fungsi yang semacam itu hanya dapat digunakan secara lokal dan bukan di kueri lintas kluster.

Gunakan table() dengan parameter non-konstan

Parameter, yang bukan string konstanta skalar, tidak dapat diteruskan sebagai parameter ke table() fungsi.

Berikut adalah contoh solusi untuk kasus tersebut.

let T1 = print x=1;
let T2 = print x=2;
let _choose = (_selector:string)
{
    union
    (T1 | where _selector == 'T1'),
    (T2 | where _selector == 'T2')
};
_choose('T2')

Output

x
2