(window.webpackJsonp=window.webpackJsonp||[]).push([[32],{EgHj:function(e,t,n){"use strict";n.r(t),n.d(t,"_frontmatter",(function(){return c})),n.d(t,"default",(function(){return p}));var o=n("k1TG"),r=n("8o2o"),a=(n("q1tI"),n("7ljp")),s=n("hhGP"),c=(n("qKvR"),{});void 0!==c&&c&&c===Object(c)&&Object.isExtensible(c)&&!c.hasOwnProperty("__filemeta")&&Object.defineProperty(c,"__filemeta",{configurable:!0,value:{name:"_frontmatter",filename:"src/pages/docs/Connecting to Databases/presto.mdx"}});var i=s.a;function p(e){var t=e.components,n=Object(r.a)(e,["components"]);return Object(a.b)(i,Object(o.a)({},n,{components:t,mdxType:"MDXLayout"}),Object(a.b)("h2",{id:"presto"},"Presto"),Object(a.b)("p",null,"The ",Object(a.b)("a",{href:"https://pypi.org/project/PyHive/",parentName:"p"},"pyhive")," library is the recommended way to connect to Presto through SQLAlchemy."),Object(a.b)("p",null,"The expected connection string is formatted as follows:"),Object(a.b)("pre",null,Object(a.b)("code",{parentName:"pre"},"hive://hive@{hostname}:{port}/{database}\n")),Object(a.b)("p",null,"By default Superset assumes the most recent version of Presto is being used when querying the\ndatasource. If you’re using an older version of Presto, you can configure it in the extra parameter:"),Object(a.b)("pre",null,Object(a.b)("code",{parentName:"pre"},'{\n    "version": "0.123"\n}\n')))}void 0!==p&&p&&p===Object(p)&&Object.isExtensible(p)&&!p.hasOwnProperty("__filemeta")&&Object.defineProperty(p,"__filemeta",{configurable:!0,value:{name:"MDXContent",filename:"src/pages/docs/Connecting to Databases/presto.mdx"}}),p.isMDXComponent=!0}}]);
//# sourceMappingURL=component---src-pages-docs-connecting-to-databases-presto-mdx-3a83a9c161e65aa0f4c5.js.map