Use as instruções SPL extend e where para executar cálculos SQL em dados estruturados.
extend
Cria um novo campo ao avaliar uma expressão SQL. As funções compatíveis estão listadas em Funções SQL compatíveis com SPL.
Sintaxe
| extend <output>=<sql-expr>, ...
Parâmetros
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
output |
Campo |
Sim |
Nome do campo de destino. Várias expressões não podem gerar saída no mesmo campo. Importante
Se já existir um campo com esse nome nos dados de entrada, ele será sobrescrito. |
|
sql-expr |
SQLExpr |
Sim |
Expressão de processamento de dados. Importante
|
Exemplos
-
Exemplo 1: Uso de uma expressão de cálculo.
* | extend Duration = EndTime - StartTime -
Exemplo 2: Aplicação de uma expressão regular.
* | extend server_protocol_version=regexp_extract(server_protocol, '\d+') -
Exemplo 3: Extração de um caminho JSON e conversão de tipo de campo.
-
Instrução SPL
* | extend a=json_extract(content, '$.body.a'), b=json_extract(content, '$.body.b') | extend b=cast(b as BIGINT) -
Dados de entrada
content: '{"body": {"a": 1, "b": 2}}' -
Resultado da saída
content: '{"body": {"a": 1, "b": 2}}' a: '1' b: 2
-
where
Filtra dados com base em uma expressão booleana SQL. Apenas as entradas avaliadas como true são mantidas. As funções compatíveis estão listadas em Funções SQL compatíveis com SPL.
Sintaxe
| where <sql-expr>
Parâmetros
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
sql-expr |
SQLExp |
Sim |
Expressão SQL. As entradas correspondentes são mantidas. Importante
|
Exemplos
-
Exemplo 1: Filtragem por valor de campo.
* | where userId='123' -
Exemplo 2: Filtragem com expressão regular.
* | where regexp_like(server_protocol, '\d+') -
Exemplo 3: Conversão de tipo de dado e filtragem de erros no servidor.
* | where cast(status as BIGINT) >= 500
Funções SQL compatíveis com SPL
|
Categoria |
Descrição |
Funções comuns |
|
Calcula um único valor estatístico a partir de um conjunto de dados. |
||
|
Localiza, substitui, extrai, concatena e formata dados de texto. |
||
|
Converte, agrupa e agrega datas e horas em logs. |
||
|
Extrai dados de objetos JSON, converte-os ou calcula estatísticas sobre eles. |
||
|
Executa correspondência de padrões e processamento de texto. |
||
|
Calcula a variação relativa em dados de séries temporais. |
||
|
Cria, manipula, percorre e transforma arrays. |
||
|
Opera com pares chave-valor. |
||
|
Realiza cálculos numéricos, arredondamentos, geração de números aleatórios e cálculos trigonométricos. |
||
|
Executa análise de distribuição de dados e cálculos numéricos. |
||
|
Converte valores entre diferentes tipos de dados. |
||
|
Agrega ou ordena dados em uma janela. |
||
|
Analisa e calcula endereços IP. |
||
|
Analisa estruturas de url. |
||
|
Realiza agregações aproximadas em grandes conjuntos de dados, priorizando desempenho em detrimento da precisão absoluta. |
||
|
Opera sobre dados binários. |
||
|
Manipula diretamente bits binários. |
||
|
Opera sobre dados de geometria espacial. |
||
|
Realiza análises de localização geográfica e cálculos cartográficos. |
||
|
Representa e converte cores. |
||
|
Realiza processamento estatístico em grandes conjuntos de dados, priorizando eficiência de memória em detrimento da precisão absoluta. |
||
|
Compara valores entre tipos compatíveis: double, bigint, varchar, timestamp e date. |
||
|
Combina múltiplas condições booleanas para controlar o fluxo lógico. |
||
|
Converte unidades de tamanho de dados ou intervalos de tempo. |
||
|
Analisa dados como comportamento do usuário, tráfego de aplicativos e conversão de metas de produtos. |
||
|
Permite definir expressões lambda em instruções SQL e SPL e passá-las para outras funções, oferecendo maior flexibilidade. |
||
|
Retorna um valor com base em uma condição especificada. |