Freigeben über


buildschema() (Aggregationsfunktion)

Gilt für: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Erstellt das minimale Schema, das alle Werte von DynamicExpr zulässt.

Hinweis

Diese Funktion wird zusammen mit dem Zusammenfassungsoperator verwendet.

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, dass z arrays sind t .
  • 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 }
}