buildschema() (toplama işlevi)

DynamicExpr'in tüm değerlerini kabul eden en düşük şemayı oluşturur.

Not

Bu işlev summarize işleciyle birlikte kullanılır.

Syntax

buildschema(DynamicExpr)

Söz dizimi kuralları hakkında daha fazla bilgi edinin.

Parametreler

Ad Tür Gerekli Açıklama
DynamicExpr dynamic ✔️ Toplama hesaplaması için kullanılan ifade.

Döndürülenler

Tüm DynamicExpr değerlerini kabul eden en düşük şemayı döndürür.

İpucu

Giriş bir JSON dizesiyse, JSON'yi dinamik bir değere dönüştürmek için parse_json() işlevini kullanın. Aksi takdirde bir hata oluşabilir.

Örnek

Aşağıdaki örnek, aşağıdakileri temel alan bir şema oluşturur:

  • {"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)

Sonuçlar

schema_value
{"x":["long","string"],"y":["double",{"w":"string"}],"z":{"indexer:["long","string"]},"t":{"indexer:":"string"}}

Sonuçta elde edilen şema bize şu ifadeyi söyler:

  • Kök nesne x, y, z ve t adlı dört özelliğe sahip bir kapsayıcıdır.
  • adlı x özellik long türünde veya dize türündedir.
  • double türünde ii olarak adlandırılan y özellik veya dize türünde adlı w bir özelliğe sahip başka bir kapsayıcı.
  • indexer anahtar sözcüğü, ve t değerlerinin diziler olduğunu z gösterir.
  • Dizideki z her öğe uzun türünde veya dize türündedir.
  • t bir dize dizisidir.
  • Her özellik örtük olarak isteğe bağlıdır ve herhangi bir dizi boş olabilir.

Şema modeli

Döndürülen şemanın söz dizimi:

Kapsayıcı ::= '{' Adlandırılmış türü* '}'; Adlandırılmış tür: := (ad | '""indexer') ':' Türü; Tür ::= İlkel-tür | Birleşim türü | Kapsayıcı; Birleşim türü ::= '[' Tür* ']'; Temel öğe türü ::= "long" | "dize" | ...;

Değerler, Kusto dinamik değeri olarak kodlanmış TypeScript türü ek açıklamalarının bir alt kümesine eşdeğerdir. TypeScript'te örnek şema şöyle olabilir:

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