共用方式為


buildschema() (彙總函數)

建置允許 DynamicExpr 所有值的最小架構。

注意

此函式會與 summarize 運算子搭配使用。

語法

buildschema(DynamicExpr)

深入瞭解 語法慣例

參數

名稱 類型 必要 Description
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 或類型 字串
  • 類型y為 double 的ii屬性,或具有類型字串之屬性w的另一個容器。
  • 關鍵詞 indexer 表示 zt 是陣列。
  • 陣列 z 中的每個項目類型為 long 或類型 字串
  • t 是字串的陣列。
  • 每個屬性皆可隱含選用,且任何陣列都可以是空的。

結構描述模型

所傳回結構描述的語法如下︰

容器 ::= '{' Named-type* '}';具名類型: := (名稱 |'“”indexer') ':' 類型;類型 ::= 基本類型 |等位類型 |容器;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 }
}