Lookup UDF Join
Lookup UDF Join is only supported with the single-stage query engine (v1). For more information about using JOINs with the multi-stage query engine, see JOINs.
Lookup UDF is used to get dimension data via primary key from a dimension table allowing a decoration join functionality. Lookup UDF can only be used with a dimension table in Pinot.
The UDF function syntax is listed as below:
dimTable Name of the dim table to perform the lookup on.
dimColToLookUp The column name of the dim table to be retrieved to decorate our result.
Noted that:
all the dim-table-related expressions are expressed as literal strings, this is the LOOKUP UDF syntax limitation: we cannot express column identifier which doesn't exist in the query's main table, which is the factTable table.
the syntax definition of [ '''dimJoinKey''', factJoinKey ]* indicates that if there are multiple dim partition columns, there should be multiple join key pair expressed.
Here are some of the examples
Single-partition-key-column Example
Consider the table baseballStats
and dim table dimBaseballTeams
several acceptable queries are:
Dim-Fact LOOKUP example
playerName
teamID
teamName
teamAddress
Self LOOKUP example
teamID
nameFromLocal
nameFromLookup
Complex-partition-key-columns Example
Consider a single dimension table with schema:
BILLING SCHEMA
Self LOOKUP example
customerId
missedPayment
lookedupCity
The data return type of the UDF will be that of the dimColToLookUp column type.
when multiple primary key columns are used for the dimension table (e.g. composite primary key), ensure that the order of keys appearing in the lookup() UDF is the same as the order defined in the primaryKeyColumns from the dimension table schema.