(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{Oick:function(e,t,o){"use strict";o.r(t),o.d(t,"_frontmatter",(function(){return r})),o.d(t,"default",(function(){return u}));var c=o("k1TG"),n=o("8o2o"),a=(o("q1tI"),o("7ljp")),l=o("hhGP"),r=(o("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 s={_frontmatter:r},i=l.a;function u(e){var t=e.components,o=Object(n.a)(e,["components"]);return Object(a.b)(i,Object(c.a)({},s,o,{components:t,mdxType:"MDXLayout"}),Object(a.b)("h2",{id:"clickhouse"},"Clickhouse"),Object(a.b)("p",null,"To use Clickhouse with Superset, you will need to add the following Python libraries:"),Object(a.b)("pre",null,Object(a.b)("code",Object(c.a)({parentName:"pre"},{}),"clickhouse-driver==0.2.0\nclickhouse-sqlalchemy==0.1.6\n")),Object(a.b)("p",null,"If running Superset using Docker Compose, add the following to your ",Object(a.b)("inlineCode",{parentName:"p"},"./docker/requirements-local.txt")," file:"),Object(a.b)("pre",null,Object(a.b)("code",Object(c.a)({parentName:"pre"},{}),"clickhouse-driver>=0.2.0\nclickhouse-sqlalchemy>=0.1.6\n")),Object(a.b)("p",null,"The recommended connector library for Clickhouse is\n",Object(a.b)("a",Object(c.a)({parentName:"p"},{href:"https://github.com/cloudflare/sqlalchemy-clickhouse"}),"sqlalchemy-clickhouse"),"."),Object(a.b)("p",null,"The expected connection string is formatted as follows:"),Object(a.b)("pre",null,Object(a.b)("code",Object(c.a)({parentName:"pre"},{}),"clickhouse+native://<user>:<password>@<host>:<port>/<database>[?options…]clickhouse://{username}:{password}@{hostname}:{port}/{database}\n")),Object(a.b)("p",null,"Here's a concrete example of a real connection string:"),Object(a.b)("pre",null,Object(a.b)("code",Object(c.a)({parentName:"pre"},{}),"clickhouse+native://demo:demo@github.demo.trial.altinity.cloud/default?secure=true\n")),Object(a.b)("p",null,"If you're using Clickhouse locally on your computer, you can get away with using a native protocol URL that\nuses the default user without a password (and doesn't encrypt the connection):"),Object(a.b)("pre",null,Object(a.b)("code",Object(c.a)({parentName:"pre"},{}),"clickhouse+native://localhost/default\n")))}void 0!==u&&u&&u===Object(u)&&Object.isExtensible(u)&&!u.hasOwnProperty("__filemeta")&&Object.defineProperty(u,"__filemeta",{configurable:!0,value:{name:"MDXContent",filename:"src/pages/docs/Connecting to Databases/clickhouse.mdx"}}),u.isMDXComponent=!0}}]);
//# sourceMappingURL=component---src-pages-docs-connecting-to-databases-clickhouse-mdx-0808e841101cd5c7a7aa.js.map