extend-valid
This page explains how to use the extend-valid operator in APL.
The extend-valid
operator in Axiom Processing Language (APL) allows you to extend a set of fields with new calculated values, where these calculations are based on conditions of validity for each row. It’s particularly useful when working with datasets that contain missing or invalid data, as it enables you to calculate and assign values only when certain conditions are met. This operator helps you keep your data clean by applying calculations to valid data points, and leaving invalid or missing values untouched.
This is a shorthand operator to create a field while also doing basic checking on the validity of the field. In many cases, additional checks are required and it is recommended in those cases a combination of an extend and a where operator are used. The basic checks that Axiom preform depend on the type of the expression:
- Dictionary: Check if the dictionary is not null and has at least one entry.
- Array: Check if the arrat is not null and has at least one value.
- String: Check is the string is not empty and has at least one character.
- Other types: The same logic as
tobool
and a check for true.
You can use extend-valid
to perform conditional transformations on large datasets, especially in scenarios where data quality varies or when dealing with complex log or telemetry data.
For users of other query languages
If you come from other query languages, this section explains how to adjust your existing queries to achieve the same results in APL.
Usage
Syntax
Parameters
FieldName
: The name of the existing field that you want to extend.Expression
: The expression to evaluate and apply for valid rows.
Returns
The operator returns a table where the specified fields are extended with new values based on the given expression for valid rows. The original value remains unchanged.
Use case examples
In this use case, you normalize the HTTP request methods by converting them to uppercase for valid entries.
Query
Output
_time | method | upper_method |
---|---|---|
2023-10-01 12:00:00 | get | GET |
2023-10-01 12:01:00 | POST | POST |
2023-10-01 12:02:00 | NULL | NULL |
In this query, the toupper
function converts the method
field to uppercase, but only for valid entries. If the method
field is null, the result remains null.