(window.webpackJsonp=window.webpackJsonp||[]).push([[31],{EgHj:function(e,t,n){"use strict";n.r(t),n.d(t,"_frontmatter",(function(){return c})),n.d(t,"default",(function(){return b}));var o=n("wx14"),r=n("zLVn"),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={_frontmatter:c},p=s.a;function b(e){var t=e.components,n=Object(r.a)(e,["components"]);return Object(a.b)(p,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",{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!==b&&b&&b===Object(b)&&Object.isExtensible(b)&&!b.hasOwnProperty("__filemeta")&&Object.defineProperty(b,"__filemeta",{configurable:!0,value:{name:"MDXContent",filename:"src/pages/docs/Connecting to Databases/presto.mdx"}}),b.isMDXComponent=!0}}]);
//# sourceMappingURL=component---src-pages-docs-connecting-to-databases-presto-mdx-f2d36afa7be8db7c8222.js.map