(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{sHxY:function(e,t,n){"use strict";n.r(t),n.d(t,"_frontmatter",(function(){return r})),n.d(t,"default",(function(){return m}));var a=n("k1TG"),o=n("8o2o"),c=(n("q1tI"),n("7ljp")),s=n("hhGP"),r=(n("qKvR"),{});void 0!==r&&r&&r===Object(r)&&Object.isExtensible(r)&&!r.hasOwnProperty("__filemeta")&&Object.defineProperty(r,"__filemeta",{configurable:!0,value:{name:"_frontmatter",filename:"src/pages/docs/Connecting to Databases/ascend.mdx"}});var i={_frontmatter:r},b=s.a;function m(e){var t=e.components,n=Object(o.a)(e,["components"]);return Object(c.b)(b,Object(a.a)({},i,n,{components:t,mdxType:"MDXLayout"}),Object(c.b)("h2",{id:"ascendio"},"Ascend.io"),Object(c.b)("p",null,"The recommended connector library to Ascend.io is ",Object(c.b)("a",Object(a.a)({parentName:"p"},{href:"https://github.com/cloudera/impyla"}),"impyla"),"."),Object(c.b)("p",null,"The expected connection string is formatted as follows:"),Object(c.b)("pre",null,Object(c.b)("code",Object(a.a)({parentName:"pre"},{}),"ascend://{username}:{password}@{hostname}:{port}/{database}?auth_mechanism=PLAIN;use_ssl=true\n")))}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/ascend.mdx"}}),m.isMDXComponent=!0}}]);
//# sourceMappingURL=component---src-pages-docs-connecting-to-databases-ascend-mdx-44bd018ecc9d19f0ab88.js.map