buildschema() (聚合函數)
適用於:✅Microsoft網狀架構✅Azure 數據✅總管 Azure 監視器✅Microsoft Sentinel
建置可接受 DynamicExpr 所有值的最小架構。
注意
此函式會與 summarize 運算子搭配使用。
語法
buildschema
(
DynamicExpr)
深入瞭解 語法慣例。
參數
姓名 | 類型 | 必要 | 描述 |
---|---|---|---|
DynamicExpr | dynamic |
✔️ | 用於匯總計算的表達式。 |
傳回
傳回允許 DynamicExpr 所有值的最小架構。
提示
如果輸入是 JSON 字串,請使用 parse_json() 函式將 JSON 轉換成動態 值。 否則,可能會發生錯誤。
範例
下列範例會根據下列範例建置架構:
{"x":1, "y":3.5}
{"x":"somevalue", "z":[1, 2, 3]}
{"y":{"w":"zzz"}, "t":["aa", "bb"], "z":["foo"]}
datatable(value: dynamic) [
dynamic({"x":1, "y":3.5}),
dynamic({"x":"somevalue", "z":[1, 2, 3]}),
dynamic({"y":{"w":"zzz"}, "t":["aa", "bb"], "z":["foo"]})
]
| summarize buildschema(value)
結果
schema_value |
---|
{“x”:[“long”,“string”],“y”:[“double”,{“w”:“string”}],“z”:{indexer “”:[“long”,“string”]},“t”:{indexer “:”string“}} |
產生的架構告訴我們:
- 根對像是一個容器,其中包含四個名為 x、y、z 和 t 的屬性。
- 呼叫
x
的屬性類型為 long 或類型 字串。 - 類型為 double 的ii屬性
y
,或是另一個容器,其屬性稱為w
string 類型。 - 關鍵詞
indexer
表示z
和t
是陣列。 - 陣列
z
中的每個專案都是 long 類型或類型 字串。 t
是字串陣列。- 每個屬性都是隱含選擇性的,而且任何數位可能都是空的。
架構模型
傳回架構的語法為:
容器 ::= '{' Named-type* '}';具名類型: := (name |'“”indexer
') ':' 類型;類型 ::= Primitive-type |Union-type |容器;Union-type ::= '[' Type* ']';基本類型 ::= “long” |“string” |...;
這些值相當於 TypeScript 類型註釋的子集,編碼為 Kusto 動態值。 在 TypeScript 中,範例架構會是:
var someobject:
{
x?: (number | string),
y?: (number | { w?: string}),
z?: { [n:number] : (long | string)},
t?: { [n:number]: string }
}