blob: 4835a082dc50406c80c8ce0e03d5b63e9aa7ec5f [file] [log] [blame]
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8053],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>d});var r=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(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,r,i=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},u=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},g=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,c=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),p=l(n),g=i,d=p["".concat(c,".").concat(g)]||p[g]||m[g]||o;return n?r.createElement(d,a(a({ref:t},u),{},{components:n})):r.createElement(d,a({ref:t},u))}));function d(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,a=new Array(o);a[0]=g;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[p]="string"==typeof e?e:i,a[1]=s;for(var l=2;l<o;l++)a[l]=n[l];return r.createElement.apply(null,a)}return r.createElement.apply(null,n)}g.displayName="MDXCreateElement"},49319:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>c,default:()=>d,frontMatter:()=>s,metadata:()=>l,toc:()=>p});var r=n(87462),i=n(63366),o=(n(67294),n(3905)),a=["components"],s={id:"streaming",title:"Streaming ingestion"},c=void 0,l={unversionedId:"ingestion/streaming",id:"ingestion/streaming",title:"Streaming ingestion",description:"\x3c!--",source:"@site/docs/latest/ingestion/streaming.md",sourceDirName:"ingestion",slug:"/ingestion/streaming",permalink:"/docs/latest/ingestion/streaming",draft:!1,tags:[],version:"current",frontMatter:{id:"streaming",title:"Streaming ingestion"},sidebar:"docs",previous:{title:"Known issues",permalink:"/docs/latest/multi-stage-query/known-issues"},next:{title:"Supervisor",permalink:"/docs/latest/ingestion/supervisor"}},u={},p=[],m={toc:p},g="wrapper";function d(e){var t=e.components,n=(0,i.Z)(e,a);return(0,o.kt)(g,(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Apache Druid can consume data streams from the following external streaming sources:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Apache Kafka through the bundled ",(0,o.kt)("a",{parentName:"li",href:"/docs/latest/ingestion/kafka-ingestion"},"Kafka indexing service")," extension."),(0,o.kt)("li",{parentName:"ul"},"Amazon Kinesis through the bundled ",(0,o.kt)("a",{parentName:"li",href:"/docs/latest/ingestion/kinesis-ingestion"},"Kinesis indexing service")," extension.")),(0,o.kt)("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.kt)("a",{parentName:"p",href:"/docs/latest/configuration/extensions#loading-extensions"},"Loading extensions")," for more information."),(0,o.kt)("p",null,"Streaming ingestion is controlled by a continuously running ",(0,o.kt)("a",{parentName:"p",href:"/docs/latest/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.kt)("a",{parentName:"p",href:"/docs/latest/api-reference/supervisor-api"},"Supervisor API"),"."))}d.isMDXComponent=!0}}]);