always¶
Type of operation: Filter
Description¶
When the verb input is a Resource dataset, always
selects all resources that matched the predicate at all times.
always
may also be applied to a non-Resource dataset if it has a primary key. In that case, the primary key identifies groups of rows. always
selects all groups where every row in the group matches the predicate.
Usage¶
always predicate, [ frame ]
Argument |
Type |
Optional |
Repeatable |
Restrictions |
---|---|---|---|---|
predicate |
bool |
no |
no |
none |
frame |
frame |
yes |
no |
constant |
Accelerable¶
always is accelerable if there is a frame() argument. A dataset that only uses accelerable verbs can be accelerated, making queries on the dataset respond faster.
Examples¶
always string(status_code) ~ /^2.*/
Select only resources where the status_code
column, converted to string, always started with 2
, at all points of the query time window. This formulation is not accelerable.
always string(status_code) ~ /^2.*/, frame(back: 30m)
Select only resources where the status_code
column, converted to string, started with 2
, at all times in the last half hour. This formulation is accelerable because the frame(back:30m)
argument specifies a relative time range to check.
always bytesUsed > 20000000
Assume the verb input is an Event dataset representing memory usage metrics. The input dataset has a Valid From
field “timestamp”, a primary key (“deviceId”), and an additional column “bytesUsed”. The OPAL selects the “deviceId”s for which bytesUsed is above 20000000 at all times, and returns all rows for the selected “deviceId”s.