"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7124],{15680:(e,r,t)=>{t.d(r,{xA:()=>p,yg:()=>m});var n=t(96540);function i(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function o(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?a(Object(t),!0).forEach((function(r){i(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):a(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function u(e,r){if(null==e)return{};var t,n,i=function(e,r){if(null==e)return{};var t,n,i={},a=Object.keys(e);for(n=0;n<a.length;n++)t=a[n],r.indexOf(t)>=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)t=a[n],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var l=n.createContext({}),s=function(e){var r=n.useContext(l),t=r;return e&&(t="function"==typeof e?e(r):o(o({},r),e)),t},p=function(e){var r=s(e.components);return n.createElement(l.Provider,{value:r},e.children)},y="mdxType",c={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},d=n.forwardRef((function(e,r){var t=e.components,i=e.mdxType,a=e.originalType,l=e.parentName,p=u(e,["components","mdxType","originalType","parentName"]),y=s(t),d=i,m=y["".concat(l,".").concat(d)]||y[d]||c[d]||a;return t?n.createElement(m,o(o({ref:r},p),{},{components:t})):n.createElement(m,o({ref:r},p))}));function m(e,r){var t=arguments,i=r&&r.mdxType;if("string"==typeof e||i){var a=t.length,o=new Array(a);o[0]=d;var u={};for(var l in r)hasOwnProperty.call(r,l)&&(u[l]=r[l]);u.originalType=e,u[y]="string"==typeof e?e:i,o[1]=u;for(var s=2;s<a;s++)o[s]=t[s];return n.createElement.apply(null,o)}return n.createElement.apply(null,t)}d.displayName="MDXCreateElement"},97612:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>u,metadata:()=>s,toc:()=>y});var n=t(58168),i=t(98587),a=(t(96540),t(15680)),o=["components"],u={id:"tips-good-queries",title:"Tips for writing good queries in Druid",sidebar_label:"Tips for writing good queries"},l=void 0,s={unversionedId:"querying/tips-good-queries",id:"querying/tips-good-queries",title:"Tips for writing good queries in Druid",description:"\x3c!--",source:"@site/docs/latest/querying/tips-good-queries.md",sourceDirName:"querying",slug:"/querying/tips-good-queries",permalink:"/docs/latest/querying/tips-good-queries",draft:!1,tags:[],version:"current",frontMatter:{id:"tips-good-queries",title:"Tips for writing good queries in Druid",sidebar_label:"Tips for writing good queries"},sidebar:"docs",previous:{title:"Overview and syntax",permalink:"/docs/latest/querying/sql"},next:{title:"Query from deep storage",permalink:"/docs/latest/querying/query-deep-storage"}},p={},y=[{value:"Investigate query performance",id:"investigate-query-performance",level:2},{value:"Analyze query metrics",id:"analyze-query-metrics",level:3},{value:"Generate an explain plan",id:"generate-an-explain-plan",level:3},{value:"Improve query performance",id:"improve-query-performance",level:2},{value:"Adjust Druid settings",id:"adjust-druid-settings",level:3},{value:"Turn on query caching",id:"turn-on-query-caching",level:4},{value:"Use approximation",id:"use-approximation",level:4},{value:"Manually tune your queries",id:"manually-tune-your-queries",level:3},{value:"Query one table at a time",id:"query-one-table-at-a-time",level:4},{value:"Select specific columns",id:"select-specific-columns",level:4},{value:"Use filters",id:"use-filters",level:4},{value:"Shorten your queries",id:"shorten-your-queries",level:4},{value:"Minimize or remove subqueries",id:"minimize-or-remove-subqueries",level:4},{value:"Consider alternatives to GroupBy",id:"consider-alternatives-to-groupby",level:4},{value:"Query over smaller intervals",id:"query-over-smaller-intervals",level:4},{value:"Reduce the computation in your queries",id:"reduce-the-computation-in-your-queries",level:4},{value:"Druid SQL query example",id:"druid-sql-query-example",level:2}],c={toc:y},d="wrapper";function m(e){var r=e.components,t=(0,i.A)(e,o);return(0,a.yg)(d,(0,n.A)({},c,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("p",null,"This topic includes tips and examples that can help you investigate and improve query performance and accuracy using ",(0,a.yg)("a",{parentName:"p",href:"/docs/latest/querying/sql"},"Apache Druid SQL"),"."),(0,a.yg)("p",null,"For an interactive tutorial on Druid SQL, see ",(0,a.yg)("a",{parentName:"p",href:"https://github.com/implydata/learn-druid/tree/main/notebooks"},"Learn the basics of Druid SQL")," within the ",(0,a.yg)("a",{parentName:"p",href:"https://github.com/implydata/learn-druid"},"Learn Druid repo"),"."),(0,a.yg)("p",null,"Your ability to effectively query your data depends in large part on the way you've ingested and stored the data in Apache Druid. This document assumes that you've followed the best practices described in ",(0,a.yg)("a",{parentName:"p",href:"/docs/latest/ingestion/schema-design#general-tips-and-best-practices"},"Schema design tips and best practices")," when modeling your data. "),(0,a.yg)("h2",{id:"investigate-query-performance"},"Investigate query performance"),(0,a.yg)("p",null,"If your queries run slower than anticipated, you can use the following tools to investigate query performance issues."),(0,a.yg)("h3",{id:"analyze-query-metrics"},"Analyze query metrics"),(0,a.yg)("p",null,"You can configure Druid processes to emit metrics that are essential for monitoring query execution. See ",(0,a.yg)("a",{parentName:"p",href:"/docs/latest/operations/metrics#query-metrics"},"Query metrics")," for more information. "),(0,a.yg)("h3",{id:"generate-an-explain-plan"},"Generate an explain plan"),(0,a.yg)("p",null,"An explain plan shows the full query details and all of the operations Druid performs to execute it. You can use the information in the plan to identify possible areas of query improvement."),(0,a.yg)("p",null,"See ",(0,a.yg)("a",{parentName:"p",href:"/docs/latest/querying/sql#explain-plan"},"Explain plan")," and ",(0,a.yg)("a",{parentName:"p",href:"/docs/latest/querying/sql-translation#interpreting-explain-plan-output"},"Interpreting explain plan output")," for more information."),(0,a.yg)("p",null,"You can follow the ",(0,a.yg)("a",{parentName:"p",href:"/docs/latest/tutorials/tutorial-sql-query-view"},"Get to know Query view tutorial")," to create an example explain plan in the Druid console."),(0,a.yg)("h2",{id:"improve-query-performance"},"Improve query performance"),(0,a.yg)("p",null,"In most cases, you can improve query performance by adjusting Druid settings and by manually tuning your queries."),(0,a.yg)("h3",{id:"adjust-druid-settings"},"Adjust Druid settings"),(0,a.yg)("p",null,"This section outlines Druid settings that can help to improve query performance."),(0,a.yg)("h4",{id:"turn-on-query-caching"},"Turn on query caching"),(0,a.yg)("p",null,"You can enable caching in Druid to improve query times for frequently accessed data. Caching enables increased concurrency on the same system, leading to noticeable performance improvements for queries handling throughput for concurrent, mixed workloads."),(0,a.yg)("p",null,"The largest performance gains from caching tend to apply to TopN and timeseries queries. For GroupBy queries, if the bottleneck is in the merging phase on the Broker, enabling caching results in little noticeable query improvement. See ",(0,a.yg)("a",{parentName:"p",href:"/docs/latest/querying/caching#performance-considerations-for-caching"},"Performance considerations for caching")," for more information."),(0,a.yg)("h4",{id:"use-approximation"},"Use approximation"),(0,a.yg)("p",null,"When possible, design your SQL queries in such a way that they match the rules for TopN approximation, so that Druid enables TopN by default. For Druid to automatically optimize for TopN, your SQL query must include the following:"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"GROUP BY on one dimension, and")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"ORDER BY on one aggregate."),(0,a.yg)("p",{parentName:"li"},"See ",(0,a.yg)("a",{parentName:"p",href:"/docs/latest/querying/topnquery"},"TopN queries")," for more information."))),(0,a.yg)("p",null,"Note that TopN queries are approximate in that each data process ranks its top K results and only returns those top K results to the Broker."),(0,a.yg)("p",null,"You can follow the tutorial ",(0,a.yg)("a",{parentName:"p",href:"https://github.com/implydata/learn-druid/tree/main/notebooks"},"Using TopN approximation in Druid queries")," within the ",(0,a.yg)("a",{parentName:"p",href:"https://github.com/implydata/learn-druid"},"Learn Druid repo")," to work through some examples with approximation turned on and off.\nThe tutorial ",(0,a.yg)("a",{parentName:"p",href:"/docs/latest/tutorials/tutorial-sql-query-view"},"Get to know Query view")," demonstrates running aggregate queries in the Druid console."),(0,a.yg)("h3",{id:"manually-tune-your-queries"},"Manually tune your queries"),(0,a.yg)("p",null,"This section outlines techniques you can use to improve your query accuracy and performance."),(0,a.yg)("h4",{id:"query-one-table-at-a-time"},"Query one table at a time"),(0,a.yg)("p",null,"Query a single table at a time to minimize the load on the Druid processor."),(0,a.yg)("h4",{id:"select-specific-columns"},"Select specific columns"),(0,a.yg)("p",null,"Only select the columns needed for the query instead of retrieving all columns from the table. This reduces the amount of data retrieved from the database, which improves query performance."),(0,a.yg)("h4",{id:"use-filters"},"Use filters"),(0,a.yg)("p",null,"Use filters, for example the WHERE clause, and filter on time. Try to minimize the use of inequality filters, because they're very resource-intensive."),(0,a.yg)("p",null,"The following example query filters on ",(0,a.yg)("inlineCode",{parentName:"p"},"__time")," and ",(0,a.yg)("inlineCode",{parentName:"p"},"product"),":"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre"},"SELECT\n  FLOOR(__time to day),\n  product,\n  sum(quantity * price) as revenue\nFROM \"orders\"\nWHERE\n  __time > '2023-08-20' and product = 'product 1'\nGROUP BY 1, 2\n")),(0,a.yg)("p",null,"The following example uses a wildcard filter on the ",(0,a.yg)("inlineCode",{parentName:"p"},"diffUrl")," column:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre"},"SELECT * from Wikipedia\nWHERE diffUrl LIKE 'https://en.wikipedia%'\nAND TIME_IN_INTERVAL(__time, '2016-06-27T01:00:00/2016-06-27T02:00:00')\n")),(0,a.yg)("h4",{id:"shorten-your-queries"},"Shorten your queries"),(0,a.yg)("p",null,"Make your queries shorter where possible","\u2014","Druid processes shorter queries faster. You might also be able to divide a single query into multiple queries."),(0,a.yg)("p",null,"For example, the following query aggregates over multiple datasources using UNION ALL:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre"},"SELECT id, SUM(revenue) FROM\n   (SELECT id, revenue from datasource_1\nUNION ALL\n  SELECT id, revenue FROM datasource_2)\n...\nUNION ALL\n   SELECT id, revenue FROM datasource_n)\nGROUP BY id\n")),(0,a.yg)("p",null,"To simplify this query, you could split it into several queries, for example:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre"},"SELECT id, SUM(revenue) FROM datasource_1\n\nSELECT id, SUM(revenue) FROM datasource_2\n...\nSELECT id, SUM(revenue) FROM datasource_n\n")),(0,a.yg)("p",null,"You could then manually aggregate the results of the individual queries."),(0,a.yg)("h4",{id:"minimize-or-remove-subqueries"},"Minimize or remove subqueries"),(0,a.yg)("p",null,"Consider whether you can pre-compute a subquery task and store it as a join or make it a part of the datasource. See ",(0,a.yg)("a",{parentName:"p",href:"/docs/latest/querying/datasource#join"},"Datasources: join")," and ",(0,a.yg)("a",{parentName:"p",href:"/docs/latest/querying/sql-translation#joins"},"SQL query translation: Joins")," for more information and examples."),(0,a.yg)("h4",{id:"consider-alternatives-to-groupby"},"Consider alternatives to GroupBy"),(0,a.yg)("p",null,"Consider using Timeseries and TopN as alternatives to GroupBy. See ",(0,a.yg)("a",{parentName:"p",href:"/docs/latest/querying/groupbyquery#alternatives"},"GroupBy queries: alternatives")," for more information."),(0,a.yg)("p",null,"Avoid grouping on high cardinality columns, for example user ID. Investigate whether you can apply a filter first, to reduce the number of results for grouping. "),(0,a.yg)("h4",{id:"query-over-smaller-intervals"},"Query over smaller intervals"),(0,a.yg)("p",null,"Consider whether you can query a smaller time interval to return a smaller results set."),(0,a.yg)("p",null,"For example, the following query doesn't limit on time and could be resource-intensive:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre"},"SELECT cust_id, sum(revenue) FROM myDatasource\nGROUP BY cust_id\n")),(0,a.yg)("p",null,"This query could be split into multiple queries over smaller time spans, with the results combined client-side. For example:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre"},"SELECT cust_id, sum(revenue) FROM myDatasource\nGROUP BY cust_id\nWHERE __time BETWEEN '2023-07-01' AND '2023-07-31'\n\nSELECT cust_id, sum(revenue) FROM myDatasource\nGROUP BY cust_id\nWHERE __time BETWEEN '2023-08-01' AND '2023-08-31'\n")),(0,a.yg)("h4",{id:"reduce-the-computation-in-your-queries"},"Reduce the computation in your queries"),(0,a.yg)("p",null,"Examine your query to see if it uses a lot of transformations, functions, and expressions. Consider whether you could rewrite the query to reduce the level of computation."),(0,a.yg)("h2",{id:"druid-sql-query-example"},"Druid SQL query example"),(0,a.yg)("p",null,"The following example query demonstrates many of the tips outlined in this topic.\nThe query:"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"selects specific dimensions and metrics"),(0,a.yg)("li",{parentName:"ul"},"uses approximation"),(0,a.yg)("li",{parentName:"ul"},"selects from a single table"),(0,a.yg)("li",{parentName:"ul"},"groups by low cardinality columns"),(0,a.yg)("li",{parentName:"ul"},"filters on both dimensions and time"),(0,a.yg)("li",{parentName:"ul"},"orders by a dimension and a measure"),(0,a.yg)("li",{parentName:"ul"},"includes a limit")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre"},"SELECT\n   FLOOR() AS month,\n   country,\n   SUM(price),\n   APPROX_COUNT_DISTINCT_DS_HLL(userid)\nFROM sales\nGROUP BY month, country\nWHERE artist = 'Madonna' AND TIME_IN_INTERVAL(__time, '2023-08-01/P1M')\nORDER BY country, SUM(price) DESC\nLIMIT 100\n")))}m.isMDXComponent=!0}}]);