buildschema() (función de agregación)
Se aplica a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Compila el esquema mínimo que admite todos los valores de DynamicExpr.
Nota:
Esta función se usa junto con el operador summarize.
Sintaxis
buildschema
(
DynamicExpr)
Obtenga más información sobre las convenciones de sintaxis.
Parámetros
Nombre | Type | Obligatorio | Descripción |
---|---|---|---|
DynamicExpr | dynamic |
✔️ | Expresión usada para el cálculo de agregaciones. |
Devoluciones
Devuelve el esquema mínimo que admite todos los valores de DynamicExpr.
Sugerencia
Si la entrada es una cadena JSON, use la función parse_json() para convertir el JSON en un valor dinámico . De lo contrario, puede producirse un error.
Ejemplo
En el ejemplo siguiente se compila un esquema basado en:
{"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)
Resultados
schema_value |
---|
{"x":["long","string"],"y":["double",{"w":"string"}],"z":{"indexer ":["long","string"]},"t":{"indexer :"string"}} |
El esquema resultante nos indica que:
- El objeto raíz es un contenedor con cuatro propiedades denominadas x, y, z y t.
- La propiedad denominada
x
es de tipo long o de tipo string. - La propiedad denominada
y
ii de tipo double u otro contenedor con una propiedad denominadaw
cadena de tipo. - La
indexer
palabra clave indica quez
yt
son matrices. - Cada elemento de la matriz
z
es de tipo long o de tipo string. t
es una matriz de cadenas.- Cada propiedad es implícitamente opcional, y cualquier matriz puede estar vacía.
Modelo de esquema
La sintaxis del esquema devuelto es:
Contenedor ::= '{' Named-type* '}'; Tipo con nombre: := (nombre | '""indexer
') ':' Type; Tipo ::= Tipo primitivo | Tipo de unión | Contenedor; Tipo de unión ::= '[' Type* ']'; Tipo primitivo ::= "long" | "string" | ...;
Los valores son equivalentes a un subconjunto de anotaciones de tipo TypeScript, codificadas como un valor dinámico de Kusto. En TypeScript, el esquema de ejemplo sería:
var someobject:
{
x?: (number | string),
y?: (number | { w?: string}),
z?: { [n:number] : (long | string)},
t?: { [n:number]: string }
}