{"version":3,"sources":["webpack:///./src/pages/docs/Connecting to Databases/redshift.mdx"],"names":["_frontmatter","layoutProps","MDXLayout","DefaultLayout","MDXContent","components","props","mdxType","isMDXComponent"],"mappings":"wPAMaA,G,UAAe,S,qOAE5B,IAKMC,EAAc,CAClBD,gBAEIE,EAAYC,IACH,SAASC,EAAT,GAGZ,IAFDC,EAEC,EAFDA,WACGC,EACF,8BACD,OAAO,YAACJ,EAAD,eAAeD,EAAiBK,EAAhC,CAAuCD,WAAYA,EAAYE,QAAQ,cAC5E,iBAAQ,CACN,GAAM,gBADR,gBAGA,4BACE,gBAAO,CACL,KAAQ,gDACR,WAAc,KAFhB,uBADF,+EAOA,mGACA,sBAEE,iBAAQ,CACN,WAAc,MACb,qBAAY,CACX,WAAc,MADf,aAFH,cAQA,iBAAQ,CACN,WAAc,MACb,qBAAY,CACX,WAAc,MADf,YAFH,gBAQA,iBAAQ,CACN,WAAc,MACb,qBAAY,CACX,WAAc,MADf,iBAFH,kBAQA,iBAAQ,CACN,WAAc,MACb,qBAAY,CACX,WAAc,MADf,iBAFH,mBAQA,iBAAQ,CACN,WAAc,MACb,qBAAY,CACX,WAAc,MADf,QAFH,mBAQF,sEACA,uBAAK,mBAAU,CACX,WAAc,OADb,6F,mOAQTH,EAAWI,gBAAiB","file":"component---src-pages-docs-connecting-to-databases-redshift-mdx-ef54d405787406f01974.js","sourcesContent":["import * as React from 'react'\n  /* @jsx mdx */\nimport { mdx } from '@mdx-js/react';\n/* @jsx mdx */\n\nimport DefaultLayout from \"/Users/max/code/superset/docs/node_modules/gatsby-theme-docz/src/base/Layout.js\";\nexport const _frontmatter = {};\n\nconst makeShortcode = name => function MDXDefaultShortcode(props) {\n  console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n  return <div {...props} />;\n};\n\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    <h2 {...{\n      \"id\": \"aws-redshift\"\n    }}>{`AWS Redshift`}</h2>\n    <p>{`The `}\n      <a {...{\n        \"href\": \"https://pypi.org/project/sqlalchemy-redshift/\",\n        \"parentName\": \"p\"\n      }}>{`sqlalchemy-redshift`}</a>\n      {` library is the recommended\nway to connect to Redshift through SQLAlchemy.`}</p>\n    <p>{`You'll need to the following setting values to form the connection string:`}</p>\n    <ul>\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}><strong {...{\n          \"parentName\": \"li\"\n        }}>{`User Name`}</strong>\n        {`: userName`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}><strong {...{\n          \"parentName\": \"li\"\n        }}>{`Password`}</strong>\n        {`: DBPassword`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}><strong {...{\n          \"parentName\": \"li\"\n        }}>{`Database Host`}</strong>\n        {`: AWS Endpoint`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}><strong {...{\n          \"parentName\": \"li\"\n        }}>{`Database Name`}</strong>\n        {`: Database Name`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}><strong {...{\n          \"parentName\": \"li\"\n        }}>{`Port`}</strong>\n        {`: default 5439`}</li>\n\n    </ul>\n    <p>{`Here's what the connection string looks like:`}</p>\n    <pre><code {...{\n        \"parentName\": \"pre\"\n      }}>{`redshift+psycopg2://<userName>:<DBPassword>@<AWS End Point>:5439/<Database Name>\n`}</code></pre>\n\n  </MDXLayout>;\n}\n;\nMDXContent.isMDXComponent = true;\n      "],"sourceRoot":""}