lookup

Type of operation: Join

Description

Find matching rows in a dataset, making new columns in the output dataset.

The lookup verb takes a join predicate in the form of on(foo=@other.foo and bar=@other.bar ..), which defines what to look up by. The equality conditions in the predicate must follow one of the links. The remaining arguments should be of the form name:@target.value, which define what values to retrieve from the target dataset.

Usage

lookup [ predicate_1, predicate_2, ... ], [ columnbinding_1, columnbinding_2, ... ]

Argument

Type

Optional

Repeatable

Restrictions

predicate

bool

yes

yes

none

columnbinding

expression

yes

yes

none

Accelerable

lookup is always accelerable if the input is accelerable. A dataset that only uses accelerable verbs can be accelerated, making queries on the dataset respond faster.

Examples

lookup on([email protected] and [email protected]), hostname:@host.name, hostip:@host.ip

Using the values for ‘host_uid’ and ‘host_cluster’, look up the rows matching the same ‘uid’ and ‘cluster’ values in the input table named ‘host’. Extract the ‘name’ and ‘ip’ values from those ‘host’ dataset rows, using them populate new columns in the output called ‘hostname’ and ‘hostip’.