{"version":3,"sources":["webpack:///./src/pages/docs/introduction.mdx"],"names":["_frontmatter","MDXLayout","DefaultLayout","MDXContent","components","props","mdxType","isMDXComponent"],"mappings":"0PAMaA,G,UAAe,S,iNAE5B,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,2BADR,4BAGA,iVAIA,4EACA,sBAEE,iBAAQ,CACN,WAAc,MADhB,oDAKA,iBAAQ,CACN,WAAc,MADhB,+DAKA,iBAAQ,CACN,WAAc,MADhB,+BAKA,iBAAQ,CACN,WAAc,MADhB,gKAMA,iBAAQ,CACN,WAAc,MADhB,6IAMA,iBAAQ,CACN,WAAc,MADhB,sOAOA,iBAAQ,CACN,WAAc,MADhB,+DAKA,iBAAQ,CACN,WAAc,MADhB,mCAKF,iVAIA,gHACA,sBAEE,iBAAQ,CACN,WAAc,MADhB,yCAKA,iBAAQ,CACN,WAAc,MADhB,6DAKA,iBAAQ,CACN,WAAc,MADhB,8CAKA,iBAAQ,CACN,WAAc,MADhB,gDAKA,iBAAQ,CACN,WAAc,MADhB,2CAKF,6LAEA,qOAGA,oGAEE,gBAAO,CACL,KAAQ,wEACR,WAAc,KAFhB,0BAFF,W,+MAWJH,EAAWI,gBAAiB","file":"component---src-pages-docs-introduction-mdx-be7ce9008c1a53d2f3f8.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\": \"what-is-apache-superset\"\n    }}>{`What is Apache Superset?`}</h2>\n    <p>{`Apache Superset (Incubating) is a modern, enterprise-ready business intelligence web application. It\nis fast, lightweight, intuitive, and loaded with options that make it easy for users of all skill\nsets to explore and visualize their data, from simple pie charts to highly detailed deck.gl\ngeospatial charts.`}</p>\n    <p>{`Here's an overview of the key features of Superset:`}</p>\n    <ul>\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`A rich set of data visualizations out of the box`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`An easy-to-use interface for exploring and visualizing data`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`Create and share dashboards`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`Enterprise-ready authentication with integration with major authentication providers (database,\nOpenID, LDAP, OAuth & REMOTE_USER through Flask AppBuilder)`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`An extensible, high-granularity security/permission model allowing intricate rules on who can\naccess individual features and the dataset`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`A simple semantic layer, allowing users to control how data sources are displayed in the UI by\ndefining which fields should show up in which drop-down and which aggregation and function metrics\nare made available to the user`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`Integration with most SQL-speaking RDBMS through SQLAlchemy`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`Deep integration with Druid.io`}</li>\n\n    </ul>\n    <p>{`Superset is cloud-native and designed to be highly available. It was designed to scale out to large,\ndistributed environments and works very well inside containers. While you can easily test drive\nSuperset on a modest setup or simply on your laptop, there’s virtually no limit around scaling out\nthe platform.`}</p>\n    <p>{`Superset is also cloud-native in the sense that it is flexible and lets you choose the:`}</p>\n    <ul>\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`web server (Gunicorn, Nginx, Apache),`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`metadata database engine (MySQL, Postgres, MariaDB, etc),`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`message queue (Redis, RabbitMQ, SQS, etc),`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`results backend (S3, Redis, Memcached, etc),`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`caching layer (Memcached, Redis, etc),`}</li>\n\n    </ul>\n    <p>{`Superset also works well with services like NewRelic, StatsD and DataDog, and has the ability to run\nanalytic workloads against most popular database technologies.`}</p>\n    <p>{`Superset is currently run at scale at many companies. For example, Superset is run in Airbnb’s\nproduction environment inside Kubernetes and serves 600+ daily active users viewing over 100K charts\na day.`}</p>\n    <p>{`You can find a partial list of industries and companies embracing Superset\n`}\n      <a {...{\n        \"href\": \"https://github.com/apache/incubator-superset/blob/master/INTHEWILD.md\",\n        \"parentName\": \"p\"\n      }}>{`on this page in GitHub`}</a>\n      {`.`}</p>\n\n  </MDXLayout>;\n}\n;\nMDXContent.isMDXComponent = true;\n      "],"sourceRoot":""}