(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{Oick:function(e,t,n){"use strict";n.r(t),n.d(t,"_frontmatter",(function(){return r})),n.d(t,"default",(function(){return b}));var c=n("wx14"),o=n("zLVn"),a=(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/clickhouse.mdx"}});var i={_frontmatter:r},l=s.a;function b(e){var t=e.components,n=Object(o.a)(e,["components"]);return Object(a.b)(l,Object(c.a)({},i,n,{components:t,mdxType:"MDXLayout"}),Object(a.b)("h2",{id:"clickhouse"},"Clickhouse"),Object(a.b)("p",null,"The recommended connector library for Clickhouse is\n",Object(a.b)("a",{href:"https://github.com/cloudflare/sqlalchemy-clickhouse",parentName:"p"},"sqlalchemy-clickhouse"),"."),Object(a.b)("p",null,"The expected connection string is formatted as follows:"),Object(a.b)("pre",null,Object(a.b)("code",{parentName:"pre"},"clickhouse://{username}:{password}@{hostname}:{port}/{database}\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/clickhouse.mdx"}}),b.isMDXComponent=!0}}]);
//# sourceMappingURL=component---src-pages-docs-connecting-to-databases-clickhouse-mdx-e3929290a4743e70d0bb.js.map