(window.webpackJsonp=window.webpackJsonp||[]).push([[20],{cv4b:function(e,t,o){"use strict";o.r(t),o.d(t,"_frontmatter",(function(){return c})),o.d(t,"default",(function(){return m}));var r=o("k1TG"),n=o("8o2o"),a=(o("q1tI"),o("7ljp")),i=o("hhGP"),c=(o("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/dremio.mdx"}});var s={_frontmatter:c},b=i.a;function m(e){var t=e.components,o=Object(n.a)(e,["components"]);return Object(a.b)(b,Object(r.a)({},s,o,{components:t,mdxType:"MDXLayout"}),Object(a.b)("h2",{id:"dremio"},"Dremio"),Object(a.b)("p",null,"The recommended connector library for Dremio is\n",Object(a.b)("a",Object(r.a)({parentName:"p"},{href:"https://pypi.org/project/sqlalchemy-dremio/"}),"sqlalchemy_dremio"),"."),Object(a.b)("p",null,"The expected connection string for ODBC (Default port is 31010) is formatted as follows:"),Object(a.b)("pre",null,Object(a.b)("code",Object(r.a)({parentName:"pre"},{}),"dremio://{username}:{password}@{host}:{port}/{database_name}/dremio?SSL=1\n")),Object(a.b)("p",null,"The expected connection string for Arrow Flight (Dremio 4.9.1+. Default port is 32010) is formatted as follows:"),Object(a.b)("pre",null,Object(a.b)("code",Object(r.a)({parentName:"pre"},{}),"dremio+flight://{username}:{password}@{host}:{port}/dremio\n")),Object(a.b)("p",null,"This ",Object(a.b)("a",Object(r.a)({parentName:"p"},{href:"https://www.dremio.com/tutorials/dremio-apache-superset/"}),"blog post by Dremio")," has some\nadditional helpful instructions on connecting Superset to Dremio."))}void 0!==m&&m&&m===Object(m)&&Object.isExtensible(m)&&!m.hasOwnProperty("__filemeta")&&Object.defineProperty(m,"__filemeta",{configurable:!0,value:{name:"MDXContent",filename:"src/pages/docs/Connecting to Databases/dremio.mdx"}}),m.isMDXComponent=!0}}]);
//# sourceMappingURL=component---src-pages-docs-connecting-to-databases-dremio-mdx-d6bd9a0655801340af36.js.map