"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3454],{15680:(e,o,t)=>{t.d(o,{xA:()=>u,yg:()=>g});var n=t(96540);function r(e,o,t){return o in e?Object.defineProperty(e,o,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[o]=t,e}function a(e,o){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);o&&(n=n.filter((function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable}))),t.push.apply(t,n)}return t}function l(e){for(var o=1;o<arguments.length;o++){var t=null!=arguments[o]?arguments[o]:{};o%2?a(Object(t),!0).forEach((function(o){r(e,o,t[o])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):a(Object(t)).forEach((function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(t,o))}))}return e}function i(e,o){if(null==e)return{};var t,n,r=function(e,o){if(null==e)return{};var t,n,r={},a=Object.keys(e);for(n=0;n<a.length;n++)t=a[n],o.indexOf(t)>=0||(r[t]=e[t]);return r}(e,o);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)t=a[n],o.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var p=n.createContext({}),s=function(e){var o=n.useContext(p),t=o;return e&&(t="function"==typeof e?e(o):l(l({},o),e)),t},u=function(e){var o=s(e.components);return n.createElement(p.Provider,{value:o},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var o=e.children;return n.createElement(n.Fragment,{},o)}},y=n.forwardRef((function(e,o){var t=e.components,r=e.mdxType,a=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),d=s(t),y=r,g=d["".concat(p,".").concat(y)]||d[y]||c[y]||a;return t?n.createElement(g,l(l({ref:o},u),{},{components:t})):n.createElement(g,l({ref:o},u))}));function g(e,o){var t=arguments,r=o&&o.mdxType;if("string"==typeof e||r){var a=t.length,l=new Array(a);l[0]=y;var i={};for(var p in o)hasOwnProperty.call(o,p)&&(i[p]=o[p]);i.originalType=e,i[d]="string"==typeof e?e:r,l[1]=i;for(var s=2;s<a;s++)l[s]=t[s];return n.createElement.apply(null,l)}return n.createElement.apply(null,t)}y.displayName="MDXCreateElement"},92583:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>u,contentTitle:()=>p,default:()=>g,frontMatter:()=>i,metadata:()=>s,toc:()=>d});var n=t(58168),r=t(98587),a=(t(96540),t(15680)),l=["components"],i={id:"lookups-api",title:"Lookups API",sidebar_label:"Lookups"},p=void 0,s={unversionedId:"api-reference/lookups-api",id:"api-reference/lookups-api",title:"Lookups API",description:"\x3c!--",source:"@site/docs/29.0.0/api-reference/lookups-api.md",sourceDirName:"api-reference",slug:"/api-reference/lookups-api",permalink:"/docs/29.0.0/api-reference/lookups-api",draft:!1,tags:[],version:"current",frontMatter:{id:"lookups-api",title:"Lookups API",sidebar_label:"Lookups"},sidebar:"docs",previous:{title:"Automatic compaction",permalink:"/docs/29.0.0/api-reference/automatic-compaction-api"},next:{title:"Service status",permalink:"/docs/29.0.0/api-reference/service-status-api"}},u={},d=[{value:"Configure lookups",id:"configure-lookups",level:2},{value:"Bulk update",id:"bulk-update",level:3},{value:"Update lookup",id:"update-lookup",level:3},{value:"Get all lookups",id:"get-all-lookups",level:3},{value:"Get lookup",id:"get-lookup",level:3},{value:"Delete lookup",id:"delete-lookup",level:3},{value:"Delete tier",id:"delete-tier",level:3},{value:"List tier names",id:"list-tier-names",level:3},{value:"List lookup names",id:"list-lookup-names",level:3},{value:"Lookup status",id:"lookup-status",level:2},{value:"List load status of all lookups",id:"list-load-status-of-all-lookups",level:3},{value:"List load status of lookups in a tier",id:"list-load-status-of-lookups-in-a-tier",level:3},{value:"List load status of single lookup",id:"list-load-status-of-single-lookup",level:3},{value:"List lookup state of all processes",id:"list-lookup-state-of-all-processes",level:3},{value:"List lookup state of processes in a tier",id:"list-lookup-state-of-processes-in-a-tier",level:3},{value:"List lookup state of single process",id:"list-lookup-state-of-single-process",level:3},{value:"Internal API",id:"internal-api",level:2},{value:"Get lookups",id:"get-lookups",level:3},{value:"Get lookup",id:"get-lookup-1",level:3}],c={toc:d},y="wrapper";function g(e){var o=e.components,t=(0,r.A)(e,l);return(0,a.yg)(y,(0,n.A)({},c,t,{components:o,mdxType:"MDXLayout"}),(0,a.yg)("p",null,"This document describes the API endpoints to configure, update, retrieve, and manage lookups for Apache Druid."),(0,a.yg)("h2",{id:"configure-lookups"},"Configure lookups"),(0,a.yg)("h3",{id:"bulk-update"},"Bulk update"),(0,a.yg)("p",null,"Lookups can be updated in bulk by posting a JSON object to ",(0,a.yg)("inlineCode",{parentName:"p"},"/druid/coordinator/v1/lookups/config"),". The format of the json object is as follows:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-json"},'{\n    "<tierName>": {\n        "<lookupName>": {\n          "version": "<version>",\n          "lookupExtractorFactory": {\n            "type": "<someExtractorFactoryType>",\n            "<someExtractorField>": "<someExtractorValue>"\n          }\n        }\n    }\n}\n')),(0,a.yg)("p",null,'Note that "version" is an arbitrary string assigned by the user, when making updates to existing lookup then user would need to specify a lexicographically higher version.'),(0,a.yg)("p",null,"For example, a config might look something like:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-json"},'{\n  "__default": {\n    "country_code": {\n      "version": "v0",\n      "lookupExtractorFactory": {\n        "type": "map",\n        "map": {\n          "77483": "United States"\n        }\n      }\n    },\n    "site_id": {\n      "version": "v0",\n      "lookupExtractorFactory": {\n        "type": "cachedNamespace",\n        "extractionNamespace": {\n          "type": "jdbc",\n          "connectorConfig": {\n            "createTables": true,\n            "connectURI": "jdbc:mysql:\\/\\/localhost:3306\\/druid",\n            "user": "druid",\n            "password": "diurd"\n          },\n          "table": "lookupTable",\n          "keyColumn": "country_id",\n          "valueColumn": "country_name",\n          "tsColumn": "timeColumn"\n        },\n        "firstCacheTimeout": 120000,\n        "injective": true\n      }\n    },\n    "site_id_customer1": {\n      "version": "v0",\n      "lookupExtractorFactory": {\n        "type": "map",\n        "map": {\n          "847632": "Internal Use Only"\n        }\n      }\n    },\n    "site_id_customer2": {\n      "version": "v0",\n      "lookupExtractorFactory": {\n        "type": "map",\n        "map": {\n          "AHF77": "Home"\n        }\n      }\n    }\n  },\n  "realtime_customer1": {\n    "country_code": {\n      "version": "v0",\n      "lookupExtractorFactory": {\n        "type": "map",\n        "map": {\n          "77483": "United States"\n        }\n      }\n    },\n    "site_id_customer1": {\n      "version": "v0",\n      "lookupExtractorFactory": {\n        "type": "map",\n        "map": {\n          "847632": "Internal Use Only"\n        }\n      }\n    }\n  },\n  "realtime_customer2": {\n    "country_code": {\n      "version": "v0",\n      "lookupExtractorFactory": {\n        "type": "map",\n        "map": {\n          "77483": "United States"\n        }\n      }\n    },\n    "site_id_customer2": {\n      "version": "v0",\n      "lookupExtractorFactory": {\n        "type": "map",\n        "map": {\n          "AHF77": "Home"\n        }\n      }\n    }\n  }\n}\n')),(0,a.yg)("p",null,"All entries in the map will UPDATE existing entries. No entries will be deleted."),(0,a.yg)("h3",{id:"update-lookup"},"Update lookup"),(0,a.yg)("p",null,"A ",(0,a.yg)("inlineCode",{parentName:"p"},"POST")," to a particular lookup extractor factory via ",(0,a.yg)("inlineCode",{parentName:"p"},"/druid/coordinator/v1/lookups/config/{tier}/{id}")," creates or updates that specific extractor factory."),(0,a.yg)("p",null,"For example, a post to ",(0,a.yg)("inlineCode",{parentName:"p"},"/druid/coordinator/v1/lookups/config/realtime_customer1/site_id_customer1")," might contain the following:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-json"},'{\n  "version": "v1",\n  "lookupExtractorFactory": {\n    "type": "map",\n    "map": {\n      "847632": "Internal Use Only"\n    }\n  }\n}\n')),(0,a.yg)("p",null,"This will replace the ",(0,a.yg)("inlineCode",{parentName:"p"},"site_id_customer1")," lookup in the ",(0,a.yg)("inlineCode",{parentName:"p"},"realtime_customer1")," with the definition above."),(0,a.yg)("p",null,"Assign a unique version identifier each time you update a lookup extractor factory. Otherwise the call will fail."),(0,a.yg)("h3",{id:"get-all-lookups"},"Get all lookups"),(0,a.yg)("p",null,"A ",(0,a.yg)("inlineCode",{parentName:"p"},"GET")," to ",(0,a.yg)("inlineCode",{parentName:"p"},"/druid/coordinator/v1/lookups/config/all")," will return all known lookup specs for all tiers."),(0,a.yg)("h3",{id:"get-lookup"},"Get lookup"),(0,a.yg)("p",null,"A ",(0,a.yg)("inlineCode",{parentName:"p"},"GET")," to a particular lookup extractor factory is accomplished via ",(0,a.yg)("inlineCode",{parentName:"p"},"/druid/coordinator/v1/lookups/config/{tier}/{id}")),(0,a.yg)("p",null,"Using the prior example, a ",(0,a.yg)("inlineCode",{parentName:"p"},"GET")," to ",(0,a.yg)("inlineCode",{parentName:"p"},"/druid/coordinator/v1/lookups/config/realtime_customer2/site_id_customer2")," should return"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-json"},'{\n  "version": "v1",\n  "lookupExtractorFactory": {\n    "type": "map",\n    "map": {\n      "AHF77": "Home"\n    }\n  }\n}\n')),(0,a.yg)("h3",{id:"delete-lookup"},"Delete lookup"),(0,a.yg)("p",null,"A ",(0,a.yg)("inlineCode",{parentName:"p"},"DELETE")," to ",(0,a.yg)("inlineCode",{parentName:"p"},"/druid/coordinator/v1/lookups/config/{tier}/{id}")," will remove that lookup from the cluster. If it was last lookup in the tier, then tier is deleted as well."),(0,a.yg)("h3",{id:"delete-tier"},"Delete tier"),(0,a.yg)("p",null,"A ",(0,a.yg)("inlineCode",{parentName:"p"},"DELETE")," to ",(0,a.yg)("inlineCode",{parentName:"p"},"/druid/coordinator/v1/lookups/config/{tier}")," will remove that tier from the cluster."),(0,a.yg)("h3",{id:"list-tier-names"},"List tier names"),(0,a.yg)("p",null,"A ",(0,a.yg)("inlineCode",{parentName:"p"},"GET")," to ",(0,a.yg)("inlineCode",{parentName:"p"},"/druid/coordinator/v1/lookups/config")," will return a list of known tier names in the dynamic configuration.\nTo discover a list of tiers currently active in the cluster in addition to ones known in the dynamic configuration, the parameter ",(0,a.yg)("inlineCode",{parentName:"p"},"discover=true")," can be added as per ",(0,a.yg)("inlineCode",{parentName:"p"},"/druid/coordinator/v1/lookups/config?discover=true"),"."),(0,a.yg)("h3",{id:"list-lookup-names"},"List lookup names"),(0,a.yg)("p",null,"A ",(0,a.yg)("inlineCode",{parentName:"p"},"GET")," to ",(0,a.yg)("inlineCode",{parentName:"p"},"/druid/coordinator/v1/lookups/config/{tier}")," will return a list of known lookup names for that tier."),(0,a.yg)("p",null,"These end points can be used to get the propagation status of configured lookups to processes using lookups such as Historicals."),(0,a.yg)("h2",{id:"lookup-status"},"Lookup status"),(0,a.yg)("h3",{id:"list-load-status-of-all-lookups"},"List load status of all lookups"),(0,a.yg)("p",null,(0,a.yg)("inlineCode",{parentName:"p"},"GET /druid/coordinator/v1/lookups/status")," with optional query parameter ",(0,a.yg)("inlineCode",{parentName:"p"},"detailed"),"."),(0,a.yg)("h3",{id:"list-load-status-of-lookups-in-a-tier"},"List load status of lookups in a tier"),(0,a.yg)("p",null,(0,a.yg)("inlineCode",{parentName:"p"},"GET /druid/coordinator/v1/lookups/status/{tier}")," with optional query parameter ",(0,a.yg)("inlineCode",{parentName:"p"},"detailed"),"."),(0,a.yg)("h3",{id:"list-load-status-of-single-lookup"},"List load status of single lookup"),(0,a.yg)("p",null,(0,a.yg)("inlineCode",{parentName:"p"},"GET /druid/coordinator/v1/lookups/status/{tier}/{lookup}")," with optional query parameter ",(0,a.yg)("inlineCode",{parentName:"p"},"detailed"),"."),(0,a.yg)("h3",{id:"list-lookup-state-of-all-processes"},"List lookup state of all processes"),(0,a.yg)("p",null,(0,a.yg)("inlineCode",{parentName:"p"},"GET /druid/coordinator/v1/lookups/nodeStatus")," with optional query parameter ",(0,a.yg)("inlineCode",{parentName:"p"},"discover")," to discover tiers advertised by other Druid nodes, or by default, returning all configured lookup tiers. The default response will also include the lookups which are loaded, being loaded, or being dropped on each node, for each tier, including the complete lookup spec. Add the optional query parameter ",(0,a.yg)("inlineCode",{parentName:"p"},"detailed=false")," to only include the 'version' of the lookup instead of the complete spec."),(0,a.yg)("h3",{id:"list-lookup-state-of-processes-in-a-tier"},"List lookup state of processes in a tier"),(0,a.yg)("p",null,(0,a.yg)("inlineCode",{parentName:"p"},"GET /druid/coordinator/v1/lookups/nodeStatus/{tier}")),(0,a.yg)("h3",{id:"list-lookup-state-of-single-process"},"List lookup state of single process"),(0,a.yg)("p",null,(0,a.yg)("inlineCode",{parentName:"p"},"GET /druid/coordinator/v1/lookups/nodeStatus/{tier}/{host:port}")),(0,a.yg)("h2",{id:"internal-api"},"Internal API"),(0,a.yg)("p",null,"The Peon, Router, Broker, and Historical processes all have the ability to consume lookup configuration.\nThere is an internal API these processes use to list/load/drop their lookups starting at ",(0,a.yg)("inlineCode",{parentName:"p"},"/druid/listen/v1/lookups"),".\nThese follow the same convention for return values as the cluster wide dynamic configuration. Following endpoints\ncan be used for debugging purposes but not otherwise."),(0,a.yg)("h3",{id:"get-lookups"},"Get lookups"),(0,a.yg)("p",null,"A ",(0,a.yg)("inlineCode",{parentName:"p"},"GET")," to the process at ",(0,a.yg)("inlineCode",{parentName:"p"},"/druid/listen/v1/lookups")," will return a json map of all the lookups currently active on the process.\nThe return value will be a json map of the lookups to their extractor factories."),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-json"},'{\n  "site_id_customer2": {\n    "version": "v1",\n    "lookupExtractorFactory": {\n      "type": "map",\n      "map": {\n        "AHF77": "Home"\n      }\n    }\n  }\n}\n')),(0,a.yg)("h3",{id:"get-lookup-1"},"Get lookup"),(0,a.yg)("p",null,"A ",(0,a.yg)("inlineCode",{parentName:"p"},"GET")," to the process at ",(0,a.yg)("inlineCode",{parentName:"p"},"/druid/listen/v1/lookups/some_lookup_name")," will return the LookupExtractorFactory for the lookup identified by ",(0,a.yg)("inlineCode",{parentName:"p"},"some_lookup_name"),".\nThe return value will be the json representation of the factory."),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-json"},'{\n  "version": "v1",\n  "lookupExtractorFactory": {\n    "type": "map",\n    "map": {\n      "AHF77": "Home"\n    }\n  }\n}\n')))}g.isMDXComponent=!0}}]);