blob: 7713a04db97a74e338b21c7842d0a95501b40b3c [file] [log] [blame]
"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7341],{4137:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return f}});var r=n(7294);function a(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 i(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){a(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,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(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)&&(a[n]=e[n])}return a}var u=r.createContext({}),l=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=l(e.components);return r.createElement(u.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),d=l(n),f=a,m=d["".concat(u,".").concat(f)]||d[f]||p[f]||o;return n?r.createElement(m,i(i({ref:t},c),{},{components:n})):r.createElement(m,i({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=d;var s={};for(var u in t)hasOwnProperty.call(t,u)&&(s[u]=t[u]);s.originalType=e,s.mdxType="string"==typeof e?e:a,i[1]=s;for(var l=2;l<o;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},1588:function(e,t,n){n.r(t),n.d(t,{frontMatter:function(){return s},contentTitle:function(){return u},metadata:function(){return l},toc:function(){return c},default:function(){return d}});var r=n(7462),a=n(3366),o=(n(7294),n(4137)),i=["components"],s={id:"features_of_pinot",title:"Features of Pinot",sidebar_label:"Features of Pinot",draft:!0},u="Features of Pinot",l={unversionedId:"about/features_of_pinot",id:"about/features_of_pinot",isDocsHomePage:!1,title:"Features of Pinot",description:"- A column-oriented database with various compression schemes such as Run Length, Fixed Bit Length",source:"@site/docs/about/features_of_pinot.md",sourceDirName:"about",slug:"/about/features_of_pinot",permalink:"/docs/about/features_of_pinot",editUrl:"https://github.com/apache/pinot/edit/master/website/docs/about/features_of_pinot.md",version:"current",frontMatter:{id:"features_of_pinot",title:"Features of Pinot",sidebar_label:"Features of Pinot",draft:!0},sidebar:"docs",previous:{title:"What is Pinot",permalink:"/docs/about/what_is_pinot"},next:{title:"Running Pinot locally",permalink:"/docs/administration/running_locally"}},c=[],p={toc:c};function d(e){var t=e.components,n=(0,a.Z)(e,i);return(0,o.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"features-of-pinot"},"Features of Pinot"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"A column-oriented database with various compression schemes such as Run Length, Fixed Bit Length"),(0,o.kt)("li",{parentName:"ul"},"Pluggable indexing technologies - Sorted Index, Bitmap Index, Inverted Index"),(0,o.kt)("li",{parentName:"ul"},"Ability to optimize query/execution plan based on query and segment metadata ."),(0,o.kt)("li",{parentName:"ul"},"Near real time ingestion from streams and batch ingestion from Hadoop"),(0,o.kt)("li",{parentName:"ul"},"SQL like language that supports selection, aggregation, filtering, group by, order by, distinct queries on data."),(0,o.kt)("li",{parentName:"ul"},"Support for multivalued fields"),(0,o.kt)("li",{parentName:"ul"},"Horizontally scalable and fault tolerant")),(0,o.kt)("p",null,"Because of the design choices we made to achieve these goals, there are certain limitations in Pinot:"),(0,o.kt)("p",null,"Pinot is not a replacement for database i.e it cannot be used as source of truth store, cannot mutate data\nNot a replacement for search engine i.e Full text search, relevance not supported\nQuery cannot span across multiple tables.\nPinot works very well for querying time series data with lots of Dimensions and Metrics. ",(0,o.kt)("br",null)),(0,o.kt)("p",null,"For example:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-SQL"},"SELECT sum(clicks), sum(impressions) FROM AdAnalyticsTable\n WHERE ((daysSinceEpoch >= 17849 AND daysSinceEpoch <= 17856)) AND accountId IN (123456789)\n GROUP BY daysSinceEpoch TOP 100\n")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-SQL"},"SELECT sum(impressions) FROM AdAnalyticsTable\n WHERE (daysSinceEpoch >= 17824 and daysSinceEpoch <= 17854) AND adveriserId = '1234356789'\n GROUP BY daysSinceEpoch,advertiserId TOP 100\n")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-SQL"},"SELECT sum(cost) FROM AdAnalyticsTable GROUP BY advertiserId TOP 50\n")))}d.isMDXComponent=!0}}]);