blob: 45613d8586bedaff172a72bd83ed31c626b17b42 [file] [log] [blame]
/*! For license information please see 76b5bcb0.30d12667.js.LICENSE.txt */
(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{113:function(e,t,n){"use strict";n.d(t,"a",(function(){return p})),n.d(t,"b",(function(){return f}));var r=n(0),o=n.n(r);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 i(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 c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(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 u=o.a.createContext({}),s=function(e){var t=o.a.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},p=function(e){var t=s(e.components);return o.a.createElement(u.Provider,{value:t},e.children)},b={inlineCode:"code",wrapper:function(e){var t=e.children;return o.a.createElement(o.a.Fragment,{},t)}},d=o.a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,i=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=s(n),d=r,f=p["".concat(i,".").concat(d)]||p[d]||b[d]||a;return n?o.a.createElement(f,c(c({ref:t},u),{},{components:n})):o.a.createElement(f,c({ref:t},u))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,i=new Array(a);i[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:r,i[1]=c;for(var u=2;u<a;u++)i[u]=n[u];return o.a.createElement.apply(null,i)}return o.a.createElement.apply(null,n)}d.displayName="MDXCreateElement"},115:function(e,t,n){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 a=typeof r;if("string"===a||"number"===a)e.push(r);else if(Array.isArray(r)&&r.length){var i=o.apply(null,r);i&&e.push(i)}else if("object"===a)for(var c in r)n.call(r,c)&&r[c]&&e.push(c)}}return e.join(" ")}e.exports?(o.default=o,e.exports=o):void 0===(r=function(){return o}.apply(t,[]))||(e.exports=r)}()},119: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}t.a=function(){for(var e,t,n=0,o="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(o&&(o+=" "),o+=t);return o}},121:function(e,t,n){"use strict";var r=n(0),o=n.n(r),a=n(115),i=n.n(a);n(49);t.a=function(e){var t=e.children,n=e.classNames,r=e.fill,a=e.icon,c=e.type,l=null;switch(c){case"danger":l="alert-triangle";break;case"success":l="check-circle";break;case"warning":l="alert-triangle";break;default:l="info"}return o.a.createElement("div",{className:i()(n,"alert","alert--"+c,{"alert--fill":r,"alert--icon":!1!==a}),role:"alert"},!1!==a&&o.a.createElement("i",{className:i()("feather","icon-"+(a||l))}),t)}},122:function(e,t,n){"use strict";var r=n(0),o=n(123);t.a=function(){var e=Object(r.useContext)(o.a);if(null==e)throw new Error("`useUserPreferencesContext` is used outside of `Layout` Component.");return e}},123:function(e,t,n){"use strict";var r=n(0),o=Object(r.createContext)(void 0);t.a=o},124:function(e,t,n){"use strict";var r=n(0),o=n.n(r),a=n(122),i=n(119),c=n(50),l=n.n(c),u=37,s=39;t.a=function(e){var t=e.block,n=e.children,c=e.defaultValue,p=e.values,b=e.groupId,d=Object(a.a)(),f=d.tabGroupChoices,m=d.setTabGroupChoices,y=Object(r.useState)(c),O=y[0],h=y[1],g=Object(r.useState)(!1),v=g[0],j=g[1];if(null!=b){var P=f[b];null!=P&&P!==O&&p.some((function(e){return e.value===P}))&&h(P)}var w=function(e){h(e),null!=b&&m(b,e)},T=[],q=function(e){e.metaKey||e.altKey||e.ctrlKey||j(!0)},S=function(){j(!1)};return Object(r.useEffect)((function(){window.addEventListener("keydown",q),window.addEventListener("mousedown",S)}),[]),o.a.createElement("div",null,o.a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:Object(i.a)("tabs",{"tabs--block":t})},p.map((function(e){var t=e.value,n=e.label;return o.a.createElement("li",{role:"tab",tabIndex:0,"aria-selected":O===t,className:Object(i.a)("tabs__item",l.a.tabItem,{"tabs__item--active":O===t}),style:v?{}:{outline:"none"},key:t,ref:function(e){return T.push(e)},onKeyDown:function(e){!function(e,t,n){switch(n.keyCode){case s:!function(e,t){var n=e.indexOf(t)+1;e[n]?e[n].focus():e[0].focus()}(e,t);break;case u:!function(e,t){var n=e.indexOf(t)-1;e[n]?e[n].focus():e[e.length-1].focus()}(e,t)}}(T,e.target,e),q(e)},onFocus:function(){return w(t)},onClick:function(){w(t),j(!1)},onPointerDown:function(){return j(!1)}},n)}))),o.a.createElement("div",{role:"tabpanel",className:"margin-vert--md"},r.Children.toArray(n).filter((function(e){return e.props.value===O}))[0]))}},125:function(e,t,n){"use strict";var r=n(0),o=n.n(r);t.a=function(e){return o.a.createElement("div",null,e.children)}},183:function(e,t,n){"use strict";n.r(t),t.default=n.p+"assets/images/pql-query-console-9172787dd283a81158000e46310114f3.png"},81:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return u})),n.d(t,"metadata",(function(){return s})),n.d(t,"rightToc",(function(){return p})),n.d(t,"default",(function(){return d}));var r=n(2),o=n(6),a=(n(0),n(113)),i=n(121),c=n(124),l=n(125),u={title:"Querying Pinot",sidebar_label:"query-pinot",description:"Ways to query Pinot"},s={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",slug:"/user-guide/query-pinot",permalink:"/docs/user-guide/query-pinot",editUrl:"https://github.com/apache/incubator-pinot/edit/master/website/docs/user-guide/query-pinot.md",version:"current",sidebar_label:"query-pinot"},p=[{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:[]}],b={rightToc:p};function d(e){var t=e.components,u=Object(o.a)(e,["components"]);return Object(a.b)("wrapper",Object(r.a)({},b,u,{components:t,mdxType:"MDXLayout"}),Object(a.b)("h2",{id:"rest-api-on-the-broker"},"REST API on the Broker"),Object(a.b)("p",null,"Pinot can be queried via a broker endpoint as follows. This example assumes broker is running on ",Object(a.b)("inlineCode",{parentName:"p"},"localhost:8099")),Object(a.b)(c.a,{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"},Object(a.b)(l.a,{value:"Standard-SQL endpoint",mdxType:"TabItem"},Object(a.b)("p",null,"The Pinot REST API can be accessed by invoking POST operation with a JSON body containing the parameter sql to the ",Object(a.b)("inlineCode",{parentName:"p"},"/query/sql")," endpoint on a broker."),Object(a.b)("pre",null,Object(a.b)("code",Object(r.a)({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'))),Object(a.b)(l.a,{value:"PQL endpoint",mdxType:"TabItem"},Object(a.b)(i.a,{type:"info",mdxType:"Alert"}," This endpoint is deprecated, and will soon be removed. The standard-SQL endpoint is the recommended endpoint."),Object(a.b)("p",null,"The PQL endpoint can be accessed by invoking POST operation with a JSON body containing the parameter pql to the ",Object(a.b)("inlineCode",{parentName:"p"},"/query")," endpoint on a broker."),Object(a.b)("pre",null,Object(a.b)("code",Object(r.a)({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')))),Object(a.b)("h2",{id:"query-console"},"Query Console"),Object(a.b)("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 ",Object(a.b)("inlineCode",{parentName:"p"},"<controller host>:<controller port>")," in your browser"),Object(a.b)("p",null,Object(a.b)("img",{alt:"PQL-Query-Console",src:n(183).default})),Object(a.b)("h3",{id:"pinot-admin"},"pinot-admin"),Object(a.b)("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"),Object(a.b)("pre",null,Object(a.b)("code",Object(r.a)({parentName:"pre"},{className:"language-bash"}),'cd incubator-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')),Object(a.b)("h2",{id:"pinot-clients"},"Pinot Clients"),Object(a.b)("p",null,"Here's a list of the clients available to query Pinot from your application"),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("a",Object(r.a)({parentName:"li"},{href:"/docs/user-guide/clients/golang"}),"Java client")),Object(a.b)("li",{parentName:"ul"},Object(a.b)("a",Object(r.a)({parentName:"li"},{href:"/docs/user-guide/clients/java"}),"Go client")),Object(a.b)("li",{parentName:"ul"},"Coming soon - JDBC client")))}d.isMDXComponent=!0}}]);