Aracılığıyla paylaş


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.

Sözdizimi

buildschema(DynamicExpr)

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

Parametreler

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

Döndürülenler

DynamicExpr'in tüm 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 aşağıdakileri 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.
  • çift türünde ii adlı 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 şöyledir:

Kapsayıcı ::= '{' Named-type* '}'; Adlandırılmış tür: := (ad | '""indexer') ':' Türü; Tür ::= İlkel-tür | Birleşim türü | Konteyner; Birleşim türü ::= '[' Tür* ']'; İlkel tür ::= "long" | "string" | ...;

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 }
}