"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9543],{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"},14379:(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/latest/data-management/compaction.md",sourceDirName:"data-management",slug:"/data-management/compaction",permalink:"/docs/latest/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/latest/data-management/schema-changes"},next:{title:"Automatic compaction",permalink:"/docs/latest/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/latest/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/latest/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/latest/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/latest/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/latest/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/latest/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/latest/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/latest/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:"/docs/latest/data-management/manual-compaction#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:"/docs/latest/data-management/manual-compaction#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/latest/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/latest/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/latest/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/latest/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/latest/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/latest/data-management/automatic-compaction"},"Automatic compaction")," for how to enable and configure automatic compaction.")))}g.isMDXComponent=!0}}]);