{"version":3,"sources":["webpack:///./src/pages/docs/Connecting to Databases/athena.mdx"],"names":["_frontmatter","layoutProps","MDXLayout","DefaultLayout","MDXContent","components","props","mdxType","isMDXComponent"],"mappings":"wPAMaA,G,UAAe,S,mOAE5B,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,cADR,cAGA,iBAAQ,CACN,GAAM,gBADR,gBAGA,qBAAG,gBAAO,CACN,KAAQ,yCACR,WAAc,KAFf,gBAAH,kDAME,gBAAO,CACL,KAAQ,sEACR,WAAc,KAFhB,8BANF,KAWA,+EACA,uBAAK,mBAAU,CACX,WAAc,OADb,wJAIL,6GACA,uBAAK,mBAAU,CACX,WAAc,OADb,6BAIL,iBAAQ,CACN,GAAM,YADR,YAGA,yCACE,gBAAO,CACL,KAAQ,qCACR,WAAc,KAFhB,oBADF,8DAOA,uBAAK,mBAAU,CACX,WAAc,OADb,8G,iOAQTH,EAAWI,gBAAiB","file":"component---src-pages-docs-connecting-to-databases-athena-mdx-ac89c0907070c21168bb.js","sourcesContent":["import * as React from 'react'\n  /* @jsx mdx */\nimport { mdx } from '@mdx-js/react';\n/* @jsx mdx */\n\nimport DefaultLayout from \"/Users/srinify/Documents/incubator-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-athena\"\n    }}>{`AWS Athena`}</h2>\n    <h3 {...{\n      \"id\": \"pyathenajdbc\"\n    }}>{`PyAthenaJDBC`}</h3>\n    <p><a {...{\n        \"href\": \"https://pypi.org/project/PyAthenaJDBC/\",\n        \"parentName\": \"p\"\n      }}>{`PyAthenaJDBC`}</a>\n      {` is a Python DB 2.0 compliant wrapper for the\n`}\n      <a {...{\n        \"href\": \"https://docs.aws.amazon.com/athena/latest/ug/connect-with-jdbc.html\",\n        \"parentName\": \"p\"\n      }}>{`Amnazon Athena JDBC driver`}</a>\n      {`.`}</p>\n    <p>{`The connection string for Amazon Athena is as follows:`}</p>\n    <pre><code {...{\n        \"parentName\": \"pre\"\n      }}>{`awsathena+jdbc://{aws_access_key_id}:{aws_secret_access_key}@athena.{region_name}.amazonaws.com/{schema_name}?s3_staging_dir={s3_staging_dir}&...\n`}</code></pre>\n    <p>{`Note that you'll need to escape & encode when forming the connection string like so:`}</p>\n    <pre><code {...{\n        \"parentName\": \"pre\"\n      }}>{`s3://... -> s3%3A//...\n`}</code></pre>\n    <h3 {...{\n      \"id\": \"pyathena\"\n    }}>{`PyAthena`}</h3>\n    <p>{`You can also use `}\n      <a {...{\n        \"href\": \"https://pypi.org/project/PyAthena/\",\n        \"parentName\": \"p\"\n      }}>{`PyAthena library`}</a>\n      {` (no Java required) with the\nfollowing connection string:`}</p>\n    <pre><code {...{\n        \"parentName\": \"pre\"\n      }}>{`awsathena+rest://{aws_access_key_id}:{aws_secret_access_key}@athena.{region_name}.amazonaws.com/{\n`}</code></pre>\n\n  </MDXLayout>;\n}\n;\nMDXContent.isMDXComponent = true;\n      "],"sourceRoot":""}