blob: fdf28415d82c0c298358d6e696cab419a1dac43c [file] [log] [blame]
/*! For license information please see 76b5bcb0.4ef696fb.js.LICENSE.txt */
(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8983],{4137:function(e,t,n){"use strict";n.d(t,{Zo:function(){return c},kt:function(){return m}});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(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?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(s.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,o=e.mdxType,a=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),d=u(n),m=o,f=d["".concat(s,".").concat(m)]||d[m]||p[m]||a;return n?r.createElement(f,i(i({ref:t},c),{},{components:n})):r.createElement(f,i({ref:t},c))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:o,i[1]=l;for(var u=2;u<a;u++)i[u]=n[u];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},8448:function(e,t,n){"use strict";var r=n(7294);t.Z=function(e){var t=e.children,n=e.hidden,o=e.className;return r.createElement("div",{role:"tabpanel",hidden:n,className:o},t)}},7358:function(e,t,n){"use strict";n.d(t,{Z:function(){return p}});var r=n(7294),o=n(2713);var a=function(){var e=(0,r.useContext)(o.Z);if(null==e)throw new Error('"useUserPreferencesContext" is used outside of "Layout" component.');return e},i=n(6010),l="tabItem_1uMI",s="tabItemActive_2DSg";var u=37,c=39;var p=function(e){var t=e.lazy,n=e.block,o=e.defaultValue,p=e.values,d=e.groupId,m=e.className,f=a(),y=f.tabGroupChoices,b=f.setTabGroupChoices,h=(0,r.useState)(o),g=h[0],v=h[1],k=r.Children.toArray(e.children),P=[];if(null!=d){var T=y[d];null!=T&&T!==g&&p.some((function(e){return e.value===T}))&&v(T)}var O=function(e){var t=e.currentTarget,n=P.indexOf(t),r=p[n].value;v(r),null!=d&&(b(d,r),setTimeout((function(){var e,n,r,o,a,i,l,u;(e=t.getBoundingClientRect(),n=e.top,r=e.left,o=e.bottom,a=e.right,i=window,l=i.innerHeight,u=i.innerWidth,n>=0&&a<=u&&o<=l&&r>=0)||(t.scrollIntoView({block:"center",behavior:"smooth"}),t.classList.add(s),setTimeout((function(){return t.classList.remove(s)}),2e3))}),150))},S=function(e){var t,n;switch(e.keyCode){case c:var r=P.indexOf(e.target)+1;n=P[r]||P[0];break;case u:var o=P.indexOf(e.target)-1;n=P[o]||P[P.length-1]}null==(t=n)||t.focus()};return r.createElement("div",{className:"tabs-container"},r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.Z)("tabs",{"tabs--block":n},m)},p.map((function(e){var t=e.value,n=e.label;return r.createElement("li",{role:"tab",tabIndex:g===t?0:-1,"aria-selected":g===t,className:(0,i.Z)("tabs__item",l,{"tabs__item--active":g===t}),key:t,ref:function(e){return P.push(e)},onKeyDown:S,onFocus:O,onClick:O},n)}))),t?(0,r.cloneElement)(k.filter((function(e){return e.props.value===g}))[0],{className:"margin-vert--md"}):r.createElement("div",{className:"margin-vert--md"},k.map((function(e,t){return(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==g})}))))}},2713:function(e,t,n){"use strict";var r=(0,n(7294).createContext)(void 0);t.Z=r},6261:function(e,t,n){"use strict";var r=n(7294),o=n(4184),a=n.n(o);t.Z=function(e){var t=e.children,n=e.classNames,o=e.fill,i=e.icon,l=e.type,s=null;switch(l){case"danger":s="alert-triangle";break;case"success":s="check-circle";break;case"warning":s="alert-triangle";break;default:s="info"}return r.createElement("div",{className:a()(n,"alert","alert--"+l,{"alert--fill":o,"alert--icon":!1!==i}),role:"alert"},!1!==i&&r.createElement("i",{className:a()("feather","icon-"+(i||s))}),t)}},8657:function(e,t,n){"use strict";n.r(t),n.d(t,{frontMatter:function(){return c},contentTitle:function(){return p},metadata:function(){return d},toc:function(){return m},default:function(){return y}});var r=n(7462),o=n(3366),a=(n(7294),n(4137)),i=n(6261),l=n(7358),s=n(8448),u=["components"],c={title:"Querying Pinot",sidebar_label:"query-pinot",description:"Ways to query Pinot",draft:!0},p=void 0,d={unversionedId:"user-guide/query-pinot",id:"user-guide/query-pinot",isDocsHomePage:!1,title:"Querying Pinot",description:"Ways to query Pinot",source:"@site/docs/user-guide/query-pinot.md",sourceDirName:"user-guide",slug:"/user-guide/query-pinot",permalink:"/docs/user-guide/query-pinot",editUrl:"https://github.com/apache/pinot/edit/master/website/docs/user-guide/query-pinot.md",version:"current",frontMatter:{title:"Querying Pinot",sidebar_label:"query-pinot",description:"Ways to query Pinot",draft:!0}},m=[{value:"REST API on the Broker",id:"rest-api-on-the-broker",children:[]},{value:"Query Console",id:"query-console",children:[{value:"pinot-admin",id:"pinot-admin",children:[]}]},{value:"Pinot Clients",id:"pinot-clients",children:[]}],f={toc:m};function y(e){var t=e.components,c=(0,o.Z)(e,u);return(0,a.kt)("wrapper",(0,r.Z)({},f,c,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"rest-api-on-the-broker"},"REST API on the Broker"),(0,a.kt)("p",null,"Pinot can be queried via a broker endpoint as follows. This example assumes broker is running on ",(0,a.kt)("inlineCode",{parentName:"p"},"localhost:8099")),(0,a.kt)(l.Z,{block:!0,defaultValue:"Standard-SQL endpoint",urlKey:"arch",values:[{label:"Standard-SQL endpoint",value:"Standard-SQL endpoint"},{label:"PQL endpoint",value:"PQL endpoint"}],mdxType:"Tabs"},(0,a.kt)(s.Z,{value:"Standard-SQL endpoint",mdxType:"TabItem"},(0,a.kt)("p",null,"The Pinot REST API can be accessed by invoking POST operation with a JSON body containing the parameter sql to the ",(0,a.kt)("inlineCode",{parentName:"p"},"/query/sql")," endpoint on a broker."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-sql"},'$ curl -H "Content-Type: application/json" -X POST \\\n -d \'{"sql":"select foo, count(*) from myTable group by foo limit 100"}\' \\\n http://localhost:8099/query/sql\n'))),(0,a.kt)(s.Z,{value:"PQL endpoint",mdxType:"TabItem"},(0,a.kt)(i.Z,{type:"info",mdxType:"Alert"}," This endpoint is deprecated, and will soon be removed. The standard-SQL endpoint is the recommended endpoint."),(0,a.kt)("p",null,"The PQL endpoint can be accessed by invoking POST operation with a JSON body containing the parameter pql to the ",(0,a.kt)("inlineCode",{parentName:"p"},"/query")," endpoint on a broker."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-sql"},'$ curl -H "Content-Type: application/json" -X POST \\\n -d \'{"pql":"select count(*) from myTable group by foo top 100"}\' \\\n http://localhost:8099/query\n')))),(0,a.kt)("h2",{id:"query-console"},"Query Console"),(0,a.kt)("p",null,"Query Console can be used for running ad-hoc queries (checkbox available to query the PQL endpoint). The Query Console can be accessed by entering the ",(0,a.kt)("inlineCode",{parentName:"p"},"<controller host>:<controller port>")," in your browser"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"PQL-Query-Console",src:n(6661).Z})),(0,a.kt)("h3",{id:"pinot-admin"},"pinot-admin"),(0,a.kt)("p",null,"You can also query using the pinot-admin scripts. Make sure you follow instructions in Getting Pinot to get Pinot locally, and then"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},'cd pinot/pinot-tools/target/pinot-tools-pkg\nbin/pinot-admin.sh PostQuery \\\n -queryType sql \\\n -brokerPort 8000 \\\n -query "select count(*) from baseballStats"\n\n2020/03/04 12:46:33.459 INFO [PostQueryCommand] [main] Executing command: PostQuery -brokerHost localhost -brokerPort 8000 -queryType sql -query select count(*) from baseballStats\n2020/03/04 12:46:33.854 INFO [PostQueryCommand] [main] Result: {"resultTable":{"dataSchema":{"columnDataTypes":["LONG"],"columnNames":["count(*)"]},"rows":[[97889]]},"exceptions":[],"numServersQueried":1,"numServersResponded":1,"numSegmentsQueried":1,"numSegmentsProcessed":1,"numSegmentsMatched":1,"numConsumingSegmentsQueried":0,"numDocsScanned":97889,"numEntriesScannedInFilter":0,"numEntriesScannedPostFilter":0,"numGroupsLimitReached":false,"totalDocs":97889,"timeUsedMs":185,"segmentStatistics":[],"traceInfo":{},"minConsumingFreshnessTimeMs":0}\n')),(0,a.kt)("h2",{id:"pinot-clients"},"Pinot Clients"),(0,a.kt)("p",null,"Here's a list of the clients available to query Pinot from your application"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"/docs/user-guide/clients/golang"},"Java client")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"/docs/user-guide/clients/java"},"Go client")),(0,a.kt)("li",{parentName:"ul"},"Coming soon - JDBC client")))}y.isMDXComponent=!0},4184:function(e,t){var n;!function(){"use strict";var r={}.hasOwnProperty;function o(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var a=typeof n;if("string"===a||"number"===a)e.push(n);else if(Array.isArray(n)){if(n.length){var i=o.apply(null,n);i&&e.push(i)}}else if("object"===a)if(n.toString===Object.prototype.toString)for(var l in n)r.call(n,l)&&n[l]&&e.push(l);else e.push(n.toString())}}return e.join(" ")}e.exports?(o.default=o,e.exports=o):void 0===(n=function(){return o}.apply(t,[]))||(e.exports=n)}()},6010:function(e,t,n){"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(o&&(o+=" "),o+=n);else for(t in e)e[t]&&(o&&(o+=" "),o+=t);return o}function o(){for(var e,t,n=0,o="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(o&&(o+=" "),o+=t);return o}n.d(t,{Z:function(){return o}})},6661:function(e,t,n){"use strict";t.Z=n.p+"assets/images/pql-query-console-9172787dd283a81158000e46310114f3.png"}}]);