"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4006],{3905:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>g});var a=n(67294);function o(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 r(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){o(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 s(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(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)&&(o[n]=e[n])}return o}var c=a.createContext({}),m=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},l=function(e){var t=m(e.components);return a.createElement(c.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),p=m(n),d=o,g=p["".concat(c,".").concat(d)]||p[d]||u[d]||i;return n?a.createElement(g,r(r({ref:t},l),{},{components:n})):a.createElement(g,r({ref:t},l))}));function g(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,r=new Array(i);r[0]=d;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[p]="string"==typeof e?e:o,r[1]=s;for(var m=2;m<i;m++)r[m]=n[m];return a.createElement.apply(null,r)}return a.createElement.apply(null,n)}d.displayName="MDXCreateElement"},80538:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>g,frontMatter:()=>s,metadata:()=>m,toc:()=>p});var a=n(87462),o=n(63366),i=(n(67294),n(3905)),r=["components"],s={id:"compaction",title:"Compaction",description:"Defines compaction and automatic compaction (auto-compaction or autocompaction) for segment optimization. Use cases and strategies for compaction. Describes compaction task configuration."},c=void 0,m={unversionedId:"data-management/compaction",id:"data-management/compaction",title:"Compaction",description:"Defines compaction and automatic compaction (auto-compaction or autocompaction) for segment optimization. Use cases and strategies for compaction. Describes compaction task configuration.",source:"@site/docs/28.0.1/data-management/compaction.md",sourceDirName:"data-management",slug:"/data-management/compaction",permalink:"/docs/28.0.1/data-management/compaction",draft:!1,tags:[],version:"current",frontMatter:{id:"compaction",title:"Compaction",description:"Defines compaction and automatic compaction (auto-compaction or autocompaction) for segment optimization. Use cases and strategies for compaction. Describes compaction task configuration."},sidebar:"docs",previous:{title:"Schema changes",permalink:"/docs/28.0.1/data-management/schema-changes"},next:{title:"Automatic compaction",permalink:"/docs/28.0.1/data-management/automatic-compaction"}},l={},p=[{value:"Compaction guidelines",id:"compaction-guidelines",level:2},{value:"Ways to run compaction",id:"ways-to-run-compaction",level:2},{value:"Data handling with compaction",id:"data-handling-with-compaction",level:2},{value:"Segment granularity handling",id:"segment-granularity-handling",level:3},{value:"Query granularity handling",id:"query-granularity-handling",level:3},{value:"Dimension handling",id:"dimension-handling",level:3},{value:"Rollup",id:"rollup",level:3},{value:"Learn more",id:"learn-more",level:2}],u={toc:p},d="wrapper";function g(e){var t=e.components,n=(0,o.Z)(e,r);return(0,i.kt)(d,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,'Query performance in Apache Druid depends on optimally sized segments. Compaction is one strategy you can use to optimize segment size for your Druid database. Compaction tasks read an existing set of segments for a given time interval and combine the data into a new "compacted" set of segments. In some cases the compacted segments are larger, but there are fewer of them. In other cases the compacted segments may be smaller. Compaction tends to increase performance because optimized segments require less per-segment processing and less memory overhead for ingestion and for querying paths.'),(0,i.kt)("h2",{id:"compaction-guidelines"},"Compaction guidelines"),(0,i.kt)("p",null,"There are several cases to consider compaction for segment optimization:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"With streaming ingestion, data can arrive out of chronological order creating many small segments."),(0,i.kt)("li",{parentName:"ul"},"If you append data using ",(0,i.kt)("inlineCode",{parentName:"li"},"appendToExisting")," for ",(0,i.kt)("a",{parentName:"li",href:"/docs/28.0.1/ingestion/native-batch"},"native batch")," ingestion creating suboptimal segments."),(0,i.kt)("li",{parentName:"ul"},"When you use ",(0,i.kt)("inlineCode",{parentName:"li"},"index_parallel")," for parallel batch indexing and the parallel ingestion tasks create many small segments."),(0,i.kt)("li",{parentName:"ul"},"When a misconfigured ingestion task creates oversized segments.")),(0,i.kt)("p",null,"By default, compaction does not modify the underlying data of the segments. However, there are cases when you may want to modify data during compaction to improve query performance:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"If, after ingestion, you realize that data for the time interval is sparse, you can use compaction to increase the segment granularity."),(0,i.kt)("li",{parentName:"ul"},"If you don't need fine-grained granularity for older data, you can use compaction to change older segments to a coarser query granularity. For example, from ",(0,i.kt)("inlineCode",{parentName:"li"},"minute")," to ",(0,i.kt)("inlineCode",{parentName:"li"},"hour")," or ",(0,i.kt)("inlineCode",{parentName:"li"},"hour")," to ",(0,i.kt)("inlineCode",{parentName:"li"},"day"),". This reduces the storage space required for older data."),(0,i.kt)("li",{parentName:"ul"},"You can change the dimension order to improve sorting and reduce segment size."),(0,i.kt)("li",{parentName:"ul"},"You can remove unused columns in compaction or implement an aggregation metric for older data."),(0,i.kt)("li",{parentName:"ul"},"You can change segment rollup from dynamic partitioning with best-effort rollup to hash or range partitioning with perfect rollup. For more information on rollup, see ",(0,i.kt)("a",{parentName:"li",href:"/docs/28.0.1/ingestion/rollup#perfect-rollup-vs-best-effort-rollup"},"perfect vs best-effort rollup"),".")),(0,i.kt)("p",null,"Compaction does not improve performance in all situations. For example, if you rewrite your data with each ingestion task, you don't need to use compaction. See ",(0,i.kt)("a",{parentName:"p",href:"/docs/28.0.1/operations/segment-optimization"},"Segment optimization")," for additional guidance to determine if compaction will help in your environment."),(0,i.kt)("h2",{id:"ways-to-run-compaction"},"Ways to run compaction"),(0,i.kt)("p",null,"Automatic compaction, also called auto-compaction, works in most use cases and should be your first option. "),(0,i.kt)("p",null,"The Coordinator uses its ",(0,i.kt)("a",{parentName:"p",href:"/docs/28.0.1/design/coordinator#segment-search-policy-in-automatic-compaction"},"segment search policy")," to periodically identify segments for compaction starting from newest to oldest. When the Coordinator discovers segments that have not been compacted or segments that were compacted with a different or changed spec, it submits compaction tasks for the time interval covering those segments."),(0,i.kt)("p",null,"To learn more, see ",(0,i.kt)("a",{parentName:"p",href:"/docs/28.0.1/data-management/automatic-compaction"},"Automatic compaction"),"."),(0,i.kt)("p",null,"In cases where you require more control over compaction, you can manually submit compaction tasks. For example:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Automatic compaction is running into the limit of task slots available to it, so tasks are waiting for previous automatic compaction tasks to complete. Manual compaction can use all available task slots, therefore you can complete compaction more quickly by submitting more concurrent tasks for more intervals."),(0,i.kt)("li",{parentName:"ul"},"You want to force compaction for a specific time range or you want to compact data out of chronological order.")),(0,i.kt)("p",null,"See ",(0,i.kt)("a",{parentName:"p",href:"/docs/28.0.1/data-management/manual-compaction#setting-up-manual-compaction"},"Setting up a manual compaction task")," for more about manual compaction tasks."),(0,i.kt)("h2",{id:"data-handling-with-compaction"},"Data handling with compaction"),(0,i.kt)("p",null,"During compaction, Druid overwrites the original set of segments with the compacted set. Druid also locks the segments for the time interval being compacted to ensure data consistency. By default, compaction tasks do not modify the underlying data. You can configure the compaction task to change the query granularity or add or remove dimensions in the compaction task. This means that the only changes to query results should be the result of intentional, not automatic, changes."),(0,i.kt)("p",null,"You can set ",(0,i.kt)("inlineCode",{parentName:"p"},"dropExisting")," in ",(0,i.kt)("inlineCode",{parentName:"p"},"ioConfig"),' to "true" in the compaction task to configure Druid to replace all existing segments fully contained by the interval. See the suggestion for reindexing with finer granularity under ',(0,i.kt)("a",{parentName:"p",href:"/docs/28.0.1/ingestion/native-batch#implementation-considerations"},"Implementation considerations")," for an example."),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"}," WARNING: ",(0,i.kt)("inlineCode",{parentName:"p"},"dropExisting")," in ",(0,i.kt)("inlineCode",{parentName:"p"},"ioConfig")," is a beta feature.")),(0,i.kt)("p",null,"If an ingestion task needs to write data to a segment for a time interval locked for compaction, by default the ingestion task supersedes the compaction task and the compaction task fails without finishing. For manual compaction tasks, you can adjust the input spec interval to avoid conflicts between ingestion and compaction. For automatic compaction, you can set the ",(0,i.kt)("inlineCode",{parentName:"p"},"skipOffsetFromLatest")," key to adjust the auto-compaction starting point from the current time to reduce the chance of conflicts between ingestion and compaction.\nAnother option is to set the compaction task to higher priority than the ingestion task.\nFor more information, see ",(0,i.kt)("a",{parentName:"p",href:"/docs/28.0.1/data-management/automatic-compaction#avoid-conflicts-with-ingestion"},"Avoid conflicts with ingestion"),"."),(0,i.kt)("h3",{id:"segment-granularity-handling"},"Segment granularity handling"),(0,i.kt)("p",null,"Unless you modify the segment granularity in ",(0,i.kt)("a",{parentName:"p",href:"#compaction-granularity-spec"},(0,i.kt)("inlineCode",{parentName:"a"},"granularitySpec")),", Druid attempts to retain the granularity for the compacted segments. When segments have different segment granularities with no overlap in interval Druid creates a separate compaction task for each to retain the segment granularity in the compacted segment."),(0,i.kt)("p",null,"If segments have different segment granularities before compaction but there is some overlap in interval, Druid attempts find start and end of the overlapping interval and uses the closest segment granularity level for the compacted segment."),(0,i.kt)("p",null,'For example consider two overlapping segments: segment "A" for the interval 01/01/2021-01/02/2021 with day granularity and segment "B" for the interval 01/01/2021-02/01/2021. Druid attempts to combine and compact the overlapped segments. In this example, the earliest start time for the two segments is 01/01/2020 and the latest end time of the two segments is 02/01/2020. Druid compacts the segments together even though they have different segment granularity. Druid uses month segment granularity for the newly compacted segment even though segment A\'s original segment granularity was DAY.'),(0,i.kt)("h3",{id:"query-granularity-handling"},"Query granularity handling"),(0,i.kt)("p",null,"Unless you modify the query granularity in the ",(0,i.kt)("a",{parentName:"p",href:"#compaction-granularity-spec"},(0,i.kt)("inlineCode",{parentName:"a"},"granularitySpec")),", Druid retains the query granularity for the compacted segments. If segments have different query granularities before compaction, Druid chooses the finest level of granularity for the resulting compacted segment. For example if a compaction task combines two segments, one with day query granularity and one with minute query granularity, the resulting segment uses minute query granularity."),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"}," In Apache Druid 0.21.0 and prior, Druid sets the granularity for compacted segments to the default granularity of ",(0,i.kt)("inlineCode",{parentName:"p"},"NONE")," regardless of the query granularity of the original segments.")),(0,i.kt)("p",null,"If you configure query granularity in compaction to go from a finer granularity like month to a coarser query granularity like year, then Druid overshadows the original segment with coarser granularity. Because the new segments have a coarser granularity, running a kill task to remove the overshadowed segments for those intervals will cause you to permanently lose the finer granularity data."),(0,i.kt)("h3",{id:"dimension-handling"},"Dimension handling"),(0,i.kt)("p",null,"Apache Druid supports schema changes. Therefore, dimensions can be different across segments even if they are a part of the same datasource. See ",(0,i.kt)("a",{parentName:"p",href:"/docs/28.0.1/design/segments#segments-with-different-schemas"},"Segments with different schemas"),". If the input segments have different dimensions, the resulting compacted segment includes all dimensions of the input segments."),(0,i.kt)("p",null,"Even when the input segments have the same set of dimensions, the dimension order or the data type of dimensions can be different. The dimensions of recent segments precede that of old segments in terms of data types and the ordering because more recent segments are more likely to have the preferred order and data types."),(0,i.kt)("p",null,"If you want to control dimension ordering or ensure specific values for dimension types, you can configure a custom ",(0,i.kt)("inlineCode",{parentName:"p"},"dimensionsSpec")," in the compaction task spec."),(0,i.kt)("h3",{id:"rollup"},"Rollup"),(0,i.kt)("p",null,"Druid only rolls up the output segment when ",(0,i.kt)("inlineCode",{parentName:"p"},"rollup")," is set for all input segments.\nSee ",(0,i.kt)("a",{parentName:"p",href:"/docs/28.0.1/ingestion/rollup"},"Roll-up")," for more details.\nYou can check that your segments are rolled up or not by using ",(0,i.kt)("a",{parentName:"p",href:"/docs/28.0.1/querying/segmentmetadataquery#analysistypes"},"Segment Metadata Queries"),"."),(0,i.kt)("h2",{id:"learn-more"},"Learn more"),(0,i.kt)("p",null,"See the following topics for more information:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"/docs/28.0.1/operations/segment-optimization"},"Segment optimization")," for guidance to determine if compaction will help in your case."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"/docs/28.0.1/data-management/manual-compaction"},"Manual compaction")," for how to run a one-time compaction task"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"/docs/28.0.1/data-management/automatic-compaction"},"Automatic compaction")," for how to enable and configure automatic compaction.")))}g.isMDXComponent=!0}}]);