buildschema() (Aggregationsfunktion)
Gilt für: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Erstellt das minimale Schema, das alle Werte von DynamicExpr zulässt.
Syntax
buildschema
(
DynamicExpr)
Erfahren Sie mehr über Syntaxkonventionen.
Parameter
Name | Type | Erforderlich | Beschreibung |
---|---|---|---|
DynamicExpr | dynamic |
✔️ | Ausdruck, der für die Aggregationsberechnung verwendet wird. |
Gibt zurück
Gibt das minimale Schema zurück, das alle Werte von DynamicExpr zulässt.
Tipp
Wenn es sich bei der Eingabe um eine JSON-Zeichenfolge handelt, verwenden Sie die parse_json() -Funktion, um den JSON-Code in einen dynamischen Wert zu konvertieren. Andernfalls tritt möglicherweise ein Fehler auf.
Beispiel
Im folgenden Beispiel wird ein Schema basierend auf folgenden Komponenten erstellt:
{"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)
Ergebnisse
schema_value |
---|
{"x":["long","string"],"y":["double",{"w":"string"}],"z":{"indexer :["long","string"]},"t":{"indexer ":"string"}}} |
Das resultierende Schema gibt folgendes an:
- Das Stammobjekt ist ein Container mit vier Eigenschaften namens "x", "y", "z" und "t".
- Die aufgerufene
x
Eigenschaft hat den Typ " long " oder "type string". - Die Eigenschaft ii
y
vom Typ "double" oder ein anderer Container mit einer Eigenschaft vom Typ "string" genanntw
. - Das
indexer
Schlüsselwort gibt an, dassz
arrays sindt
. - Jedes Element im Array
z
weist den Typ "long" oder "type string" auf. t
ist ein Array von Zeichenfolgen.- Jede Eigenschaft ist implizit optional, und jedes Array kann leer sein.
Schemamodell
Die Syntax des zurückgegebenen Schemas lautet folgendermaßen:
Container ::= '{' Named-type* '}'; Benannter Typ: := (Name | '"indexer
"') ':' Typ; Typ ::= Primitiver Typ | Union-Typ | Container; Union-type ::= '[' Type* ']'; Primitiver Typ ::= "long" | "string" | ...;
Die Werte entsprechen einer Teilmenge von TypeScript-Typanmerkungen, die als dynamischer Kusto-Wert codiert sind. In TypeScript wäre das Beispielschema:
var someobject:
{
x?: (number | string),
y?: (number | { w?: string}),
z?: { [n:number] : (long | string)},
t?: { [n:number]: string }
}