buildschema() (集計関数)

DynamicExpr のすべての値を許可する最小スキーマをビルドします。

Note

この関数は、summarize 演算子と組み合わせて使用します。

構文

buildschema(DynamicExpr)

構文規則について詳しく知る。

パラメーター

件名 タイプ Required 説明
DynamicExpr dynamic ✔️ 集計計算に使用する式。

返品

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

ヒント

入力が JSON 文字列の場合は、 parse_json() 関数を使用して JSON を dynamic 値に変換します。 そうでない場合、エラーが発生する可能性があります。

次の例では、次に基づいてスキーマを構築します。

  • {"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 型の y ii というプロパティ、または string 型のwと呼ばれるプロパティを持つ別のコンテナー。
  • indexer キーワードは、ztが配列であることを示します。
  • 配列 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 }
}