"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3685],{15680:(e,t,a)=>{a.d(t,{xA:()=>g,yg:()=>h});var n=a(96540);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?s(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):s(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},s=Object.keys(e);for(n=0;n<s.length;n++)a=s[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n<s.length;n++)a=s[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var l=n.createContext({}),u=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},g=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,s=e.originalType,l=e.parentName,g=i(e,["components","mdxType","originalType","parentName"]),p=u(a),y=r,h=p["".concat(l,".").concat(y)]||p[y]||c[y]||s;return a?n.createElement(h,o(o({ref:t},g),{},{components:a})):n.createElement(h,o({ref:t},g))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=a.length,o=new Array(s);o[0]=y;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:r,o[1]=i;for(var u=2;u<s;u++)o[u]=a[u];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}y.displayName="MDXCreateElement"},64159:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>g,contentTitle:()=>l,default:()=>h,frontMatter:()=>i,metadata:()=>u,toc:()=>p});var n=a(58168),r=a(98587),s=(a(96540),a(15680)),o=["components"],i={id:"web-console",title:"Web console"},l=void 0,u={unversionedId:"operations/web-console",id:"operations/web-console",title:"Web console",description:"\x3c!--",source:"@site/docs/29.0.0/operations/web-console.md",sourceDirName:"operations",slug:"/operations/web-console",permalink:"/docs/29.0.0/operations/web-console",draft:!1,tags:[],version:"current",frontMatter:{id:"web-console",title:"Web console"},sidebar:"docs",previous:{title:"Logging",permalink:"/docs/29.0.0/configuration/logging"},next:{title:"Java runtime",permalink:"/docs/29.0.0/operations/java"}},g={},p=[{value:"Home",id:"home",level:2},{value:"Query",id:"query",level:2},{value:"Data loader",id:"data-loader",level:2},{value:"Datasources",id:"datasources",level:2},{value:"Segments",id:"segments",level:2},{value:"Supervisors",id:"supervisors",level:2},{value:"Tasks",id:"tasks",level:2},{value:"Services",id:"services",level:2},{value:"Lookups",id:"lookups",level:2}],c={toc:p},y="wrapper";function h(e){var t=e.components,i=(0,r.A)(e,o);return(0,s.yg)(y,(0,n.A)({},c,i,{components:t,mdxType:"MDXLayout"}),(0,s.yg)("p",null,"Druid includes a web console for loading data, managing datasources and tasks, and viewing server status and segment information.\nYou can also run SQL and native Druid queries in the console."),(0,s.yg)("p",null,"Enable the following cluster settings to use the web console. Note that these settings are enabled by default."),(0,s.yg)("ul",null,(0,s.yg)("li",{parentName:"ul"},"Enable the Router's ",(0,s.yg)("a",{parentName:"li",href:"/docs/29.0.0/design/router#enable-the-management-proxy"},"management proxy"),"."),(0,s.yg)("li",{parentName:"ul"},"Enable ",(0,s.yg)("a",{parentName:"li",href:"/docs/29.0.0/configuration/#sql"},"Druid SQL")," for the Broker processes in the cluster.")),(0,s.yg)("p",null,"The ",(0,s.yg)("a",{parentName:"p",href:"/docs/29.0.0/design/router"},"Router")," service hosts the web console.\nAccess the web console at the following address:"),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre"},"http://<ROUTER_IP>:<ROUTER_PORT>\n")),(0,s.yg)("admonition",{type:"info"},(0,s.yg)("p",{parentName:"admonition"}," ",(0,s.yg)("strong",{parentName:"p"},"Security note:")," Without ",(0,s.yg)("a",{parentName:"p",href:"/docs/29.0.0/operations/security-overview"},"Druid user permissions")," configured, any user of the\nAPI or web console has effectively the same level of access to local files and network services as the user under which\nDruid runs. It is a best practice to avoid running Druid as the root user, and to use Druid permissions\xa0or network\nfirewalls to restrict which users have access to potentially sensitive resources.")),(0,s.yg)("p",null,"This topic presents the high-level features and functionality of the web console."),(0,s.yg)("h2",{id:"home"},"Home"),(0,s.yg)("p",null,"The ",(0,s.yg)("strong",{parentName:"p"},"Home")," view provides a high-level overview of the cluster.\nEach card is clickable and links to the appropriate view."),(0,s.yg)("p",null,"The ",(0,s.yg)("strong",{parentName:"p"},"Home")," view displays the following cards:"),(0,s.yg)("ul",null,(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("strong",{parentName:"li"},"Status"),". Click this card for information on the Druid version and any extensions loaded on the cluster."),(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("a",{parentName:"li",href:"#datasources"},"Datasources")),(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("a",{parentName:"li",href:"#segments"},"Segments")),(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("a",{parentName:"li",href:"#supervisors"},"Supervisors")),(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("a",{parentName:"li",href:"#tasks"},"Tasks")),(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("a",{parentName:"li",href:"#services"},"Services")),(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("a",{parentName:"li",href:"#lookups"},"Lookups"))),(0,s.yg)("p",null,"You can access the ",(0,s.yg)("a",{parentName:"p",href:"#data-loader"},"data loader")," and ",(0,s.yg)("a",{parentName:"p",href:"#lookups"},"lookups view")," from the top-level navigation of the ",(0,s.yg)("strong",{parentName:"p"},"Home")," view."),(0,s.yg)("p",null,(0,s.yg)("img",{alt:"Web console home view",src:a(87159).A,title:"home view",width:"1250",height:"840"})),(0,s.yg)("h2",{id:"query"},"Query"),(0,s.yg)("p",null,"SQL-based ingestion and the multi-stage query task engine use the ",(0,s.yg)("strong",{parentName:"p"},"Query")," view, which provides you with a UI to edit and use SQL queries. You should see this UI automatically in Druid 24.0 and later since the multi-stage query extension is loaded by default. "),(0,s.yg)("p",null,"The following screenshot shows a populated enhanced ",(0,s.yg)("strong",{parentName:"p"},"Query")," view along with a description of its parts:"),(0,s.yg)("p",null,(0,s.yg)("img",{alt:"Annotated multi-stage Query view",src:a(60274).A,width:"1250",height:"740"})),(0,s.yg)("ol",null,(0,s.yg)("li",{parentName:"ol"},"The multi-stage, tab-enabled, ",(0,s.yg)("strong",{parentName:"li"},"Query")," view is where you can issue queries and see results.\nAll other views are unchanged from the non-enhanced version. You can still access the original ",(0,s.yg)("strong",{parentName:"li"},"Query")," view by navigating to ",(0,s.yg)("inlineCode",{parentName:"li"},"#query")," in the URL.\nYou can tell that you're looking at the updated ",(0,s.yg)("strong",{parentName:"li"},"Query")," view by the presence of the tabs (3)."),(0,s.yg)("li",{parentName:"ol"},"The ",(0,s.yg)("strong",{parentName:"li"},"druid")," panel shows the available schemas, datasources, and columns."),(0,s.yg)("li",{parentName:"ol"},"Query tabs allow you to manage and run several queries at once.\nClick the plus icon to open a new tab.\nTo manipulate existing tabs, click the tab name."),(0,s.yg)("li",{parentName:"ol"},"The tab bar contains some helpful tools including the ",(0,s.yg)("strong",{parentName:"li"},"Connect external data")," button that samples external data and creates an initial query with the appropriate ",(0,s.yg)("inlineCode",{parentName:"li"},"EXTERN")," definition that you can then edit as needed."),(0,s.yg)("li",{parentName:"ol"},"The ",(0,s.yg)("strong",{parentName:"li"},"Recent query tasks")," panel lets you see currently running and previous queries from all users in the cluster.\nIt is equivalent to the ",(0,s.yg)("strong",{parentName:"li"},"Task")," view in the ",(0,s.yg)("strong",{parentName:"li"},"Ingestion")," view with the filter of ",(0,s.yg)("inlineCode",{parentName:"li"},"type='query_controller'"),"."),(0,s.yg)("li",{parentName:"ol"},"You can click on each query entry to attach to that query in a new tab."),(0,s.yg)("li",{parentName:"ol"},"You can download an archive of all the pertinent details about the query that you can share."),(0,s.yg)("li",{parentName:"ol"},"The ",(0,s.yg)("strong",{parentName:"li"},"Run")," button runs the query."),(0,s.yg)("li",{parentName:"ol"},"The ",(0,s.yg)("strong",{parentName:"li"},"Preview")," button appears when you enter an INSERT/REPLACE query. It runs the query inline without the INSERT/REPLACE clause and with an added LIMIT to give you a preview of the data that would be ingested if you click ",(0,s.yg)("strong",{parentName:"li"},"Run"),".\nThe added LIMIT makes the query run faster but provides incomplete results."),(0,s.yg)("li",{parentName:"ol"},"The engine selector lets you choose which engine (API endpoint) to send a query to. By default, it automatically picks which endpoint to use based on an analysis of the query, but you can select a specific engine explicitly. You can also configure the engine specific context parameters from this menu."),(0,s.yg)("li",{parentName:"ol"},"The ",(0,s.yg)("strong",{parentName:"li"},"Max tasks")," picker appears when you have the ",(0,s.yg)("strong",{parentName:"li"},"sql-msq-task")," engine selected. It lets you configure the degree of parallelism."),(0,s.yg)("li",{parentName:"ol"},"The More menu (",(0,s.yg)("strong",{parentName:"li"},"..."),") contains the following helpful tools:")),(0,s.yg)("ul",null,(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("strong",{parentName:"li"},"Explain SQL query")," shows you the logical plan returned by ",(0,s.yg)("inlineCode",{parentName:"li"},"EXPLAIN PLAN FOR")," for a SQL query."),(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("strong",{parentName:"li"},"Query history")," shows you previously executed queries."),(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("strong",{parentName:"li"},"Convert ingestion spec to SQL")," lets you convert a native batch ingestion spec to an equivalent SQL query."),(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("strong",{parentName:"li"},"Attach tab from task ID")," lets you create a new tab from the task ID of a query executed on this cluster."),(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("strong",{parentName:"li"},"Open query detail archive")," lets you open a detail archive generated on any cluster by (7).")),(0,s.yg)("ol",{start:13},(0,s.yg)("li",{parentName:"ol"},"The query timer indicates how long the query has been running for."),(0,s.yg)("li",{parentName:"ol"},"The ",(0,s.yg)("strong",{parentName:"li"},"(cancel)")," link cancels the currently running query."),(0,s.yg)("li",{parentName:"ol"},"The main progress bar shows the overall progress of the query.\nThe progress is computed from the various counters in the live reports (16)."),(0,s.yg)("li",{parentName:"ol"},"The ",(0,s.yg)("strong",{parentName:"li"},"Current stage")," progress bar shows the progress for the currently running query stage.\nIf several stages are executing concurrently, it conservatively shows the information for the earliest executing stage."),(0,s.yg)("li",{parentName:"ol"},"The live query reports show detailed information of all the stages (past, present, and future). The live reports are shown while the query is running. You can hide the report if you want.\nAfter queries finish, you can access them by clicking on the query time indicator or from the ",(0,s.yg)("strong",{parentName:"li"},"Recent query tasks")," panel (6)."),(0,s.yg)("li",{parentName:"ol"},"You can expand each stage of the live query report by clicking on the triangle to show per worker and per partition statistics.")),(0,s.yg)("h2",{id:"data-loader"},"Data loader"),(0,s.yg)("p",null,"You can use the data loader to build an ingestion spec with a step-by-step wizard."),(0,s.yg)("p",null,(0,s.yg)("img",{alt:"Data loader tiles",src:a(47739).A,width:"1250",height:"840"})),(0,s.yg)("p",null,"After selecting the location of your data, follow the series of steps displaying incremental previews of the data as it is ingested.\nAfter filling in the required details on every step you can navigate to the next step by clicking ",(0,s.yg)("strong",{parentName:"p"},"Next"),".\nYou can also freely navigate between the steps from the top navigation."),(0,s.yg)("p",null,"Navigating with the top navigation leaves the underlying spec unmodified while clicking ",(0,s.yg)("strong",{parentName:"p"},"Next")," attempts to fill in the subsequent steps with appropriate defaults."),(0,s.yg)("p",null,(0,s.yg)("img",{alt:"Data loader ingestion",src:a(3729).A,width:"1250",height:"840"})),(0,s.yg)("h2",{id:"datasources"},"Datasources"),(0,s.yg)("p",null,"The ",(0,s.yg)("strong",{parentName:"p"},"Datasources")," view shows all the datasources currently loaded on the cluster, as well as their sizes and availability.\nFrom the ",(0,s.yg)("strong",{parentName:"p"},"Datasources")," view, you can edit the retention rules, configure automatic compaction, and drop data in a datasource."),(0,s.yg)("p",null,"A datasource is partitioned into one or more segments organized by time chunks.\nTo display a timeline of segments, toggle the option for ",(0,s.yg)("strong",{parentName:"p"},"Show segment timeline"),"."),(0,s.yg)("p",null,"Like any view that is powered by a Druid SQL query, you can click ",(0,s.yg)("strong",{parentName:"p"},"View SQL query for table")," from the ellipsis menu to run the underlying SQL query directly."),(0,s.yg)("p",null,(0,s.yg)("img",{alt:"Datasources",src:a(3502).A,width:"1250",height:"840"})),(0,s.yg)("p",null,"You can view and edit retention rules to determine the general availability of a datasource."),(0,s.yg)("p",null,(0,s.yg)("img",{alt:"Retention",src:a(45900).A,width:"1250",height:"840"})),(0,s.yg)("h2",{id:"segments"},"Segments"),(0,s.yg)("p",null,"The ",(0,s.yg)("strong",{parentName:"p"},"Segments")," view shows all the ",(0,s.yg)("a",{parentName:"p",href:"/docs/29.0.0/design/segments"},"segments")," in the cluster.\nEach segment has a detail view that provides more information.\nThe Segment ID is also conveniently broken down into Datasource, Start, End, Version, and Partition columns for ease of filtering and sorting."),(0,s.yg)("p",null,(0,s.yg)("img",{alt:"Segments",src:a(49787).A,width:"1250",height:"840"})),(0,s.yg)("h2",{id:"supervisors"},"Supervisors"),(0,s.yg)("p",null,"From this view, you can check the status of existing supervisors as well as suspend, resume, and reset them.\nThe supervisor oversees the state of the indexing tasks to coordinate handoffs, manage failures, and ensure that the scalability and replication requirements are maintained. Submit a supervisor spec manually by clicking the ellipsis icon and selecting ",(0,s.yg)("strong",{parentName:"p"},"Submit JSON supervisor"),"."),(0,s.yg)("p",null,(0,s.yg)("img",{alt:"Supervisors",src:a(99353).A,width:"1250",height:"840"})),(0,s.yg)("p",null,"Click the magnifying glass icon for any supervisor to see detailed reports of its progress."),(0,s.yg)("p",null,(0,s.yg)("img",{alt:"Supervisors status",src:a(5526).A,width:"1250",height:"840"})),(0,s.yg)("h2",{id:"tasks"},"Tasks"),(0,s.yg)("p",null,"The tasks table allows you to see the currently running and recently completed tasks.\nTo navigate your tasks more easily, you can group them by their ",(0,s.yg)("strong",{parentName:"p"},"Type"),", ",(0,s.yg)("strong",{parentName:"p"},"Datasource"),", or ",(0,s.yg)("strong",{parentName:"p"},"Status"),".\nSubmit a task manually by clicking the ellipsis icon and selecting ",(0,s.yg)("strong",{parentName:"p"},"Submit JSON task"),"."),(0,s.yg)("p",null,(0,s.yg)("img",{alt:"Tasks",src:a(49266).A,width:"1250",height:"840"})),(0,s.yg)("p",null,"Click the magnifying glass icon for any task to see more detail about it."),(0,s.yg)("p",null,(0,s.yg)("img",{alt:"Tasks status",src:a(26556).A,width:"1250",height:"840"})),(0,s.yg)("h2",{id:"services"},"Services"),(0,s.yg)("p",null,"The ",(0,s.yg)("strong",{parentName:"p"},"Services")," view lets you see the current status of the nodes making up your cluster.\nYou can group the nodes by ",(0,s.yg)("strong",{parentName:"p"},"Type")," or by ",(0,s.yg)("strong",{parentName:"p"},"Tier")," to get meaningful summary statistics. "),(0,s.yg)("p",null,(0,s.yg)("img",{alt:"Services",src:a(56e3).A,width:"1250",height:"840"})),(0,s.yg)("h2",{id:"lookups"},"Lookups"),(0,s.yg)("p",null,"Access the ",(0,s.yg)("strong",{parentName:"p"},"Lookups")," view from the ",(0,s.yg)("strong",{parentName:"p"},"Lookups")," card in the home view or by clicking the ellipsis icon in the top-level navigation.\nHere you can create and edit query time ",(0,s.yg)("a",{parentName:"p",href:"/docs/29.0.0/querying/lookups"},"lookups"),"."),(0,s.yg)("p",null,(0,s.yg)("img",{alt:"Lookups",src:a(97518).A,width:"1250",height:"840"})))}h.isMDXComponent=!0},60274:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/ui-annotated-7932933ce7ad968aa0f5e3ef2aeca5e0.png"},49266:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/web-console-0.7-tasks-d53bfa761253b59a0bd368825f8b5c48.png"},87159:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/web-console-01-home-view-99f09e8760740e04b982b4d4c56fe6ed.png"},47739:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/web-console-02-data-loader-1-fcc691fda096b9d9fb00f9a5cd30293f.png"},3729:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/web-console-03-data-loader-2-6eb770d4034261a96b968deb305f1258.png"},3502:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/web-console-04-datasources-d0ac928b0107a903b7c99fd8dff2fc39.png"},45900:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/web-console-05-retention-e5f87124a1e9c252043a45b84a6039ed.png"},49787:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/web-console-06-segments-2a1f30ad959f3af6b5bbe9818f29674d.png"},99353:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/web-console-07-supervisors-dc27d65a42df39922d4ad9cff556faf8.png"},5526:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/web-console-08-supervisor-status-07ece8b3920e682c3264c779053801a0.png"},26556:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/web-console-09-task-status-3bc2b07f8ebe5dca9d6259d011b97d47.png"},56e3:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/web-console-10-servers-a6657c30723d278409d8d884d3655ed1.png"},97518:(e,t,a)=>{a.d(t,{A:()=>n});const n=a.p+"assets/images/web-console-13-lookups-337b7e84ed82f5580448a5ba083f91c1.png"}}]);