"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3],{15680:(e,t,r)=>{r.d(t,{xA:()=>g,yg:()=>y});var a=r(96540);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},o=Object.keys(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),d=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},g=function(e){var t=d(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,g=l(e,["components","mdxType","originalType","parentName"]),p=d(r),m=n,y=p["".concat(s,".").concat(m)]||p[m]||u[m]||o;return r?a.createElement(y,i(i({ref:t},g),{},{components:r})):a.createElement(y,i({ref:t},g))}));function y(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:n,i[1]=l;for(var d=2;d<o;d++)i[d]=r[d];return a.createElement.apply(null,i)}return a.createElement.apply(null,r)}m.displayName="MDXCreateElement"},17635:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>g,contentTitle:()=>s,default:()=>y,frontMatter:()=>l,metadata:()=>d,toc:()=>p});var a=r(58168),n=r(98587),o=(r(96540),r(15680)),i=["components"],l={id:"deep-storage",title:"Deep storage"},s=void 0,d={unversionedId:"design/deep-storage",id:"design/deep-storage",title:"Deep storage",description:"\x3c!--",source:"@site/docs/29.0.0/design/deep-storage.md",sourceDirName:"design",slug:"/design/deep-storage",permalink:"/docs/29.0.0/design/deep-storage",draft:!1,tags:[],version:"current",frontMatter:{id:"deep-storage",title:"Deep storage"},sidebar:"docs",previous:{title:"Segments",permalink:"/docs/29.0.0/design/segments"},next:{title:"Metadata storage",permalink:"/docs/29.0.0/design/metadata-storage"}},g={},p=[{value:"Deep storage options",id:"deep-storage-options",level:2},{value:"Local",id:"local",level:3},{value:"Amazon S3 or S3-compatible",id:"amazon-s3-or-s3-compatible",level:3},{value:"Google Cloud Storage",id:"google-cloud-storage",level:3},{value:"Azure Blob Storage",id:"azure-blob-storage",level:3},{value:"HDFS",id:"hdfs",level:3},{value:"Additional options",id:"additional-options",level:3},{value:"Querying from deep storage",id:"querying-from-deep-storage",level:2}],u={toc:p},m="wrapper";function y(e){var t=e.components,r=(0,n.A)(e,i);return(0,o.yg)(m,(0,a.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"Deep storage is where segments are stored.  It is a storage mechanism that Apache Druid does not provide.  This deep storage infrastructure defines the level of durability of your data. As long as Druid processes can see this storage infrastructure and get at the segments stored on it, you will not lose data no matter how many Druid nodes you lose.  If segments disappear from this storage layer, then you will lose whatever data those segments represented."),(0,o.yg)("p",null,"In addition to being the backing store for segments, you can use ",(0,o.yg)("a",{parentName:"p",href:"#querying-from-deep-storage"},"query from deep storage")," and run queries against segments stored primarily in deep storage. The ",(0,o.yg)("a",{parentName:"p",href:"/docs/29.0.0/operations/rule-configuration#load-rules"},"load rules")," you configure determine whether segments exist primarily in deep storage or in a combination of deep storage and Historical processes."),(0,o.yg)("h2",{id:"deep-storage-options"},"Deep storage options"),(0,o.yg)("p",null,"Druid supports multiple options for deep storage, including blob storage from major cloud providers. Select the one that fits your environment."),(0,o.yg)("h3",{id:"local"},"Local"),(0,o.yg)("p",null,"Local storage is intended for use in the following situations:"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"You have just one server."),(0,o.yg)("li",{parentName:"ul"},"Or, you have multiple servers, and they all have access to a shared filesystem (for example: NFS).")),(0,o.yg)("p",null,"In multi-server production clusters, rather than local storage with a shared filesystem, it is instead recommended to\nuse cloud-based deep storage (",(0,o.yg)("a",{parentName:"p",href:"#amazon-s3-or-s3-compatible"},"Amazon S3"),", ",(0,o.yg)("a",{parentName:"p",href:"#google-cloud-storage"},"Google Cloud Storage"),",\nor ",(0,o.yg)("a",{parentName:"p",href:"#azure-blob-storage"},"Azure Blob Storage"),"), S3-compatible storage (like Minio), or ",(0,o.yg)("a",{parentName:"p",href:"#hdfs"},"HDFS"),". These options are\ngenerally more convenient, more scalable, and more robust than setting up a shared filesystem."),(0,o.yg)("p",null,"The following configurations in ",(0,o.yg)("inlineCode",{parentName:"p"},"common.runtime.properties")," apply to local storage:"),(0,o.yg)("table",null,(0,o.yg)("thead",{parentName:"table"},(0,o.yg)("tr",{parentName:"thead"},(0,o.yg)("th",{parentName:"tr",align:null},"Property"),(0,o.yg)("th",{parentName:"tr",align:null},"Possible Values"),(0,o.yg)("th",{parentName:"tr",align:null},"Description"),(0,o.yg)("th",{parentName:"tr",align:null},"Default"))),(0,o.yg)("tbody",{parentName:"table"},(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"druid.storage.type")),(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"local")),(0,o.yg)("td",{parentName:"tr",align:null}),(0,o.yg)("td",{parentName:"tr",align:null},"Must be set.")),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"druid.storage.storageDirectory")),(0,o.yg)("td",{parentName:"tr",align:null},"any local directory"),(0,o.yg)("td",{parentName:"tr",align:null},"Directory for storing segments. Must be different from ",(0,o.yg)("inlineCode",{parentName:"td"},"druid.segmentCache.locations")," and ",(0,o.yg)("inlineCode",{parentName:"td"},"druid.segmentCache.infoDir"),"."),(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"/tmp/druid/localStorage"))),(0,o.yg)("tr",{parentName:"tbody"},(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"druid.storage.zip")),(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"true"),", ",(0,o.yg)("inlineCode",{parentName:"td"},"false")),(0,o.yg)("td",{parentName:"tr",align:null},"Whether segments in ",(0,o.yg)("inlineCode",{parentName:"td"},"druid.storage.storageDirectory")," are written as directories (",(0,o.yg)("inlineCode",{parentName:"td"},"false"),") or zip files (",(0,o.yg)("inlineCode",{parentName:"td"},"true"),")."),(0,o.yg)("td",{parentName:"tr",align:null},(0,o.yg)("inlineCode",{parentName:"td"},"false"))))),(0,o.yg)("p",null,"For example:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre"},"druid.storage.type=local\ndruid.storage.storageDirectory=/tmp/druid/localStorage\n")),(0,o.yg)("p",null,"The ",(0,o.yg)("inlineCode",{parentName:"p"},"druid.storage.storageDirectory")," must be set to a different path than ",(0,o.yg)("inlineCode",{parentName:"p"},"druid.segmentCache.locations")," or\n",(0,o.yg)("inlineCode",{parentName:"p"},"druid.segmentCache.infoDir"),"."),(0,o.yg)("h3",{id:"amazon-s3-or-s3-compatible"},"Amazon S3 or S3-compatible"),(0,o.yg)("p",null,"See ",(0,o.yg)("a",{parentName:"p",href:"/docs/29.0.0/development/extensions-core/s3"},(0,o.yg)("inlineCode",{parentName:"a"},"druid-s3-extensions")),"."),(0,o.yg)("h3",{id:"google-cloud-storage"},"Google Cloud Storage"),(0,o.yg)("p",null,"See ",(0,o.yg)("a",{parentName:"p",href:"/docs/29.0.0/development/extensions-core/google"},(0,o.yg)("inlineCode",{parentName:"a"},"druid-google-extensions")),"."),(0,o.yg)("h3",{id:"azure-blob-storage"},"Azure Blob Storage"),(0,o.yg)("p",null,"See ",(0,o.yg)("a",{parentName:"p",href:"/docs/29.0.0/development/extensions-core/azure"},(0,o.yg)("inlineCode",{parentName:"a"},"druid-azure-extensions")),"."),(0,o.yg)("h3",{id:"hdfs"},"HDFS"),(0,o.yg)("p",null,"See ",(0,o.yg)("a",{parentName:"p",href:"/docs/29.0.0/development/extensions-core/hdfs"},"druid-hdfs-storage extension documentation"),"."),(0,o.yg)("h3",{id:"additional-options"},"Additional options"),(0,o.yg)("p",null,"For additional deep storage options, please see our ",(0,o.yg)("a",{parentName:"p",href:"/docs/29.0.0/configuration/extensions"},"extensions list"),"."),(0,o.yg)("h2",{id:"querying-from-deep-storage"},"Querying from deep storage"),(0,o.yg)("p",null,"Although not as performant as querying segments stored on disk for Historical processes, you can query from deep storage to access segments that you may not need frequently or with the extreme low latency Druid queries traditionally provide. You trade some performance for a total lower storage cost because you can access more of your data without the need to increase the number or capacity of your Historical processes."),(0,o.yg)("p",null,"For information about how to run queries, see ",(0,o.yg)("a",{parentName:"p",href:"/docs/29.0.0/querying/query-deep-storage"},"Query from deep storage"),"."))}y.isMDXComponent=!0}}]);