(window.webpackJsonp=window.webpackJsonp||[]).push([[28],{120:function(e,a,t){"use strict";var n=t(0),l=t.n(n),i=t(117),r=t(115),c=t.n(r);t(48);a.a=function(e){var a=e.children,t=e.className,n=e.badge,r=e.icon,s=e.size,o=e.target,m=e.to,u=c()("jump-to","jump-to--"+s,t),g=l.a.createElement("div",{className:"jump-to--inner"},l.a.createElement("div",{className:"jump-to--inner-2"},l.a.createElement("div",{className:"jump-to--main"},n?l.a.createElement("span",{className:"badge badge--primary badge--right"},n):"",a),l.a.createElement("div",{className:"jump-to--right"},l.a.createElement("i",{className:"feather icon-"+(r||"chevron-right")+" arrow"}))));return o?l.a.createElement("a",{href:m,target:o,className:u},g):l.a.createElement(i.a,{to:m,className:u},g)}},91:function(e,a,t){"use strict";t.r(a);var n=t(2),l=t(0),i=t.n(l),r=t(139),c=t(135),s=t(120),o=t(127),m=t(117),u=t(185),g=t.n(u),p=t(125),d=t(124),h=t(115),E=t.n(h),b=t(114),v=t(92),f=t.n(v),N=(t(93),Object(c.a)("h2")),w=[{title:"Blazing Fast",icon:"zap",description:i.a.createElement(i.a.Fragment,null,"Pinot is designed to answer OLAP queries with low latency on immutable data")},{title:"Pluggable indexing",icon:"unlock",description:i.a.createElement(i.a.Fragment,null,"Pluggable indexing technologies - Sorted Index, Bitmap Index, Inverted Index")},{title:"Near Real time ingestion",icon:"rss",description:i.a.createElement(i.a.Fragment,null,"Near Realtime ingestion with"," ",i.a.createElement(m.a,{to:"https://kafka.apache.org/"},"Apache Kafka")," ","supports StringSerializer or"," ",i.a.createElement(m.a,{to:"https://avro.apache.org/"},"Avro")," formats")},{title:"Horizontally scalable",icon:"code",description:i.a.createElement(i.a.Fragment,null,"Horizontally scalable and fault tolerant")},{title:"Joins using PrestoDB",icon:"shuffle",description:i.a.createElement(i.a.Fragment,null,"Joins are currently not supported, but this problem can be overcome by using"," ",i.a.createElement(m.a,{to:"https://prestodb.io/"},"PrestoDB")," for querying")},{title:"SQL-like Query Interface (PQL)",icon:"search",description:i.a.createElement(i.a.Fragment,null,"SQL like language that supports selection, aggregation, filtering, group by, order by, distinct queries on data")},{title:"Hybrid tables",icon:"list",description:i.a.createElement(i.a.Fragment,null,"Consist of of"," ",i.a.createElement(m.a,{to:"http://pinot.apache.org/img/dynamic-table.png"},"both offline and realtime table"),". Use realtime table only to cover segments for which offline data may not be available yet")},{title:"Anomaly Detection",icon:"bar-chart",description:i.a.createElement(i.a.Fragment,null,"Run ML Algorithms to detect Anomalies on the data stored in Pinot. Use"," ",i.a.createElement(m.a,{to:"https://docs.pinot.apache.org/integrations/thirdeye"},"ThirdEye")," ","with Pinot for Anomaly Detection and Root Cause Analysis")},{title:"Smart Alerts in ThirdEye",icon:"bell",description:i.a.createElement(i.a.Fragment,null,"Detect the right anomalies by customizing anomaly detect flow and notification flow")}];function y(e){var a,t,l=e.features,r=[];for(a=0,t=l.length;a<t;a+=3){var c=l.slice(a,a+3);r.push(i.a.createElement("div",{key:"features"+a,className:"row"},c.map((function(e,a){return i.a.createElement(k,Object(n.a)({key:a},e))}))))}return i.a.createElement("section",{className:f.a.features},i.a.createElement("div",{className:"container"},i.a.createElement(N,{id:"features"},"Features"),r))}function k(e){var a=e.icon,t=e.title,n=e.description;return i.a.createElement("div",{className:E()("col col--4",f.a.feature)},i.a.createElement("div",{className:f.a.featureIcon},i.a.createElement("i",{className:E()("feather","icon-"+a)})),i.a.createElement("h3",null,t),i.a.createElement("p",null,n))}function P(){return i.a.createElement("section",{className:"topologies"},i.a.createElement("div",{className:"container"},i.a.createElement(N,{id:"who-uses"},"Who Uses?"),i.a.createElement("div",{className:"sub-title"},"Pinot powers several big players, including LinkedIn, Uber, Microsoft, Factual, Weibo, Slack and more"),i.a.createElement("div",{className:f.a.installationPlatforms},i.a.createElement(m.a,{to:"https://www.linkedin.com"},i.a.createElement(g.a,{src:"/img/companies/linkedin.svg"})),i.a.createElement(m.a,{to:"https://www.ubereats.com"},i.a.createElement(g.a,{src:"/img/companies/uber.svg"})),i.a.createElement(m.a,{to:"https://teams.microsoft.com"},i.a.createElement(g.a,{src:"/img/companies/microsoft-teams.svg"})),i.a.createElement(m.a,{to:"https://slack.com"},i.a.createElement(g.a,{src:"/img/companies/slack.svg"})),i.a.createElement(m.a,{to:"https://www.factual.com"},i.a.createElement(g.a,{src:"/img/companies/factual.svg"})),i.a.createElement(m.a,{to:"https://www.weibo.com"},i.a.createElement(g.a,{src:"/img/companies/weibo.svg"})))))}function S(){return i.a.createElement("section",{className:"topologies"},i.a.createElement("div",{className:"container"},i.a.createElement(N,{id:"ingest-query"},"Ingest and Query Options"),i.a.createElement("div",{className:"sub-title"},"Ingest with Kafka, Spark, HDFS or Cloud Storages"),i.a.createElement("div",{className:"sub-title"},"Query using PQL(Pinot Query Language ), SQL or Presto(supports Joins)"),i.a.createElement(g.a,{src:"/img/ingest-query.svg",className:"svg image-overview figure"})))}function F(){return i.a.createElement("section",{className:f.a.installation},i.a.createElement("div",{className:"container"},i.a.createElement(N,{id:"installation"},"Installs Everywhere"),i.a.createElement("div",{className:"sub-title"},"Pinot can be installed using docker with presto"),i.a.createElement("div",{className:f.a.installationChecks},i.a.createElement("div",null,i.a.createElement("i",{className:"feather icon-package"})," Helm or K8s crds"),i.a.createElement("div",null,i.a.createElement("i",{className:"feather icon-cpu"})," On-Premise"),i.a.createElement("div",null,i.a.createElement("i",{className:"feather icon-zap"})," Public Cloud"),i.a.createElement("div",null,i.a.createElement("i",{className:"feather icon-feather"})," Locally")),i.a.createElement("h3",{className:f.a.installSubTitle},"Install:"),i.a.createElement(d.a,{className:"mini",defaultValue:"helm",values:[{label:i.a.createElement(i.a.Fragment,null,i.a.createElement("i",{className:"feather icon-download-cloud"})," ","Using Helm"),value:"helm"},{label:i.a.createElement(i.a.Fragment,null,i.a.createElement("i",{className:"feather icon-download"})," ","Using Binary"),value:"binary"},{label:i.a.createElement(i.a.Fragment,null,i.a.createElement("i",{className:"feather icon-github"})," ","Build From Source"),value:"github"}]},i.a.createElement(p.a,{value:"helm"},i.a.createElement(r.a,{className:"language-bash"},"helm repo add pinot https://raw.githubusercontent.com/apache/incubator-pinot/master/kubernetes/helm\nkubectl create ns pinot\nhelm install pinot pinot/pinot -n pinot --set cluster.name=pinot")),i.a.createElement(p.a,{value:"binary"},i.a.createElement(r.a,{className:"language-bash"},"VERSION=0.7.1\nwget https://downloads.apache.org/incubator/pinot/apache-pinot-incubating-$VERSION/apache-pinot-incubating-$VERSION-bin.tar.gz\ntar vxf apache-pinot-incubating-*-bin.tar.gz\ncd apache-pinot-incubating-*-bin\nbin/quick-start-batch.sh")),i.a.createElement(p.a,{value:"github"},i.a.createElement(r.a,{className:"language-bash"},"# Clone a repo\ngit clone https://github.com/apache/incubator-pinot.git\ncd incubator-pinot\n\n# Build Pinot\nmvn clean install -DskipTests -Pbin-dist\n\n# Run the Quick Demo\ncd pinot-distribution/target/apache-pinot-incubating-*-SNAPSHOT-bin/apache-pinot-incubating-*-SNAPSHOT-bin\nbin/quick-start-batch.sh"))),i.a.createElement("h3",{className:f.a.installSubTitle},"Or choose your preferred method:"),i.a.createElement("div",{className:"row"},i.a.createElement("div",{className:"col"},i.a.createElement(s.a,{to:"https://docs.pinot.apache.org/getting-started/running-pinot-in-docker"},"Containers")),i.a.createElement("div",{className:"col"},i.a.createElement(s.a,{to:"https://docs.pinot.apache.org/getting-started/kubernetes-quickstart"},"Helm")),i.a.createElement("div",{className:"col"},i.a.createElement(s.a,{to:"https://docs.pinot.apache.org/basics/getting-started/public-cloud-examples"},"Cloud")),i.a.createElement("div",{className:"col"},i.a.createElement(s.a,{to:"https://docs.pinot.apache.org/getting-started/running-pinot-locally"},"Manual/Local")))))}a.default=function(){var e=Object(b.a)().siteConfig,a=void 0===e?{}:e;return i.a.createElement(o.a,{title:a.title+": "+a.tagline,description:a.description},i.a.createElement("header",{className:E()("hero","hero--full-height",f.a.indexHeroBanner)},i.a.createElement("div",{className:"container"},i.a.createElement(m.a,{to:"https://docs.pinot.apache.org/basics/releases/0.7.1",className:f.a.indexAnnouncement},i.a.createElement("span",{className:"badge badge-primary"},"release"),"v0.7.1 has been released! Check the release notes"),i.a.createElement("h1",{className:"hero__title"},a.title),i.a.createElement("p",{className:"hero__subtitle"},a.tagline,", designed to answer OLAP queries with low latency",i.a.createElement(g.a,{src:"/img/pinot-overview.svg",className:"svg image-overview figure"})),i.a.createElement("div",{className:"hero--buttons"},i.a.createElement(m.a,{to:"https://docs.pinot.apache.org/getting-started",className:"button button--primary button--highlight"},"Getting Started"),i.a.createElement(m.a,{to:"https://communityinviter.com/apps/apache-pinot/apache-pinot",className:"button button--primary button--highlight"},"Join our Slack")),i.a.createElement("p",{className:"hero--subsubtitle"},"Pinot is proven at ",i.a.createElement("strong",null,"scale in LinkedIn")," ","powers 50+ user-facing apps and serving"," ",i.a.createElement("strong",null,"100k+ queries")))),i.a.createElement("main",null,w&&w.length&&i.a.createElement(y,{features:w}),i.a.createElement(S,null),i.a.createElement(P,null),i.a.createElement(F,null)))}}}]);