table()
適用於:✅Microsoft網狀架構✅Azure 數據✅總管 Azure 監視器✅Microsoft Sentinel
table() 函式會藉由提供資料表的名稱做為 類型的 string
運算式來參考數據表。
語法
table(
TableName [,
DataScope])
深入瞭解 語法慣例。
參數
姓名 | 類型 | 必要 | 描述 |
---|---|---|---|
TableName | string |
✔️ | 所參考之數據表的名稱。 這個表達式的值必須是函式呼叫點的常數,這表示它不能因數據內容而有所不同。 |
DataScope | string |
用來根據此數據落在數據表的有效 快取原則之下,限制數據的數據表參考。 如果使用,實際自變數必須是其中 一個有效數據範圍值。 |
有效的數據範圍值
值 | Description |
---|---|
hotcache |
只會參考分類為經常性快取的數據。 |
all |
將會參考數據表中的所有數據。 |
default |
預設值為 all ,除非叢集管理員已將 它設定為 hotcache 。 |
傳回
table(T)
會傳回:
- 如果名為 T 的數據表存在,則為數據表 T 的數據。
- 如果名為 T 的數據表不存在,但名為 T 的函式存在,則由函式 T 傳回的數據。 函式 T 不得接受任何自變數,而且必須傳回表格式結果。
- 如果沒有名為 T 的數據表,而且沒有名為 T 的函式,就會引發語意錯誤。
範例
使用 table() 存取目前資料庫的數據表
table('StormEvents') | count
輸出
計數 |
---|
59066 |
在 let 語句內使用 table()
上述查詢可以重寫為可接收參數的查詢定義函式(let 語句),該函 tableName
式會傳遞至 table() 函式。
let foo = (tableName:string)
{
table(tableName) | count
};
foo('StormEvents')
輸出
計數 |
---|
59066 |
在 Functions 內使用 table()
您可以重寫與上述相同的查詢,以用於接收參數 tableName
的函式中,該函式會傳遞至 table() 函式。
.create function foo(tableName:string)
{
table(tableName) | count
};
注意
這類函式只能在本機使用,而不是在跨叢集查詢中使用。
搭配非常數參數使用 table()
參數不是純量常數位符串,無法當做參數傳遞至函 table()
式。
以下提供這類案例的因應措施範例。
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')
輸出
x |
---|
2 |