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