"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[188],{15680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>m});var a=n(96540);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function o(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var d=a.createContext({}),s=function(e){var t=a.useContext(d),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},p=function(e){var t=s(e.components);return a.createElement(d.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},g=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,d=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),u=s(n),g=r,m=u["".concat(d,".").concat(g)]||u[g]||y[g]||i;return n?a.createElement(m,l(l({ref:t},p),{},{components:n})):a.createElement(m,l({ref:t},p))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,l=new Array(i);l[0]=g;var o={};for(var d in t)hasOwnProperty.call(t,d)&&(o[d]=t[d]);o.originalType=e,o[u]="string"==typeof e?e:r,l[1]=o;for(var s=2;s<i;s++)l[s]=n[s];return a.createElement.apply(null,l)}return a.createElement.apply(null,n)}g.displayName="MDXCreateElement"},49676:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>d,default:()=>m,frontMatter:()=>o,metadata:()=>s,toc:()=>u});var a=n(58168),r=n(98587),i=(n(96540),n(15680)),l=["components"],o={id:"materialized-view",title:"Materialized View"},d=void 0,s={unversionedId:"development/extensions-contrib/materialized-view",id:"development/extensions-contrib/materialized-view",title:"Materialized View",description:"\x3c!--",source:"@site/docs/29.0.0/development/extensions-contrib/materialized-view.md",sourceDirName:"development/extensions-contrib",slug:"/development/extensions-contrib/materialized-view",permalink:"/docs/29.0.0/development/extensions-contrib/materialized-view",draft:!1,tags:[],version:"current",frontMatter:{id:"materialized-view",title:"Materialized View"}},p={},u=[{value:"Materialized-view-maintenance",id:"materialized-view-maintenance",level:2},{value:"Materialized-view-selection",id:"materialized-view-selection",level:2}],y={toc:u},g="wrapper";function m(e){var t=e.components,n=(0,r.A)(e,l);return(0,i.yg)(g,(0,a.A)({},y,n,{components:t,mdxType:"MDXLayout"}),(0,i.yg)("p",null,"To use this Apache Druid feature, make sure to load ",(0,i.yg)("inlineCode",{parentName:"p"},"materialized-view-selection")," and ",(0,i.yg)("inlineCode",{parentName:"p"},"materialized-view-maintenance"),". In addition, this feature currently requires a Hadoop cluster."),(0,i.yg)("p",null,"This feature enables Druid to greatly improve the query performance, especially when the query dataSource has a very large number of dimensions but the query only required several dimensions. This feature includes two parts. One is ",(0,i.yg)("inlineCode",{parentName:"p"},"materialized-view-maintenance"),", and the other is ",(0,i.yg)("inlineCode",{parentName:"p"},"materialized-view-selection"),"."),(0,i.yg)("h2",{id:"materialized-view-maintenance"},"Materialized-view-maintenance"),(0,i.yg)("p",null,'In materialized-view-maintenance, dataSources user ingested are called "base-dataSource". For each base-dataSource, we can submit ',(0,i.yg)("inlineCode",{parentName:"p"},"derivativeDataSource"),' supervisors to create and maintain other dataSources which we called  "derived-dataSource". The dimensions and metrics of derived-dataSources are the subset of base-dataSource\'s.\nThe ',(0,i.yg)("inlineCode",{parentName:"p"},"derivativeDataSource")," supervisor is used to keep the timeline of derived-dataSource consistent with base-dataSource. Each ",(0,i.yg)("inlineCode",{parentName:"p"},"derivativeDataSource")," supervisor  is responsible for one derived-dataSource."),(0,i.yg)("p",null,"A sample derivativeDataSource supervisor spec is shown below:"),(0,i.yg)("pre",null,(0,i.yg)("code",{parentName:"pre",className:"language-json"},'   {\n       "type": "derivativeDataSource",\n       "baseDataSource": "wikiticker",\n       "dimensionsSpec": {\n           "dimensions": [\n               "isUnpatrolled",\n               "metroCode",\n               "namespace",\n               "page",\n               "regionIsoCode",\n               "regionName",\n               "user"\n           ]\n       },\n       "metricsSpec": [\n           {\n               "name": "count",\n               "type": "count"\n           },\n           {\n               "name": "added",\n               "type": "longSum",\n               "fieldName": "added"\n           }\n       ],\n       "tuningConfig": {\n           "type": "hadoop"\n       }\n   }\n')),(0,i.yg)("p",null,(0,i.yg)("strong",{parentName:"p"},"Supervisor Configuration")),(0,i.yg)("table",null,(0,i.yg)("thead",{parentName:"table"},(0,i.yg)("tr",{parentName:"thead"},(0,i.yg)("th",{parentName:"tr",align:null},"Field"),(0,i.yg)("th",{parentName:"tr",align:null},"Description"),(0,i.yg)("th",{parentName:"tr",align:null},"Required"))),(0,i.yg)("tbody",{parentName:"table"},(0,i.yg)("tr",{parentName:"tbody"},(0,i.yg)("td",{parentName:"tr",align:null},"Type"),(0,i.yg)("td",{parentName:"tr",align:null},"The supervisor type. This should always be ",(0,i.yg)("inlineCode",{parentName:"td"},"derivativeDataSource"),"."),(0,i.yg)("td",{parentName:"tr",align:null},"yes")),(0,i.yg)("tr",{parentName:"tbody"},(0,i.yg)("td",{parentName:"tr",align:null},"baseDataSource"),(0,i.yg)("td",{parentName:"tr",align:null},"The name of base dataSource. This dataSource data should be already stored inside Druid, and the dataSource will be used as input data."),(0,i.yg)("td",{parentName:"tr",align:null},"yes")),(0,i.yg)("tr",{parentName:"tbody"},(0,i.yg)("td",{parentName:"tr",align:null},"dimensionsSpec"),(0,i.yg)("td",{parentName:"tr",align:null},"Specifies the dimensions of the data. These dimensions must be the subset of baseDataSource's dimensions."),(0,i.yg)("td",{parentName:"tr",align:null},"yes")),(0,i.yg)("tr",{parentName:"tbody"},(0,i.yg)("td",{parentName:"tr",align:null},"metricsSpec"),(0,i.yg)("td",{parentName:"tr",align:null},"A list of aggregators. These metrics must be the subset of baseDataSource's metrics. See ",(0,i.yg)("a",{parentName:"td",href:"/docs/29.0.0/querying/aggregations"},"aggregations"),"."),(0,i.yg)("td",{parentName:"tr",align:null},"yes")),(0,i.yg)("tr",{parentName:"tbody"},(0,i.yg)("td",{parentName:"tr",align:null},"tuningConfig"),(0,i.yg)("td",{parentName:"tr",align:null},"TuningConfig must be HadoopTuningConfig. See ",(0,i.yg)("a",{parentName:"td",href:"/docs/29.0.0/ingestion/hadoop#tuningconfig"},"Hadoop tuning config"),"."),(0,i.yg)("td",{parentName:"tr",align:null},"yes")),(0,i.yg)("tr",{parentName:"tbody"},(0,i.yg)("td",{parentName:"tr",align:null},"dataSource"),(0,i.yg)("td",{parentName:"tr",align:null},"The name of this derived dataSource."),(0,i.yg)("td",{parentName:"tr",align:null},"no(default=baseDataSource-hashCode of supervisor)")),(0,i.yg)("tr",{parentName:"tbody"},(0,i.yg)("td",{parentName:"tr",align:null},"hadoopDependencyCoordinates"),(0,i.yg)("td",{parentName:"tr",align:null},"A JSON array of Hadoop dependency coordinates that Druid will use, this property will override the default Hadoop coordinates. Once specified, Druid will look for those Hadoop dependencies from the location specified by druid.extensions.hadoopDependenciesDir"),(0,i.yg)("td",{parentName:"tr",align:null},"no")),(0,i.yg)("tr",{parentName:"tbody"},(0,i.yg)("td",{parentName:"tr",align:null},"classpathPrefix"),(0,i.yg)("td",{parentName:"tr",align:null},"Classpath that will be prepended for the Peon process."),(0,i.yg)("td",{parentName:"tr",align:null},"no")),(0,i.yg)("tr",{parentName:"tbody"},(0,i.yg)("td",{parentName:"tr",align:null},"context"),(0,i.yg)("td",{parentName:"tr",align:null},"See below."),(0,i.yg)("td",{parentName:"tr",align:null},"no")))),(0,i.yg)("p",null,(0,i.yg)("strong",{parentName:"p"},"Context")),(0,i.yg)("table",null,(0,i.yg)("thead",{parentName:"table"},(0,i.yg)("tr",{parentName:"thead"},(0,i.yg)("th",{parentName:"tr",align:null},"Field"),(0,i.yg)("th",{parentName:"tr",align:null},"Description"),(0,i.yg)("th",{parentName:"tr",align:null},"Required"))),(0,i.yg)("tbody",{parentName:"table"},(0,i.yg)("tr",{parentName:"tbody"},(0,i.yg)("td",{parentName:"tr",align:null},"maxTaskCount"),(0,i.yg)("td",{parentName:"tr",align:null},"The max number of tasks the supervisor can submit simultaneously."),(0,i.yg)("td",{parentName:"tr",align:null},"no(default=1)")))),(0,i.yg)("h2",{id:"materialized-view-selection"},"Materialized-view-selection"),(0,i.yg)("p",null,"In materialized-view-selection, we implement a new query type ",(0,i.yg)("inlineCode",{parentName:"p"},"view"),". When we request a view query, Druid will try its best to optimize the query based on query dataSource and intervals."),(0,i.yg)("p",null,"A sample view query spec is shown below:"),(0,i.yg)("pre",null,(0,i.yg)("code",{parentName:"pre",className:"language-json"},'   {\n       "queryType": "view",\n       "query": {\n           "queryType": "groupBy",\n           "dataSource": "wikiticker",\n           "granularity": "all",\n           "dimensions": [\n               "user"\n           ],\n           "limitSpec": {\n               "type": "default",\n               "limit": 1,\n               "columns": [\n                   {\n                       "dimension": "added",\n                       "direction": "descending",\n                       "dimensionOrder": "numeric"\n                   }\n               ]\n           },\n           "aggregations": [\n               {\n                   "type": "longSum",\n                   "name": "added",\n                   "fieldName": "added"\n               }\n           ],\n           "intervals": [\n               "2015-09-12/2015-09-13"\n           ]\n       }\n   }\n')),(0,i.yg)("p",null,"There are 2 parts in a view query:"),(0,i.yg)("table",null,(0,i.yg)("thead",{parentName:"table"},(0,i.yg)("tr",{parentName:"thead"},(0,i.yg)("th",{parentName:"tr",align:null},"Field"),(0,i.yg)("th",{parentName:"tr",align:null},"Description"),(0,i.yg)("th",{parentName:"tr",align:null},"Required"))),(0,i.yg)("tbody",{parentName:"table"},(0,i.yg)("tr",{parentName:"tbody"},(0,i.yg)("td",{parentName:"tr",align:null},"queryType"),(0,i.yg)("td",{parentName:"tr",align:null},"The query type. This should always be view"),(0,i.yg)("td",{parentName:"tr",align:null},"yes")),(0,i.yg)("tr",{parentName:"tbody"},(0,i.yg)("td",{parentName:"tr",align:null},"query"),(0,i.yg)("td",{parentName:"tr",align:null},"The real query of this ",(0,i.yg)("inlineCode",{parentName:"td"},"view")," query. The real query must be ",(0,i.yg)("a",{parentName:"td",href:"/docs/29.0.0/querying/groupbyquery"},"groupBy"),", ",(0,i.yg)("a",{parentName:"td",href:"/docs/29.0.0/querying/topnquery"},"topN"),", or ",(0,i.yg)("a",{parentName:"td",href:"/docs/29.0.0/querying/timeseriesquery"},"timeseries")," type."),(0,i.yg)("td",{parentName:"tr",align:null},"yes")))),(0,i.yg)("p",null,(0,i.yg)("strong",{parentName:"p"},"Note that Materialized View is currently designated as experimental. Please make sure the time of all processes are the same and increase monotonically. Otherwise, some unexpected errors may happen on query results.")))}m.isMDXComponent=!0}}]);