(window.webpackJsonp=window.webpackJsonp||[]).push([[31],{HJnw:function(e,t,a){"use strict";a.r(t),a.d(t,"_frontmatter",(function(){return b})),a.d(t,"default",(function(){return i}));var o=a("k1TG"),n=a("8o2o"),r=(a("q1tI"),a("7ljp")),s=a("hhGP"),b=(a("qKvR"),{});void 0!==b&&b&&b===Object(b)&&Object.isExtensible(b)&&!b.hasOwnProperty("__filemeta")&&Object.defineProperty(b,"__filemeta",{configurable:!0,value:{name:"_frontmatter",filename:"src/pages/docs/Connecting to Databases/hologres.mdx"}});var c={_frontmatter:b},l=s.a;function i(e){var t=e.components,a=Object(n.a)(e,["components"]);return Object(r.b)(l,Object(o.a)({},c,a,{components:t,mdxType:"MDXLayout"}),Object(r.b)("h2",{id:"hologres"},"Hologres"),Object(r.b)("p",null,"Hologres is a real-time interactive analytics service developed by Alibaba Cloud. It is fully compatible with PostgreSQL 11 and integrates seamlessly with the big data ecosystem."),Object(r.b)("p",null,"Hologres sample connection parameters:"),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("strong",{parentName:"li"},"User Name"),": The AccessKey ID of your Alibaba Cloud account."),Object(r.b)("li",{parentName:"ul"},Object(r.b)("strong",{parentName:"li"},"Password"),": The AccessKey secret of your Alibaba Cloud account."),Object(r.b)("li",{parentName:"ul"},Object(r.b)("strong",{parentName:"li"},"Database Host"),": The public endpoint of the Hologres instance."),Object(r.b)("li",{parentName:"ul"},Object(r.b)("strong",{parentName:"li"},"Database Name"),": The name of the Hologres database."),Object(r.b)("li",{parentName:"ul"},Object(r.b)("strong",{parentName:"li"},"Port"),": The port number of the Hologres instance.")),Object(r.b)("p",null,"The connection string looks like:"),Object(r.b)("pre",null,Object(r.b)("code",Object(o.a)({parentName:"pre"},{}),"postgresql+psycopg2://{username}:{password}@{host}:{port}/{database}\n")))}void 0!==i&&i&&i===Object(i)&&Object.isExtensible(i)&&!i.hasOwnProperty("__filemeta")&&Object.defineProperty(i,"__filemeta",{configurable:!0,value:{name:"MDXContent",filename:"src/pages/docs/Connecting to Databases/hologres.mdx"}}),i.isMDXComponent=!0}}]);
//# sourceMappingURL=component---src-pages-docs-connecting-to-databases-hologres-mdx-4294273728bf164ccc29.js.map