Use las instrucciones SPL extend y where para ejecutar cálculos SQL sobre datos estructurados.
extend
Crea un campo nuevo al evaluar una expresión SQL. Las funciones compatibles se enumeran en SQL functions supported by SPL.
Sintaxis
| extend <output>=<sql-expr>, ...
Parámetros
|
Parámetro |
Tipo |
Obligatorio |
Descripción |
|
output |
Field |
Sí |
Nombre del campo de destino. Varias expresiones no pueden enviar su resultado al mismo campo. Importante
Si ya existe un campo con este nombre en los datos de entrada, se sobrescribe. |
|
sql-expr |
SQLExpr |
Sí |
Expresión de procesamiento de datos. Importante
|
Ejemplos
-
Ejemplo 1: use una expresión de cálculo.
* | extend Duration = EndTime - StartTime -
Ejemplo 2: use una expresión regular.
* | extend server_protocol_version=regexp_extract(server_protocol, '\d+') -
Ejemplo 3: extraiga datos desde una ruta JSON y convierta el tipo de un campo.
-
Instrucción SPL
* | extend a=json_extract(content, '$.body.a'), b=json_extract(content, '$.body.b') | extend b=cast(b as BIGINT) -
Datos de entrada
content: '{"body": {"a": 1, "b": 2}}' -
Resultado de salida
content: '{"body": {"a": 1, "b": 2}}' a: '1' b: 2
-
where
Filtra los datos con base en una expresión SQL booleana. Solo se conservan las entradas que se evalúan como true. Las funciones compatibles se enumeran en SQL functions supported by SPL.
Sintaxis
| where <sql-expr>
Parámetros
|
Parámetro |
Tipo |
Obligatorio |
Descripción |
|
sql-expr |
SQLExp |
Sí |
Expresión SQL. Se conservan las entradas que coinciden. Importante
|
Ejemplos
-
Ejemplo 1: filtre por el valor de un campo.
* | where userId='123' -
Ejemplo 2: filtre con una expresión regular.
* | where regexp_like(server_protocol, '\d+') -
Ejemplo 3: convierta un tipo de dato y filtre errores del servidor.
* | where cast(status as BIGINT) >= 500
Funciones SQL compatibles con SPL
|
Categoría |
Descripción |
Funciones comunes |
|
Calcula un único valor estadístico a partir de un conjunto de datos. |
||
|
Busca, reemplaza, extrae, concatena y da formato a datos de texto. |
||
|
Convierte, agrupa y agrega fechas y horas en los registros. |
||
|
Extrae datos de objetos JSON, los convierte o calcula sus estadísticas. |
||
|
Hace coincidir patrones y procesa texto. |
||
|
Calcula el cambio relativo en datos de series temporales. |
||
|
Crea, manipula, recorre y transforma arreglos. |
||
|
Trabaja con pares clave-valor. |
||
|
Ejecuta cálculos numéricos, redondeo, generación de números aleatorios y cálculos trigonométricos. |
||
|
Analiza la distribución de datos y ejecuta cálculos numéricos. |
||
|
Convierte valores entre distintos tipos de datos. |
||
|
Agrega u ordena datos dentro de una ventana. |
||
|
Analiza sintácticamente y calcula direcciones IP. |
||
|
Analiza sintácticamente estructuras URL. |
||
|
Ejecuta agregaciones aproximadas en conjuntos de datos grandes y prioriza el rendimiento sobre la precisión. |
||
|
Opera con datos binarios. |
||
|
Manipula bits binarios directamente. |
||
|
Opera con datos de geometría espacial. |
||
|
Analiza ubicaciones geográficas y ejecuta cálculos cartográficos. |
||
|
Representa y convierte colores. |
||
|
Procesa estadísticamente conjuntos de datos grandes y prioriza la eficiencia de memoria sobre la precisión. |
||
|
Compara valores entre tipos comparables: double, bigint, varchar, timestamp y date. |
||
|
Combina varias condiciones booleanas para controlar el flujo lógico. |
||
|
Convierte unidades de tamaño de datos o intervalos de tiempo. |
||
|
Analiza datos como el comportamiento de usuarios, el tráfico de aplicaciones y la conversión de objetivos de productos. |
||
|
Permite definir expresiones lambda en instrucciones SQL y SPL, así como pasarlas a otras funciones para mayor flexibilidad. |
||
|
Devuelve un valor según una condición especificada. |