"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9448],{15680:(e,n,t)=>{t.d(n,{xA:()=>s,yg:()=>m});var a=t(96540);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function i(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function l(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)t=o[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)t=o[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var p=a.createContext({}),u=function(e){var n=a.useContext(p),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},s=function(e){var n=u(e.components);return a.createElement(p.Provider,{value:n},e.children)},g="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},y=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),g=u(t),y=r,m=g["".concat(p,".").concat(y)]||g[y]||d[y]||o;return t?a.createElement(m,i(i({ref:n},s),{},{components:t})):a.createElement(m,i({ref:n},s))}));function m(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var o=t.length,i=new Array(o);i[0]=y;var l={};for(var p in n)hasOwnProperty.call(n,p)&&(l[p]=n[p]);l.originalType=e,l[g]="string"==typeof e?e:r,i[1]=l;for(var u=2;u<o;u++)i[u]=t[u];return a.createElement.apply(null,i)}return a.createElement.apply(null,t)}y.displayName="MDXCreateElement"},95984:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>p,default:()=>m,frontMatter:()=>l,metadata:()=>u,toc:()=>g});var a=t(58168),r=t(98587),o=(t(96540),t(15680)),i=["components"],l={id:"lookups",title:"Lookups"},p=void 0,u={unversionedId:"querying/lookups",id:"querying/lookups",title:"Lookups",description:"\x3c!--",source:"@site/docs/29.0.0/querying/lookups.md",sourceDirName:"querying",slug:"/querying/lookups",permalink:"/docs/29.0.0/querying/lookups",draft:!1,tags:[],version:"current",frontMatter:{id:"lookups",title:"Lookups"},sidebar:"docs",previous:{title:"Joins",permalink:"/docs/29.0.0/querying/joins"},next:{title:"Multi-value dimensions",permalink:"/docs/29.0.0/querying/multi-value-dimensions"}},s={},g=[{value:"Query Syntax",id:"query-syntax",level:2},{value:"Query Rewrites",id:"query-rewrites",level:2},{value:"Reverse lookup",id:"reverse-lookup",level:3},{value:"Pull up",id:"pull-up",level:3},{value:"Injective lookups",id:"injective-lookups",level:3},{value:"Dynamic Configuration",id:"dynamic-configuration",level:2},{value:"Configuration propagation behavior",id:"configuration-propagation-behavior",level:2},{value:"API",id:"api",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Saving configuration across restarts",id:"saving-configuration-across-restarts",level:2},{value:"Introspect a Lookup",id:"introspect-a-lookup",level:2}],d={toc:g},y="wrapper";function m(e){var n=e.components,t=(0,r.A)(e,i);return(0,o.yg)(y,(0,a.A)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"Lookups are a concept in Apache Druid where dimension values are (optionally) replaced with new values, allowing join-like\nfunctionality. Applying lookups in Druid is similar to joining a dimension table in a data warehouse. See\n",(0,o.yg)("a",{parentName:"p",href:"/docs/29.0.0/querying/dimensionspecs"},"dimension specs"),' for more information. For the purpose of these documents, a "key"\nrefers to a dimension value to match, and a "value" refers to its replacement. So if you wanted to map\n',(0,o.yg)("inlineCode",{parentName:"p"},"appid-12345")," to ",(0,o.yg)("inlineCode",{parentName:"p"},"Super Mega Awesome App")," then the key would be ",(0,o.yg)("inlineCode",{parentName:"p"},"appid-12345")," and the value would be\n",(0,o.yg)("inlineCode",{parentName:"p"},"Super Mega Awesome App"),"."),(0,o.yg)("p",null,"It is worth noting that lookups support not just use cases where keys map one-to-one to unique values, such as country\ncode and country name, but also support use cases where multiple IDs map to the same value, e.g. multiple app-ids\nmapping to a single account manager. When lookups are one-to-one, Druid is able to apply additional\n",(0,o.yg)("a",{parentName:"p",href:"#query-rewrites"},"query rewrites"),"; see below for more details."),(0,o.yg)("p",null,"Lookups do not have history. They always use the current data. This means that if the chief account manager for a\nparticular app-id changes, and you issue a query with a lookup to store the app-id to account manager relationship,\nit will return the current account manager for that app-id REGARDLESS of the time range over which you query."),(0,o.yg)("p",null,"If you require data time range sensitive lookups, such a use case is not currently supported dynamically at query time,\nand such data belongs in the raw denormalized data for use in Druid."),(0,o.yg)("p",null,'Lookups are generally preloaded in-memory on all servers. But very small lookups (on the order of a few dozen to a few\nhundred entries) can also be passed inline in native queries time using the "map" lookup type. Refer to the\n',(0,o.yg)("a",{parentName:"p",href:"/docs/29.0.0/querying/dimensionspecs"},"dimension specs")," documentation for details."),(0,o.yg)("p",null,"Other lookup types are available as extensions, including:"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"Globally cached lookups from local files, remote URIs, or JDBC through ",(0,o.yg)("a",{parentName:"li",href:"/docs/29.0.0/development/extensions-core/lookups-cached-global"},"lookups-cached-global"),"."),(0,o.yg)("li",{parentName:"ul"},"Globally cached lookups from a Kafka topic through ",(0,o.yg)("a",{parentName:"li",href:"/docs/29.0.0/development/extensions-core/kafka-extraction-namespace"},"kafka-extraction-namespace"),".")),(0,o.yg)("h2",{id:"query-syntax"},"Query Syntax"),(0,o.yg)("p",null,"In ",(0,o.yg)("a",{parentName:"p",href:"/docs/29.0.0/querying/sql"},"Druid SQL"),", lookups can be queried using the ",(0,o.yg)("a",{parentName:"p",href:"/docs/29.0.0/querying/sql-scalar#string-functions"},(0,o.yg)("inlineCode",{parentName:"a"},"LOOKUP")," function"),", for example:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sql"},"SELECT\n  LOOKUP(store, 'store_to_country') AS country,\n  SUM(revenue)\nFROM sales\nGROUP BY 1\n")),(0,o.yg)("p",null,"The ",(0,o.yg)("inlineCode",{parentName:"p"},"LOOKUP")," function also accepts a third argument called ",(0,o.yg)("inlineCode",{parentName:"p"},"replaceMissingValueWith")," as a constant string. If the lookup\ndoes not contain a value for the provided key, then the ",(0,o.yg)("inlineCode",{parentName:"p"},"LOOKUP")," function returns this ",(0,o.yg)("inlineCode",{parentName:"p"},"replaceMissingValueWith")," value\nrather than ",(0,o.yg)("inlineCode",{parentName:"p"},"NULL"),", just like ",(0,o.yg)("inlineCode",{parentName:"p"},"COALESCE"),". For example, ",(0,o.yg)("inlineCode",{parentName:"p"},"LOOKUP(store, 'store_to_country', 'NA')")," is equivalent to\n",(0,o.yg)("inlineCode",{parentName:"p"},"COALESCE(LOOKUP(store, 'store_to_country'), 'NA')"),"."),(0,o.yg)("p",null,"Lookups can be queried using the ",(0,o.yg)("a",{parentName:"p",href:"/docs/29.0.0/querying/datasource#join"},"JOIN operator"),":"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sql"},"SELECT\n  store_to_country.v AS country,\n  SUM(sales.revenue) AS country_revenue\nFROM\n  sales\n  INNER JOIN lookup.store_to_country ON sales.store = store_to_country.k\nGROUP BY 1\n")),(0,o.yg)("admonition",{type:"info"},(0,o.yg)("p",{parentName:"admonition"},"The ",(0,o.yg)("inlineCode",{parentName:"p"},"LOOKUP")," function has automatic ",(0,o.yg)("a",{parentName:"p",href:"#query-rewrites"},"query rewrites")," available that the ",(0,o.yg)("inlineCode",{parentName:"p"},"JOIN")," approach does not,\nincluding ",(0,o.yg)("a",{parentName:"p",href:"#reverse-lookup"},"reverse lookups")," and ",(0,o.yg)("a",{parentName:"p",href:"#pull-up"},"pulling up through ",(0,o.yg)("inlineCode",{parentName:"a"},"GROUP BY")),". If these rewrites are\nimportant for you, consider using the ",(0,o.yg)("inlineCode",{parentName:"p"},"LOOKUP")," function instead of ",(0,o.yg)("inlineCode",{parentName:"p"},"JOIN"),".")),(0,o.yg)("p",null,"In native queries, lookups can be queried with ",(0,o.yg)("a",{parentName:"p",href:"/docs/29.0.0/querying/dimensionspecs"},"dimension specs or extraction functions"),"."),(0,o.yg)("h2",{id:"query-rewrites"},"Query Rewrites"),(0,o.yg)("p",null,"Druid can perform two automatic query rewrites when using the ",(0,o.yg)("inlineCode",{parentName:"p"},"LOOKUP")," function: ",(0,o.yg)("a",{parentName:"p",href:"#reverse-lookup"},"reverse lookups")," and\n",(0,o.yg)("a",{parentName:"p",href:"#pull-up"},"pulling up through ",(0,o.yg)("inlineCode",{parentName:"a"},"GROUP BY")),". These rewrites and their requirements are described in the following\nsections."),(0,o.yg)("h3",{id:"reverse-lookup"},"Reverse lookup"),(0,o.yg)("p",null,"When ",(0,o.yg)("inlineCode",{parentName:"p"},"LOOKUP")," function calls appear in the ",(0,o.yg)("inlineCode",{parentName:"p"},"WHERE")," clause of a query, Druid reverses them ",(0,o.yg)("a",{parentName:"p",href:"#table"},"when possible"),".\nFor example, if the lookup table ",(0,o.yg)("inlineCode",{parentName:"p"},"sku_to_name")," contains the mapping ",(0,o.yg)("inlineCode",{parentName:"p"},"'WB00013' => 'WhizBang Sprocket'"),", then Druid\nautomatically rewrites this query:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sql"},"SELECT\n  LOOKUP(sku, 'sku_to_name') AS name,\n  SUM(revenue)\nFROM sales\nWHERE LOOKUP(sku, 'sku_to_name') = 'WhizBang Sprocket'\nGROUP BY LOOKUP(sku, 'sku_to_name')\n")),(0,o.yg)("p",null,"Into this:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sql"},"SELECT\n  LOOKUP(sku, 'sku_to_name') AS name,\n  SUM(revenue)\nFROM sales\nWHERE sku = 'WB00013'\nGROUP BY LOOKUP(sku, 'sku_to_name')\n")),(0,o.yg)("p",null,"The difference is that in the latter case, data servers do not need to apply the ",(0,o.yg)("inlineCode",{parentName:"p"},"LOOKUP")," function while filtering, and\ncan make more efficient use of indexes for ",(0,o.yg)("inlineCode",{parentName:"p"},"sku"),"."),(0,o.yg)("a",{name:"table"},"The following table")," contains examples of when it is possible to reverse calls to `LOOKUP` while in Druid's default null handling mode. The list of examples is illustrative, albeit not exhaustive.",(0,o.yg)("table",null,(0,o.yg)("thead",{parentName:"table"},(0,o.yg)("tr",{parentName:"thead"},(0,o.yg)("th",{parentName:"tr",align:null},"SQL"),(0,o.yg)("th",{parentName:"tr",align:null},"Reversible?"))),(0,o.yg)("tbody",{parentName:"table"},(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"LOOKUP(sku, 'sku_to_name') = 'WhizBang Sprocket'")),(0,o.yg)("td",{parentName:"tr",align:null},"Yes")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"LOOKUP(sku, 'sku_to_name') IS NOT DISTINCT FROM 'WhizBang Sprocket'")),(0,o.yg)("td",{parentName:"tr",align:null},"Yes, for non-null literals")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"LOOKUP(sku, 'sku_to_name') <> 'WhizBang Sprocket'")),(0,o.yg)("td",{parentName:"tr",align:null},"No, unless ",(0,o.yg)("inlineCode",{parentName:"td"},"sku_to_name")," is ",(0,o.yg)("a",{parentName:"td",href:"#injective-lookups"},"injective"))),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"LOOKUP(sku, 'sku_to_name') IS DISTINCT FROM 'WhizBang Sprocket'")),(0,o.yg)("td",{parentName:"tr",align:null},"Yes, for non-null literals")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"LOOKUP(sku, 'sku_to_name') = 'WhizBang Sprocket' IS NOT TRUE")),(0,o.yg)("td",{parentName:"tr",align:null},"Yes")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"LOOKUP(sku, 'sku_to_name') IN ('WhizBang Sprocket', 'WhizBang Chain')")),(0,o.yg)("td",{parentName:"tr",align:null},"Yes")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"LOOKUP(sku, 'sku_to_name') NOT IN ('WhizBang Sprocket', 'WhizBang Chain')")),(0,o.yg)("td",{parentName:"tr",align:null},"No, unless ",(0,o.yg)("inlineCode",{parentName:"td"},"sku_to_name")," is ",(0,o.yg)("a",{parentName:"td",href:"#injective-lookups"},"injective"))),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"LOOKUP(sku, 'sku_to_name') IN ('WhizBang Sprocket', 'WhizBang Chain') IS NOT TRUE")),(0,o.yg)("td",{parentName:"tr",align:null},"Yes")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"LOOKUP(sku, 'sku_to_name') IS NULL")),(0,o.yg)("td",{parentName:"tr",align:null},"No")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"LOOKUP(sku, 'sku_to_name') IS NOT NULL")),(0,o.yg)("td",{parentName:"tr",align:null},"No")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"LOOKUP(UPPER(sku), 'sku_to_name') = 'WhizBang Sprocket'")),(0,o.yg)("td",{parentName:"tr",align:null},"Yes, to ",(0,o.yg)("inlineCode",{parentName:"td"},"UPPER(sku) = [key for 'WhizBang Sprocket']")," (the ",(0,o.yg)("inlineCode",{parentName:"td"},"UPPER")," function remains)")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"COALESCE(LOOKUP(sku, 'sku_to_name'), 'N/A') = 'WhizBang Sprocket'")),(0,o.yg)("td",{parentName:"tr",align:null},"Yes, but see next item for ",(0,o.yg)("inlineCode",{parentName:"td"},"= 'N/A'"))),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"COALESCE(LOOKUP(sku, 'sku_to_name'), 'N/A') = 'N/A'")),(0,o.yg)("td",{parentName:"tr",align:null},"No, unless ",(0,o.yg)("inlineCode",{parentName:"td"},"sku_to_name")," is ",(0,o.yg)("a",{parentName:"td",href:"#injective-lookups"},"injective"),", which allows Druid to ignore the ",(0,o.yg)("inlineCode",{parentName:"td"},"COALESCE"))),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"COALESCE(LOOKUP(sku, 'sku_to_name'), 'N/A') = 'WhizBang Sprocket' IS NOT TRUE")),(0,o.yg)("td",{parentName:"tr",align:null},"Yes")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"COALESCE(LOOKUP(sku, 'sku_to_name'), 'N/A') <> 'WhizBang Sprocket'")),(0,o.yg)("td",{parentName:"tr",align:null},"Yes, but see next item for ",(0,o.yg)("inlineCode",{parentName:"td"},"<> 'N/A'"))),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"COALESCE(LOOKUP(sku, 'sku_to_name'), 'N/A') <> 'N/A'")),(0,o.yg)("td",{parentName:"tr",align:null},"No, unless ",(0,o.yg)("inlineCode",{parentName:"td"},"sku_to_name")," is ",(0,o.yg)("a",{parentName:"td",href:"#injective-lookups"},"injective"),", which allows Druid to ignore the ",(0,o.yg)("inlineCode",{parentName:"td"},"COALESCE"))),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"COALESCE(LOOKUP(sku, 'sku_to_name'), sku) = 'WhizBang Sprocket'")),(0,o.yg)("td",{parentName:"tr",align:null},"No, ",(0,o.yg)("inlineCode",{parentName:"td"},"COALESCE")," is only reversible when the second argument is a constant")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"LOWER(LOOKUP(sku, 'sku_to_name')) = 'whizbang sprocket'")),(0,o.yg)("td",{parentName:"tr",align:null},"No, functions other than ",(0,o.yg)("inlineCode",{parentName:"td"},"COALESCE")," are not reversible")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"MV_CONTAINS(LOOKUP(sku, 'sku_to_name'), 'WhizBang Sprocket')")),(0,o.yg)("td",{parentName:"tr",align:null},"Yes")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"NOT MV_CONTAINS(LOOKUP(sku, 'sku_to_name'), 'WhizBang Sprocket')")),(0,o.yg)("td",{parentName:"tr",align:null},"No, unless ",(0,o.yg)("inlineCode",{parentName:"td"},"sku_to_name")," is ",(0,o.yg)("a",{parentName:"td",href:"#injective-lookups"},"injective"))),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"MV_OVERLAP(LOOKUP(sku, 'sku_to_name'), ARRAY['WhizBang Sprocket'])")),(0,o.yg)("td",{parentName:"tr",align:null},"Yes")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"NOT MV_OVERLAP(LOOKUP(sku, 'sku_to_name'), ARRAY['WhizBang Sprocket'])")),(0,o.yg)("td",{parentName:"tr",align:null},"No, unless ",(0,o.yg)("inlineCode",{parentName:"td"},"sku_to_name")," is ",(0,o.yg)("a",{parentName:"td",href:"#injective-lookups"},"injective"))))),(0,o.yg)("p",null,"You can see the difference in the native query that is generated during SQL planning, which you\ncan retrieve with ",(0,o.yg)("a",{parentName:"p",href:"/docs/29.0.0/querying/sql#explain-plan"},(0,o.yg)("inlineCode",{parentName:"a"},"EXPLAIN PLAN FOR")),". When a lookup is reversed in this way, the ",(0,o.yg)("inlineCode",{parentName:"p"},"lookup"),"\nfunction disappears and is replaced by a simpler filter, typically of type ",(0,o.yg)("inlineCode",{parentName:"p"},"equals")," or ",(0,o.yg)("inlineCode",{parentName:"p"},"in"),"."),(0,o.yg)("p",null,"Lookups are not reversed if the number of matching keys exceeds the ",(0,o.yg)("a",{parentName:"p",href:"/docs/29.0.0/querying/sql-query-context"},(0,o.yg)("inlineCode",{parentName:"a"},"sqlReverseLookupThreshold")),"\nor ",(0,o.yg)("a",{parentName:"p",href:"/docs/29.0.0/querying/sql-query-context"},(0,o.yg)("inlineCode",{parentName:"a"},"inSubQueryThreshold"))," for the query."),(0,o.yg)("p",null,"This rewrite adds some planning time that may become noticeable for larger lookups, especially if many keys map to the\nsame value. You can see the impact on planning time in the ",(0,o.yg)("inlineCode",{parentName:"p"},"sqlQuery/planningTimeMs")," metric. You can also measure the\ntime taken by ",(0,o.yg)("inlineCode",{parentName:"p"},"EXPLAIN PLAN FOR"),", which plans the query but does not execute it."),(0,o.yg)("p",null,"This rewrite can be disabled by setting ",(0,o.yg)("a",{parentName:"p",href:"/docs/29.0.0/querying/sql-query-context"},(0,o.yg)("inlineCode",{parentName:"a"},"sqlReverseLookup: false"))," in your query context."),(0,o.yg)("h3",{id:"pull-up"},"Pull up"),(0,o.yg)("p",null,"Lookups marked as ",(0,o.yg)("a",{parentName:"p",href:"#injective-lookups"},(0,o.yg)("em",{parentName:"a"},"injective"))," can be pulled up through a ",(0,o.yg)("inlineCode",{parentName:"p"},"GROUP BY"),". For example, if the lookup\n",(0,o.yg)("inlineCode",{parentName:"p"},"sku_to_name")," is injective, Druid automatically rewrites this query:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sql"},"SELECT\n  LOOKUP(sku, 'sku_to_name') AS name,\n  SUM(revenue)\nFROM sales\nGROUP BY LOOKUP(sku, 'sku_to_name')\n")),(0,o.yg)("p",null,"Into this:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-sql"},"SELECT\n  LOOKUP(sku, 'sku_to_name') AS name,\n  SUM(revenue)\nFROM sales\nGROUP BY sku\n")),(0,o.yg)("p",null,"The difference is that the ",(0,o.yg)("inlineCode",{parentName:"p"},"LOOKUP")," function is not applied until after the ",(0,o.yg)("inlineCode",{parentName:"p"},"GROUP BY")," is finished, which speeds up\nthe ",(0,o.yg)("inlineCode",{parentName:"p"},"GROUP BY"),"."),(0,o.yg)("p",null,"You can see the difference in the native query that is generated during SQL planning, which you\ncan retrieve with ",(0,o.yg)("a",{parentName:"p",href:"/docs/29.0.0/querying/sql#explain-plan"},(0,o.yg)("inlineCode",{parentName:"a"},"EXPLAIN PLAN FOR")),". When a lookup is pulled up in this way, the ",(0,o.yg)("inlineCode",{parentName:"p"},"lookup"),"\nfunction call typically moves from the ",(0,o.yg)("inlineCode",{parentName:"p"},"virtualColumns")," or ",(0,o.yg)("inlineCode",{parentName:"p"},"dimensions")," section of a native query into the\n",(0,o.yg)("inlineCode",{parentName:"p"},"postAggregations"),"."),(0,o.yg)("p",null,"This rewrite can be disabled by setting ",(0,o.yg)("a",{parentName:"p",href:"/docs/29.0.0/querying/sql-query-context"},(0,o.yg)("inlineCode",{parentName:"a"},"sqlPullUpLookup: false"))," in your query context."),(0,o.yg)("h3",{id:"injective-lookups"},"Injective lookups"),(0,o.yg)("p",null,'Injective lookups are eligible for the largest set of query rewrites. Injective lookups must satisfy the following\n"one-to-one lookup" properties:'),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"All values in the lookup table must be unique. That is, no two keys can map to the same value."),(0,o.yg)("li",{parentName:"ul"},"The lookup table must have a key-value pair defined for every input that the ",(0,o.yg)("inlineCode",{parentName:"li"},"LOOKUP")," function call may\nencounter. For example, when calling ",(0,o.yg)("inlineCode",{parentName:"li"},"LOOKUP(sku, 'sku_to_name')"),", the ",(0,o.yg)("inlineCode",{parentName:"li"},"sku_to_name")," lookup table must have a key\nfor all possible ",(0,o.yg)("inlineCode",{parentName:"li"},"sku"),"."),(0,o.yg)("li",{parentName:"ul"},"In SQL-compatible null handling mode (when ",(0,o.yg)("inlineCode",{parentName:"li"},"druid.generic.useDefaultValueForNull = false"),", the default) injective\nlookup tables are not required to have keys for ",(0,o.yg)("inlineCode",{parentName:"li"},"null"),", since ",(0,o.yg)("inlineCode",{parentName:"li"},"LOOKUP")," of ",(0,o.yg)("inlineCode",{parentName:"li"},"null")," is always ",(0,o.yg)("inlineCode",{parentName:"li"},"null")," itself."),(0,o.yg)("li",{parentName:"ul"},"When ",(0,o.yg)("inlineCode",{parentName:"li"},"druid.generic.useDefaultValueForNull = true"),", a ",(0,o.yg)("inlineCode",{parentName:"li"},"LOOKUP")," of ",(0,o.yg)("inlineCode",{parentName:"li"},"null")," retrieves the value mapped to the\nempty-string key (",(0,o.yg)("inlineCode",{parentName:"li"},'""'),"). In this mode, injective lookup tables must have an empty-string key if the ",(0,o.yg)("inlineCode",{parentName:"li"},"LOOKUP"),"\nfunction may encounter null input values.")),(0,o.yg)("p",null,"To determine whether a lookup is injective, Druid relies on an ",(0,o.yg)("inlineCode",{parentName:"p"},"injective")," property that you can set in the\n",(0,o.yg)("a",{parentName:"p",href:"/docs/29.0.0/development/extensions-core/lookups-cached-global"},"lookup definition"),". In general, you should set\n",(0,o.yg)("inlineCode",{parentName:"p"},"injective: true")," for any lookup that satisfies the required properties, to allow Druid to run your queries as fast as\npossible."),(0,o.yg)("p",null,"Druid does not verify whether lookups satisfy these required properties. Druid may return incorrect query results\nif you set ",(0,o.yg)("inlineCode",{parentName:"p"},"injective: true")," for a lookup table that is not actually a one-to-one lookup."),(0,o.yg)("h2",{id:"dynamic-configuration"},"Dynamic Configuration"),(0,o.yg)("p",null,'The following documents the behavior of the cluster-wide config which is accessible through the Coordinator.\nThe configuration is propagated through the concept of "tier" of servers.\nA "tier" is defined as a group of services which should receive a set of lookups.\nFor example, you might have all Historicals be part of ',(0,o.yg)("inlineCode",{parentName:"p"},"__default"),", and Peons be part of individual tiers for the datasources they are tasked with.\nThe tiers for lookups are completely independent of Historical tiers."),(0,o.yg)("p",null,"These configs are accessed using JSON through the following URI template"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre"},"http://<COORDINATOR_IP>:<PORT>/druid/coordinator/v1/lookups/config/{tier}/{id}\n")),(0,o.yg)("p",null,"All URIs below are assumed to have ",(0,o.yg)("inlineCode",{parentName:"p"},"http://<COORDINATOR_IP>:<PORT>")," prepended."),(0,o.yg)("p",null,"If you have NEVER configured lookups before, you MUST post an empty json object ",(0,o.yg)("inlineCode",{parentName:"p"},"{}")," to ",(0,o.yg)("inlineCode",{parentName:"p"},"/druid/coordinator/v1/lookups/config")," to initialize the configuration."),(0,o.yg)("p",null,"These endpoints will return one of the following results:"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"404 if the resource is not found"),(0,o.yg)("li",{parentName:"ul"},"400 if there is a problem in the formatting of the request"),(0,o.yg)("li",{parentName:"ul"},"202 if the request was accepted asynchronously (",(0,o.yg)("inlineCode",{parentName:"li"},"POST")," and ",(0,o.yg)("inlineCode",{parentName:"li"},"DELETE"),")"),(0,o.yg)("li",{parentName:"ul"},"200 if the request succeeded (",(0,o.yg)("inlineCode",{parentName:"li"},"GET")," only)")),(0,o.yg)("h2",{id:"configuration-propagation-behavior"},"Configuration propagation behavior"),(0,o.yg)("p",null,"The configuration is propagated to the query serving processes (Broker / Router / Peon / Historical) by the Coordinator.\nThe query serving processes have an internal API for managing lookups on the process and those are used by the Coordinator.\nThe Coordinator periodically checks if any of the processes need to load/drop lookups and updates them appropriately."),(0,o.yg)("p",null,"Please note that only 2 simultaneous lookup configuration propagation requests can be concurrently handled by a single query serving process. This limit is applied to prevent lookup handling from consuming too many server HTTP connections."),(0,o.yg)("h2",{id:"api"},"API"),(0,o.yg)("p",null,"See ",(0,o.yg)("a",{parentName:"p",href:"/docs/29.0.0/api-reference/lookups-api"},"Lookups API")," for reference on configuring lookups and lookup status. "),(0,o.yg)("h2",{id:"configuration"},"Configuration"),(0,o.yg)("p",null,"See ",(0,o.yg)("a",{parentName:"p",href:"/docs/29.0.0/configuration/#lookups-dynamic-configuration"},"Lookups Dynamic Configuration")," for Coordinator configuration."),(0,o.yg)("p",null,"To configure a Broker / Router / Historical / Peon to announce itself as part of a lookup tier, use following properties."),(0,o.yg)("table",null,(0,o.yg)("thead",{parentName:"table"},(0,o.yg)("tr",{parentName:"thead"},(0,o.yg)("th",{parentName:"tr",align:null},"Property"),(0,o.yg)("th",{parentName:"tr",align:null},"Description"),(0,o.yg)("th",{parentName:"tr",align:null},"Default"))),(0,o.yg)("tbody",{parentName:"table"},(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"druid.lookup.lookupTier")),(0,o.yg)("td",{parentName:"tr",align:null},"The tier for ",(0,o.yg)("strong",{parentName:"td"},"lookups")," for this process. This is independent of other tiers."),(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"__default"))),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"druid.lookup.lookupTierIsDatasource")),(0,o.yg)("td",{parentName:"tr",align:null},"For some things like indexing service tasks, the datasource is passed in the runtime properties of a task. This option fetches the tierName from the same value as the datasource for the task. It is suggested to only use this as Peon options for the indexing service, if at all. If true, ",(0,o.yg)("inlineCode",{parentName:"td"},"druid.lookup.lookupTier")," MUST NOT be specified"),(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},'"false"'))))),(0,o.yg)("p",null,"To configure the behavior of the dynamic configuration manager, use the following properties on the Coordinator:"),(0,o.yg)("table",null,(0,o.yg)("thead",{parentName:"table"},(0,o.yg)("tr",{parentName:"thead"},(0,o.yg)("th",{parentName:"tr",align:null},"Property"),(0,o.yg)("th",{parentName:"tr",align:null},"Description"),(0,o.yg)("th",{parentName:"tr",align:null},"Default"))),(0,o.yg)("tbody",{parentName:"table"},(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"druid.manager.lookups.hostTimeout")),(0,o.yg)("td",{parentName:"tr",align:null},"Timeout (in ms) PER HOST for processing request"),(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"2000"),"(2 seconds)")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"druid.manager.lookups.allHostTimeout")),(0,o.yg)("td",{parentName:"tr",align:null},"Timeout (in ms) to finish lookup management on all the processes."),(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"900000"),"(15 mins)")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"druid.manager.lookups.period")),(0,o.yg)("td",{parentName:"tr",align:null},"How long to pause between management cycles"),(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"120000"),"(2 mins)")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"druid.manager.lookups.threadPoolSize")),(0,o.yg)("td",{parentName:"tr",align:null},"Number of service processes that can be managed concurrently"),(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"10"))))),(0,o.yg)("h2",{id:"saving-configuration-across-restarts"},"Saving configuration across restarts"),(0,o.yg)("p",null,"It is possible to save the configuration across restarts such that a process will not have to wait for Coordinator action to re-populate its lookups. To do this the following property is set:"),(0,o.yg)("table",null,(0,o.yg)("thead",{parentName:"table"},(0,o.yg)("tr",{parentName:"thead"},(0,o.yg)("th",{parentName:"tr",align:null},"Property"),(0,o.yg)("th",{parentName:"tr",align:null},"Description"),(0,o.yg)("th",{parentName:"tr",align:null},"Default"))),(0,o.yg)("tbody",{parentName:"table"},(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"druid.lookup.snapshotWorkingDir")),(0,o.yg)("td",{parentName:"tr",align:null},"Working path used to store snapshot of current lookup configuration, leaving this property null will disable snapshot/bootstrap utility"),(0,o.yg)("td",{parentName:"tr",align:null},"null")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"druid.lookup.enableLookupSyncOnStartup")),(0,o.yg)("td",{parentName:"tr",align:null},"Enable the lookup synchronization process with Coordinator on startup. The queryable processes will fetch and load the lookups from the Coordinator instead of waiting for the Coordinator to load the lookups for them. Users may opt to disable this option if there are no lookups configured in the cluster."),(0,o.yg)("td",{parentName:"tr",align:null},"true")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"druid.lookup.numLookupLoadingThreads")),(0,o.yg)("td",{parentName:"tr",align:null},"Number of threads for loading the lookups in parallel on startup. This thread pool is destroyed once startup is done. It is not kept during the lifetime of the JVM"),(0,o.yg)("td",{parentName:"tr",align:null},"Available Processors / 2")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"druid.lookup.coordinatorFetchRetries")),(0,o.yg)("td",{parentName:"tr",align:null},"How many times to retry to fetch the lookup bean list from Coordinator, during the sync on startup."),(0,o.yg)("td",{parentName:"tr",align:null},"3")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"druid.lookup.lookupStartRetries")),(0,o.yg)("td",{parentName:"tr",align:null},"How many times to retry to start each lookup, either during the sync on startup, or during the runtime."),(0,o.yg)("td",{parentName:"tr",align:null},"3")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"druid.lookup.coordinatorRetryDelay")),(0,o.yg)("td",{parentName:"tr",align:null},"How long to delay (in millis) between retries to fetch lookup list from the Coordinator during the sync on startup."),(0,o.yg)("td",{parentName:"tr",align:null},"60_000")))),(0,o.yg)("h2",{id:"introspect-a-lookup"},"Introspect a Lookup"),(0,o.yg)("p",null,"The Broker provides an API for lookup introspection if the lookup type implements a ",(0,o.yg)("inlineCode",{parentName:"p"},"LookupIntrospectHandler"),"."),(0,o.yg)("p",null,"A ",(0,o.yg)("inlineCode",{parentName:"p"},"GET")," request to ",(0,o.yg)("inlineCode",{parentName:"p"},"/druid/v1/lookups/introspect/{lookupId}")," will return the map of complete values."),(0,o.yg)("p",null,"ex: ",(0,o.yg)("inlineCode",{parentName:"p"},"GET /druid/v1/lookups/introspect/nato-phonetic")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre"},'{\n    "A": "Alfa",\n    "B": "Bravo",\n    "C": "Charlie",\n    ...\n    "Y": "Yankee",\n    "Z": "Zulu",\n    "-": "Dash"\n}\n\n')),(0,o.yg)("p",null,"The list of keys can be retrieved via ",(0,o.yg)("inlineCode",{parentName:"p"},"GET")," to ",(0,o.yg)("inlineCode",{parentName:"p"},'/druid/v1/lookups/introspect/{lookupId}/keys"')),(0,o.yg)("p",null,"ex: ",(0,o.yg)("inlineCode",{parentName:"p"},"GET /druid/v1/lookups/introspect/nato-phonetic/keys")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre"},'[\n    "A",\n    "B",\n    "C",\n    ...\n    "Y",\n    "Z",\n    "-"\n]\n')),(0,o.yg)("p",null,"A ",(0,o.yg)("inlineCode",{parentName:"p"},"GET")," request to ",(0,o.yg)("inlineCode",{parentName:"p"},'/druid/v1/lookups/introspect/{lookupId}/values"')," will return the list of values."),(0,o.yg)("p",null,"ex: ",(0,o.yg)("inlineCode",{parentName:"p"},"GET /druid/v1/lookups/introspect/nato-phonetic/values")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre"},'[\n    "Alfa",\n    "Bravo",\n    "Charlie",\n    ...\n    "Yankee",\n    "Zulu",\n    "Dash"\n]\n')))}m.isMDXComponent=!0}}]);