{"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-0c42cc45f3b3e7928ac2.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 \"/home/runner/work/superset/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":""}