Lookups are a concept in Druid where dimension values are (optionally) replaced with new values. Using lookups can improve querying experience with higher level grouping by default.
For example, in a scenario where a lookup table contains multiple dimension values 'US-EN', 'GB-EN' and 'AU-EN' correspond to a common channel name 'English', users can send Druid query with 'English' filter, and the result will return all rows containing 'US-EN', 'GB-EN' or 'AU-EN'.
Similarly, users can query with filtering either 'US-EN', 'GB-EN' or 'AU-EN', and the result will be presented with 'English' as the channel name for all. This is called non-injective lookup where two or more values in the domain would map to the same value in the range.
In a non-default injective lookup scenario, where the lookup table mapping is exclusive for each entry, then users can still get some performance boosts by having the lookup operations be done on the brokers.
To enable injective lookup, add ""injective":true" under lookups config :
For more details about injective property in lookups, please refer to: http://druid.io/docs/latest/development/extensions-core/lookups-cached-global.html
Comments
0 comments
Please sign in to leave a comment.