{"version":3,"sources":["webpack:///./src/pages/docs/Connecting to Databases/drill.mdx"],"names":["_frontmatter","MDXLayout","DefaultLayout","MDXContent","components","props","mdxType","isMDXComponent"],"mappings":"wPAMaA,G,UAAe,S,kOAE5B,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,gBADR,gBAGA,iBAAQ,CACN,GAAM,cADR,cAGA,+GAEE,gBAAO,CACL,KAAQ,kDACR,WAAc,KAFhB,oBAFF,aAOA,2MAEA,+EACA,uBAAK,mBAAU,CACX,WAAc,OADb,wFAIL,8IAEA,uBAAK,mBAAU,CACX,WAAc,OADb,uDAIL,iBAAQ,CACN,GAAM,QADR,QAGA,yGAEE,gBAAO,CACL,KAAQ,uDACR,WAAc,KAFhB,iBAFF,KAOA,0DACA,uBAAK,mBAAU,CACX,WAAc,OADb,wDAIL,iBAAQ,CACN,GAAM,QADR,QAGA,kDAEE,gBAAO,CACL,KAAQ,gEACR,WAAc,KAFhB,8BAFF,kBAQE,gBAAO,CACL,KAAQ,kEACR,WAAc,KAFhB,iBARF,yD,gOAkBJH,EAAWI,gBAAiB","file":"component---src-pages-docs-connecting-to-databases-drill-mdx-2a1df1ece6ba88f35f18.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 MDXLayout = DefaultLayout;\nexport default function MDXContent({\n  components,\n  ...props\n}) {\n  return <MDXLayout {...props} components={components} mdxType=\"MDXLayout\">\n    <h2 {...{\n      \"id\": \"apache-drill\"\n    }}>{`Apache Drill`}</h2>\n    <h3 {...{\n      \"id\": \"sqlalchemy\"\n    }}>{`SQLAlchemy`}</h3>\n    <p>{`The recommended way to connect to Apache Drill is through SQLAlchemy. You can use the\n`}\n      <a {...{\n        \"href\": \"https://github.com/JohnOmernik/sqlalchemy-drill\",\n        \"parentName\": \"p\"\n      }}>{`sqlalchemy-drill`}</a>\n      {` package.`}</p>\n    <p>{`Once that is done, you can connect to Drill in two ways, either via the REST interface or by JDBC.\nIf you are connecting via JDBC, you must have the Drill JDBC Driver installed.`}</p>\n    <p>{`The basic connection string for Drill looks like this:`}</p>\n    <pre><code {...{\n        \"parentName\": \"pre\"\n      }}>{`drill+sadrill://<username>:<password>@<host>:<port>/<storage_plugin>?use_ssl=True\n`}</code></pre>\n    <p>{`To connect to Drill running on a local machine running in embedded mode you can use the following\nconnection string:`}</p>\n    <pre><code {...{\n        \"parentName\": \"pre\"\n      }}>{`drill+sadrill://localhost:8047/dfs?use_ssl=False\n`}</code></pre>\n    <h3 {...{\n      \"id\": \"jdbc\"\n    }}>{`JDBC`}</h3>\n    <p>{`Connecting to Drill through JDBC is more complicated and we recommend following\n`}\n      <a {...{\n        \"href\": \"https://drill.apache.org/docs/using-the-jdbc-driver/\",\n        \"parentName\": \"p\"\n      }}>{`this tutorial`}</a>\n      {`.`}</p>\n    <p>{`The connection string looks like:`}</p>\n    <pre><code {...{\n        \"parentName\": \"pre\"\n      }}>{`drill+jdbc://<username>:<passsword>@<host>:<port>\n`}</code></pre>\n    <h3 {...{\n      \"id\": \"odbc\"\n    }}>{`ODBC`}</h3>\n    <p>{`We recommend reading the\n`}\n      <a {...{\n        \"href\": \"https://drill.apache.org/docs/installing-the-driver-on-linux/\",\n        \"parentName\": \"p\"\n      }}>{`Apache Drill documentation`}</a>\n      {` and read\nthe `}\n      <a {...{\n        \"href\": \"https://github.com/JohnOmernik/sqlalchemy-drill#usage-with-odbc\",\n        \"parentName\": \"p\"\n      }}>{`Github README`}</a>\n      {` to learn how to\nwork with Drill through ODBC.`}</p>\n\n  </MDXLayout>;\n}\n;\nMDXContent.isMDXComponent = true;\n      "],"sourceRoot":""}