buildschema() (集計関数)

DynamicExpr のすべての値を許可する最小限のスキーマを構築します。

Note

この関数は、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"}}

結果として得られるスキーマでは、次のことが示されます。

  • ルート オブジェクトは、4 つのプロパティ (x、y、z、t) を含むコンテナーです。
  • という x プロパティは long 型またはstring 型です。
  • double 型の ii というyプロパティ、または string 型のwプロパティを持つ別のコンテナー。
  • キーワード (keyword)はindexer、 と t が配列であることをz示します。
  • 配列 z 内の各項目は long 型またはstring 型です。
  • t は文字列の配列です。
  • すべてのプロパティは暗黙的に省略可能で、配列は空である可能性があります。

スキーマ モデル

返されるスキーマの構文は次のとおりです。

コンテナー ::= '{' Named-type* '}';Named-type: := (name |'"indexer"') ':' 型;型 ::= Primitive-type |Union-type |コンテナー;Union-type ::= '[' Type* ']';プリミティブ型 ::= "long" |"string" |...;

値は、Kusto 動的値としてエンコードされた TypeScript 型注釈のサブセットと同じです。 TypeScript では、スキーマの例は次のようになります。

var someobject:
{
    x?: (number | string),
    y?: (number | { w?: string}),
    z?: { [n:number] : (long | string)},
    t?: { [n:number]: string }
}