{"version":3,"sources":["webpack:///./src/pages/docs/Connecting to Databases/athena.mdx"],"names":["_frontmatter","MDXLayout","DefaultLayout","MDXContent","components","props","mdxType","isMDXComponent"],"mappings":"wPAMaA,G,UAAe,S,mOAE5B,IAKMC,EAAYC,IACH,SAASC,EAAT,GAGZ,IAFDC,EAEC,EAFDA,WACGC,EACF,8BACD,OAAO,YAACJ,EAAD,eAAeI,EAAf,CAAsBD,WAAYA,EAAYE,QAAQ,cAC3D,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-ceeb13ec055dd2515c1c.js","sourcesContent":["import * as React from 'react'\n  /* @jsx mdx */\nimport { mdx } from '@mdx-js/react';\n/* @jsx mdx */\n\nimport DefaultLayout from \"/Users/evan/GitHub/incubator-superset_preset/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 MDXLayout = DefaultLayout;\nexport default function MDXContent({\n  components,\n  ...props\n}) {\n  return <MDXLayout {...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":""}