(window.webpackJsonp=window.webpackJsonp||[]).push([[37],{EgHj:function(e,t,n){"use strict";n.r(t),n.d(t,"_frontmatter",(function(){return s})),n.d(t,"default",(function(){return p}));var o=n("k1TG"),r=n("8o2o"),a=(n("q1tI"),n("7ljp")),c=n("hhGP"),s=(n("qKvR"),{});void 0!==s&&s&&s===Object(s)&&Object.isExtensible(s)&&!s.hasOwnProperty("__filemeta")&&Object.defineProperty(s,"__filemeta",{configurable:!0,value:{name:"_frontmatter",filename:"src/pages/docs/Connecting to Databases/presto.mdx"}});var i={_frontmatter:s},b=c.a;function p(e){var t=e.components,n=Object(r.a)(e,["components"]);return Object(a.b)(b,Object(o.a)({},i,n,{components:t,mdxType:"MDXLayout"}),Object(a.b)("h2",{id:"presto"},"Presto"),Object(a.b)("p",null,"The ",Object(a.b)("a",Object(o.a)({parentName:"p"},{href:"https://pypi.org/project/PyHive/"}),"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",Object(o.a)({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",Object(o.a)({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-8df12ac7bc37144caab5.js.map