{"version":3,"sources":["webpack:///./src/pages/docs/Connecting to Databases/vertica.mdx"],"names":["_frontmatter","layoutProps","MDXLayout","DefaultLayout","MDXContent","components","props","mdxType","parentName","isMDXComponent"],"mappings":"wPAQaA,G,UAAe,S,oOAC5B,IAAMC,EAAc,CAClBD,gBAEIE,EAAYC,IACH,SAASC,EAAT,GAGZ,IAFDC,EAEC,EAFDA,WACGC,EACF,8BACD,OAAO,YAACJ,EAAD,eAAeD,EAAiBK,EAAhC,CAAuCD,WAAYA,EAAYE,QAAQ,cAG5E,iBAAQ,CACN,GAAM,WADR,WAGA,8DACF,6BAAGC,WAAW,KAAQ,CAChB,KAAQ,wDADd,6BADE,UAIF,6BAAGA,WAAW,KAAQ,CAChB,KAAQ,4BADd,WAJE,+BAOA,sBACE,kBAAIA,WAAW,MAAK,sBAAQA,WAAW,MAAnB,cAApB,aACA,kBAAIA,WAAW,MAAK,sBAAQA,WAAW,MAAnB,aAApB,eACA,kBAAIA,WAAW,MAAK,sBAAQA,WAAW,MAAnB,kBAClB,kBAAIA,WAAW,MACb,kBAAIA,WAAW,MAAf,0CACA,kBAAIA,WAAW,MAAf,yCACA,kBAAIA,WAAW,MAAf,wCAGJ,kBAAIA,WAAW,MAAK,sBAAQA,WAAW,MAAnB,kBAApB,kBACA,kBAAIA,WAAW,MAAK,sBAAQA,WAAW,MAAnB,SAApB,kBAEF,uEACA,uBAAK,gCAAMA,WAAW,OAAU,IAA3B,uEAEL,0CACA,sBACE,kBAAIA,WAAW,MAAf,sC,kOAMNJ,EAAWK,gBAAiB","file":"component---src-pages-docs-connecting-to-databases-vertica-mdx-7c2c967b2d821ee66c0b.js","sourcesContent":["import * as React from 'react'\n  /* @jsx mdx */\nimport { mdx } from '@mdx-js/react';\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\n\nimport DefaultLayout from \"/Users/srinify/Documents/superset/docs/node_modules/gatsby-theme-docz/src/base/Layout.js\";\nexport const _frontmatter = {};\nconst layoutProps = {\n  _frontmatter\n};\nconst MDXLayout = DefaultLayout;\nexport default function MDXContent({\n  components,\n  ...props\n}) {\n  return <MDXLayout {...layoutProps} {...props} components={components} mdxType=\"MDXLayout\">\n\n\n    <h2 {...{\n      \"id\": \"vertica\"\n    }}>{`Vertica`}</h2>\n    <p>{`The recommended connector library is\n`}<a parentName=\"p\" {...{\n        \"href\": \"https://pypi.org/project/sqlalchemy-vertica-python/\"\n      }}>{`sqlalchemy-vertica-python`}</a>{`. The\n`}<a parentName=\"p\" {...{\n        \"href\": \"http://www.vertica.com/\"\n      }}>{`Vertica`}</a>{` connection parameters are:`}</p>\n    <ul>\n      <li parentName=\"ul\"><strong parentName=\"li\">{`User Name:`}</strong>{` UserName`}</li>\n      <li parentName=\"ul\"><strong parentName=\"li\">{`Password:`}</strong>{` DBPassword`}</li>\n      <li parentName=\"ul\"><strong parentName=\"li\">{`Database Host:`}</strong>\n        <ul parentName=\"li\">\n          <li parentName=\"ul\">{`For Localhost : localhost or 127.0.0.1`}</li>\n          <li parentName=\"ul\">{`For On Prem : IP address or Host name`}</li>\n          <li parentName=\"ul\">{`For Cloud: IP Address or Host Name`}</li>\n        </ul>\n      </li>\n      <li parentName=\"ul\"><strong parentName=\"li\">{`Database Name:`}</strong>{` Database Name`}</li>\n      <li parentName=\"ul\"><strong parentName=\"li\">{`Port:`}</strong>{` default 5433`}</li>\n    </ul>\n    <p>{`The connection string is formatted as follows:`}</p>\n    <pre><code parentName=\"pre\" {...{}}>{`vertica+vertica_python://{username}:{password}@{host}/{database}\n`}</code></pre>\n    <p>{`Other parameters:`}</p>\n    <ul>\n      <li parentName=\"ul\">{`Load Balancer - Backup Host`}</li>\n    </ul>\n\n    </MDXLayout>;\n}\n;\nMDXContent.isMDXComponent = true;\n      "],"sourceRoot":""}