(window.webpackJsonp=window.webpackJsonp||[]).push([[37],{o6HX:function(e,t,n){"use strict";n.r(t),n.d(t,"_frontmatter",(function(){return b})),n.d(t,"default",(function(){return p}));var a=n("k1TG"),r=n("8o2o"),o=(n("q1tI"),n("7ljp")),c=n("hhGP"),b=(n("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/netezza.mdx"}});var s={_frontmatter:b},i=c.a;function p(e){var t=e.components,n=Object(r.a)(e,["components"]);return Object(o.b)(i,Object(a.a)({},s,n,{components:t,mdxType:"MDXLayout"}),Object(o.b)("h2",{id:"ibm-netezza-performance-server"},"IBM Netezza Performance Server"),Object(o.b)("p",null,"The ",Object(o.b)("a",Object(a.a)({parentName:"p"},{href:"https://pypi.org/project/nzalchemy/"}),"nzalchemy")," library provides a\nPython / SQLAlchemy interface to IBM Netezza Performance Server (aka Netezza)."),Object(o.b)("p",null,"Here's the recommended connection string:"),Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{}),"netezza+nzpy://{username}:{password}@{hostname}:{port}/{database}\n")))}void 0!==p&&p&&p===Object(p)&&Object.isExtensible(p)&&!p.hasOwnProperty("__filemeta")&&Object.defineProperty(p,"__filemeta",{configurable:!0,value:{name:"MDXContent",filename:"src/pages/docs/Connecting to Databases/netezza.mdx"}}),p.isMDXComponent=!0}}]);
//# sourceMappingURL=component---src-pages-docs-connecting-to-databases-netezza-mdx-9d1dd1185938fa19ce25.js.map