blob: 928c65cd207aca9ed77d24543dd214c31eeee8d6 [file] [log] [blame]
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5124],{15680:(e,n,t)=>{t.d(n,{xA:()=>l,yg:()=>d});var r=t(96540);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(Object(t),!0).forEach((function(n){i(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function s(e,n){if(null==e)return{};var t,r,i=function(e,n){if(null==e)return{};var t,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var c=r.createContext({}),u=function(e){var n=r.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},l=function(e){var n=u(e.components);return r.createElement(c.Provider,{value:n},e.children)},p="mdxType",g={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,i=e.mdxType,o=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),p=u(t),m=i,d=p["".concat(c,".").concat(m)]||p[m]||g[m]||o;return t?r.createElement(d,a(a({ref:n},l),{},{components:t})):r.createElement(d,a({ref:n},l))}));function d(e,n){var t=arguments,i=n&&n.mdxType;if("string"==typeof e||i){var o=t.length,a=new Array(o);a[0]=m;var s={};for(var c in n)hasOwnProperty.call(n,c)&&(s[c]=n[c]);s.originalType=e,s[p]="string"==typeof e?e:i,a[1]=s;for(var u=2;u<o;u++)a[u]=t[u];return r.createElement.apply(null,a)}return r.createElement.apply(null,t)}m.displayName="MDXCreateElement"},33355:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>s,metadata:()=>u,toc:()=>p});var r=t(58168),i=t(98587),o=(t(96540),t(15680)),a=["components"],s={id:"streaming",title:"Streaming ingestion"},c=void 0,u={unversionedId:"ingestion/streaming",id:"ingestion/streaming",title:"Streaming ingestion",description:"\x3c!--",source:"@site/docs/29.0.0/ingestion/streaming.md",sourceDirName:"ingestion",slug:"/ingestion/streaming",permalink:"/docs/29.0.0/ingestion/streaming",draft:!1,tags:[],version:"current",frontMatter:{id:"streaming",title:"Streaming ingestion"},sidebar:"docs",previous:{title:"Known issues",permalink:"/docs/29.0.0/multi-stage-query/known-issues"},next:{title:"Supervisor",permalink:"/docs/29.0.0/ingestion/supervisor"}},l={},p=[],g={toc:p},m="wrapper";function d(e){var n=e.components,t=(0,i.A)(e,a);return(0,o.yg)(m,(0,r.A)({},g,t,{components:n,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"Apache Druid can consume data streams from the following external streaming sources:"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"Apache Kafka through the bundled ",(0,o.yg)("a",{parentName:"li",href:"/docs/29.0.0/ingestion/kafka-ingestion"},"Kafka indexing service")," extension."),(0,o.yg)("li",{parentName:"ul"},"Amazon Kinesis through the bundled ",(0,o.yg)("a",{parentName:"li",href:"/docs/29.0.0/ingestion/kinesis-ingestion"},"Kinesis indexing service")," extension.")),(0,o.yg)("p",null,"Each indexing service provides real-time data ingestion with exactly-once stream processing guarantee.\nTo use either of the streaming ingestion methods, you must first load the associated extension on both the Overlord and the MiddleManager. See ",(0,o.yg)("a",{parentName:"p",href:"/docs/29.0.0/configuration/extensions#loading-extensions"},"Loading extensions")," for more information."),(0,o.yg)("p",null,"Streaming ingestion is controlled by a continuously running ",(0,o.yg)("a",{parentName:"p",href:"/docs/29.0.0/ingestion/supervisor"},"supervisor"),".\nThe supervisor oversees the state of indexing tasks to coordinate handoffs, manage failures, and ensure that scalability and replication requirements are maintained.\nYou start a supervisor by submitting a JSON specification, often referred to as the supervisor spec, either though the Druid web console or using the ",(0,o.yg)("a",{parentName:"p",href:"/docs/29.0.0/api-reference/supervisor-api"},"Supervisor API"),"."))}d.isMDXComponent=!0}}]);