Compartilhar via


buildschema() (função de agregação)

Cria o esquema mínimo que admite todos os valores de DynamicExpr.

Observação

Essa função é usada em conjunto com o operador summarize.

Sintaxe

buildschema(DynamicExpr)

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Digitar Obrigatória Descrição
DynamicExpr dynamic ✔️ Expressão usada para o cálculo de agregação.

Devoluções

Retorna o esquema mínimo que admite todos os valores de DynamicExpr.

Dica

Se a entrada for uma cadeia de caracteres JSON, use a função parse_json() para converter o JSON em um valor dinâmico . Caso contrário, poderá ocorrer um erro.

Exemplo

O exemplo a seguir cria um esquema com base em:

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

O esquema resultante nos diz que:

  • O objeto raiz é um contêiner com quatro propriedades chamadas x, y, z e t.
  • A propriedade chamada x é do tipo long ou do tipo string.
  • A propriedade chamada y ii do tipo double, ou outro contêiner com uma propriedade chamada w do tipo string.
  • A indexer palavra-chave indica que z e t são matrizes.
  • Cada item na matriz z é do tipo long ou do tipo string.
  • t é uma matriz de cadeias de caracteres.
  • Todas as propriedades são implicitamente opcionais e qualquer matriz pode estar vazia.

Modelo de esquema

A sintaxe do esquema retornado é:

Contêiner ::= '{' Named-type* '}'; Nomeado-tipo: := (nome | '"indexer"') ':' Tipo; Tipo ::= Tipo primitivo | Tipo de união | Recipiente; Tipo de união ::= '[' Tipo* ']'; Tipo primitivo ::= "longo" | "corda" | ...;

Os valores são equivalentes a um subconjunto de anotações do tipo TypeScript, codificadas como um valor dinâmico Kusto. No TypeScript, o esquema de exemplo seria:

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