/*! For license information please see 1db65d89.7342fb53.js.LICENSE.txt */
(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2659],{4137:function(e,t,r){"use strict";r.d(t,{Zo:function(){return l},kt:function(){return p}});var n=r(7294);function i(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 n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(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){i(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 u(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,o=e.originalType,c=e.parentName,l=u(e,["components","mdxType","originalType","parentName"]),d=s(r),p=i,v=d["".concat(c,".").concat(p)]||d[p]||f[p]||o;return r?n.createElement(v,a(a({ref:t},l),{},{components:r})):n.createElement(v,a({ref:t},l))}));function p(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=r.length,a=new Array(o);a[0]=d;var u={};for(var c in t)hasOwnProperty.call(t,c)&&(u[c]=t[c]);u.originalType=e,u.mdxType="string"==typeof e?e:i,a[1]=u;for(var s=2;s<o;s++)a[s]=r[s];return n.createElement.apply(null,a)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},2511:function(e,t,r){"use strict";r.d(t,{Z:function(){return p}});var n=r(3366),i=r(7294),o=r(3727),a=r(9962),u=r(2735),c=r(6136),s=(0,i.createContext)({collectLink:function(){}}),l=r(9524),f=r(3905),d=["isNavLink","to","href","activeClassName","isActive","data-noBrokenLinkCheck","autoAddBaseUrl"];var p=function(e){var t,r,p=e.isNavLink,v=e.to,m=e.href,b=e.activeClassName,h=e.isActive,g=e["data-noBrokenLinkCheck"],y=e.autoAddBaseUrl,O=void 0===y||y,w=(0,n.Z)(e,d),j=(0,a.Z)().siteConfig,P=j.trailingSlash,k=j.baseUrl,E=(0,l.C)().withBaseUrl,U=(0,i.useContext)(s),_=v||m,C=(0,u.Z)(_),N=null==_?void 0:_.replace("pathname://",""),x=void 0!==N?(r=N,O&&function(e){return e.startsWith("/")}(r)?E(r):r):void 0;x&&C&&(x=(0,f.applyTrailingSlash)(x,{trailingSlash:P,baseUrl:k}));var Z,T=(0,i.useRef)(!1),S=p?o.OL:o.rU,D=c.Z.canUseIntersectionObserver;(0,i.useEffect)((function(){return!D&&C&&null!=x&&window.docusaurus.prefetch(x),function(){D&&Z&&Z.disconnect()}}),[x,D,C]);var M=null!==(t=null==x?void 0:x.startsWith("#"))&&void 0!==t&&t,A=!x||!C||M;return x&&C&&!M&&!g&&U.collectLink(x),A?i.createElement("a",Object.assign({href:x},_&&!C&&{target:"_blank",rel:"noopener noreferrer"},w)):i.createElement(S,Object.assign({},w,{onMouseEnter:function(){T.current||null==x||(window.docusaurus.preload(x),T.current=!0)},innerRef:function(e){var t,r;D&&e&&C&&(t=e,r=function(){null!=x&&window.docusaurus.prefetch(x)},(Z=new window.IntersectionObserver((function(e){e.forEach((function(e){t===e.target&&(e.isIntersecting||e.intersectionRatio>0)&&(Z.unobserve(t),Z.disconnect(),r())}))}))).observe(t))},to:x||""},p&&{isActive:h,activeClassName:b}))}},2735:function(e,t,r){"use strict";function n(e){return!0===/^(\w*:|\/\/)/.test(e)}function i(e){return void 0!==e&&!n(e)}r.d(t,{b:function(){return n},Z:function(){return i}})},9524:function(e,t,r){"use strict";r.d(t,{C:function(){return o},Z:function(){return a}});var n=r(9962),i=r(2735);function o(){var e=(0,n.Z)().siteConfig,t=(e=void 0===e?{}:e).baseUrl,r=void 0===t?"/":t,o=e.url;return{withBaseUrl:function(e,t){return function(e,t,r,n){var o=void 0===n?{}:n,a=o.forcePrependBaseUrl,u=void 0!==a&&a,c=o.absolute,s=void 0!==c&&c;if(!r)return r;if(r.startsWith("#"))return r;if((0,i.b)(r))return r;if(u)return t+r;var l=r.startsWith(t)?r:t+r.replace(/^\//,"");return s?e+l:l}(o,r,e,t)}}}function a(e,t){return void 0===t&&(t={}),(0,o().withBaseUrl)(e,t)}},4136:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var r=t.trailingSlash,n=t.baseUrl;if(e.startsWith("#"))return e;if(void 0===r)return e;var i,o=e.split(/[#?]/)[0],a="/"===o||o===n?o:(i=o,r?function(e){return e.endsWith("/")?e:e+"/"}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));return e.replace(o,a)}},3905:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.uniq=t.applyTrailingSlash=void 0;var i=r(4136);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return n(i).default}});var o=r(3509);Object.defineProperty(t,"uniq",{enumerable:!0,get:function(){return n(o).default}})},3509:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return Array.from(new Set(e))}},9342:function(e,t,r){"use strict";var n=r(7294),i=r(2511),o=r(4184),a=r.n(o);t.Z=function(e){var t=e.children,r=e.className,o=e.badge,u=e.icon,c=e.size,s=e.target,l=e.to,f=a()("jump-to","jump-to--"+c,r),d=n.createElement("div",{className:"jump-to--inner"},n.createElement("div",{className:"jump-to--inner-2"},n.createElement("div",{className:"jump-to--main"},o?n.createElement("span",{className:"badge badge--primary badge--right"},o):"",t),n.createElement("div",{className:"jump-to--right"},n.createElement("i",{className:"feather icon-"+(u||"chevron-right")+" arrow"}))));return s?n.createElement("a",{href:l,target:s,className:f},d):n.createElement(i.Z,{to:l,className:f},d)}},3766:function(e,t,r){"use strict";r.r(t),r.d(t,{frontMatter:function(){return c},contentTitle:function(){return s},metadata:function(){return l},toc:function(){return f},default:function(){return p}});var n=r(7462),i=r(3366),o=(r(7294),r(4137)),a=r(9342),u=["components"],c={title:"User Guide",description:"User Guide",sidebar_label:"hidden",hide_pagination:!0,draft:!0},s=void 0,l={unversionedId:"user-guide",id:"user-guide",isDocsHomePage:!1,title:"User Guide",description:"User Guide",source:"@site/docs/user-guide.md",sourceDirName:".",slug:"/user-guide",permalink:"/docs/user-guide",editUrl:"https://github.com/apache/pinot/edit/master/website/docs/user-guide.md",version:"current",frontMatter:{title:"User Guide",description:"User Guide",sidebar_label:"hidden",hide_pagination:!0,draft:!0}},f=[],d={toc:f};function p(e){var t=e.components,r=(0,i.Z)(e,u);return(0,o.kt)("wrapper",(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Provide basic foundation of Pinot."),(0,o.kt)(a.Z,{to:"/docs/about/what_is_pinot/",mdxType:"Jump"},"What is Pinot?"),(0,o.kt)(a.Z,{to:"/docs/about/features_of_pinot/",mdxType:"Jump"},"Features of Pinot"),(0,o.kt)(a.Z,{to:"/docs/about/guarantees/",mdxType:"Jump"},"Who is using Pinot?"))}p.isMDXComponent=!0},4184:function(e,t){var r;!function(){"use strict";var n={}.hasOwnProperty;function i(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var o=typeof r;if("string"===o||"number"===o)e.push(r);else if(Array.isArray(r)){if(r.length){var a=i.apply(null,r);a&&e.push(a)}}else if("object"===o)if(r.toString===Object.prototype.toString)for(var u in r)n.call(r,u)&&r[u]&&e.push(u);else e.push(r.toString())}}return e.join(" ")}e.exports?(i.default=i,e.exports=i):void 0===(r=function(){return i}.apply(t,[]))||(e.exports=r)}()}}]);