{"version":3,"sources":["webpack:///./src/pages/docs/Connecting to Databases/google-bigquery.mdx"],"names":["_frontmatter","layoutProps","MDXLayout","DefaultLayout","MDXContent","components","props","mdxType","isMDXComponent"],"mappings":"0PAMaA,G,UAAe,S,4OAE5B,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,mBADR,mBAGA,2EAEE,gBAAO,CACL,KAAQ,wCACR,WAAc,KAFhB,cAFF,KAOA,uEACA,uBAAK,mBAAU,CACX,WAAc,OADb,8BAIL,0JAEA,sBAEE,iBAAQ,CACN,WAAc,MAGd,gBAAO,CACL,WAAc,MADhB,wMAQF,iBAAQ,CACN,WAAc,MAGd,gBAAO,CACL,WAAc,MADhB,sCAGE,qBAAY,CACV,WAAc,KADhB,gBAHF,2EAYJ,uBAAK,mBAAU,CACX,WAAc,OADb,wEAML,uEACA,uBAAK,mBAAU,CACX,WAAc,OADb,6XAiBL,sFACA,sHAEE,gBAAO,CACL,KAAQ,uCACR,WAAc,KAFhB,cAFF,mB,0OAWJH,EAAWI,gBAAiB","file":"component---src-pages-docs-connecting-to-databases-google-bigquery-mdx-c63ebb556579ce441470.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\": \"google-bigquery\"\n    }}>{`Google BigQuery`}</h2>\n    <p>{`The recommended connector library for BigQuery is\n`}\n      <a {...{\n        \"href\": \"https://github.com/mxmzdlv/pybigquery\",\n        \"parentName\": \"p\"\n      }}>{`pybigquery`}</a>\n      {`.`}</p>\n    <p>{`The connection string for BigQuery looks like:`}</p>\n    <pre><code {...{\n        \"parentName\": \"pre\"\n      }}>{`bigquery://{project_id}\n`}</code></pre>\n    <p>{`When adding a new BigQuery connection in Superset, you'll also need to add the GCP Service Account\ncredentials file (as a JSON).`}</p>\n    <ol>\n\n      <li {...{\n        \"parentName\": \"ol\"\n      }}>\n\n        <p {...{\n          \"parentName\": \"li\"\n        }}>{`Create your Service Account via the Google Cloud Platform control panel, provide it access to the\nappropriate BigQuery datasets, and download the JSON configuration file for the service account.`}</p>\n\n      </li>\n\n\n      <li {...{\n        \"parentName\": \"ol\"\n      }}>\n\n        <p {...{\n          \"parentName\": \"li\"\n        }}>{`n Superset, Add a JSON blob to the `}\n          <strong {...{\n            \"parentName\": \"p\"\n          }}>{`Secure Extra`}</strong>\n          {` field in the database configuration form with\nthe following format:`}</p>\n\n      </li>\n\n    </ol>\n    <pre><code {...{\n        \"parentName\": \"pre\"\n      }}>{`{\n    \"credentials_info\": <contents of credentials JSON file>\n}\n`}</code></pre>\n    <p>{`The resulting file should have this structure:`}</p>\n    <pre><code {...{\n        \"parentName\": \"pre\"\n      }}>{`{\n    \"credentials_info\": {\n        \"type\": \"service_account\",\n        \"project_id\": \"...\",\n        \"private_key_id\": \"...\",\n        \"private_key\": \"...\",\n        \"client_email\": \"...\",\n        \"client_id\": \"...\",\n        \"auth_uri\": \"...\",\n        \"token_uri\": \"...\",\n        \"auth_provider_x509_cert_url\": \"...\",\n        \"client_x509_cert_url\": \"...\",\n    }\n}\n`}</code></pre>\n    <p>{`You should then be able to connect to your BigQuery datasets.`}</p>\n    <p>{`To be able to upload CSV or Excel files to BigQuery in Superset, you'll need to also add the\n`}\n      <a {...{\n        \"href\": \"https://github.com/pydata/pandas-gbq\",\n        \"parentName\": \"p\"\n      }}>{`pandas_gbq`}</a>\n      {` library.`}</p>\n\n  </MDXLayout>;\n}\n;\nMDXContent.isMDXComponent = true;\n      "],"sourceRoot":""}