The array_rotate_left function in Axiom Processing Language (APL) rotates the elements of an array to the left by a specified number of positions. It’s useful when you want to reorder elements in a fixed-length array, shifting elements to the left while moving the leftmost elements to the end. For instance, this function can help analyze sequences where relative order matters but the starting position doesn’t, such as rotating network logs, error codes, or numeric arrays in data for pattern identification.
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.
In APL, array_rotate_left allows for direct rotation within the array. Splunk SPL doesn’t have a direct equivalent, so you may need to combine multiple SPL functions to achieve a similar rotation effect.
print rotated_array = array_rotate_left(dynamic([1,2,3,4]), 1)ANSI SQL lacks a direct equivalent for array rotation within arrays. A similar transformation can be achieved using array functions if available or by restructuring the array through custom logic.
print rotated_array = array_rotate_left(dynamic([1,2,3,4]), 2)Usage
Syntax
array_rotate_left(array, positions)Parameters
array: The array to be rotated. Use a dynamic data type.positions: An integer specifying the number of positions to rotate the array to the left.
Returns
A new array where the elements have been rotated to the left by the specified number of positions.
Use case example
Analyze traces by rotating the field order for visualization or pattern matching.
Query
['otel-demo-traces']
| extend rotated_sequence = array_rotate_left(events, 1)Output
[
{
"name": "Enqueued",
"timestamp": 1733997117722909000
},
{
"timestamp": 1733997117722911700,
"name": "Sent"
},
{
"name": "ResponseReceived",
"timestamp": 1733997117723591400
}
][
{
"timestamp": 1733997117722911700,
"name": "Sent"
},
{
"name": "ResponseReceived",
"timestamp": 1733997117723591400
},
{
"timestamp": 1733997117722909000,
"name": "Enqueued"
}
]This example rotates trace-related fields, which can help to identify variations in trace data when visualized differently.
List of related functions
- array_slice: Extracts a subset of elements from an array.
- array_rotate_right: Rotates array elements to the right by a specified number of positions.
- array_reverse: Reverses the order of array elements.