{"version":3,"sources":["webpack:///./src/pages/docs/introduction.mdx"],"names":["_frontmatter","layoutProps","MDXLayout","DefaultLayout","MDXContent","components","props","mdxType","parentName","isMDXComponent"],"mappings":"0PAQaA,G,UAAe,S,iNAC5B,IAAMC,EAAc,CAClBD,gBAEIE,EAAYC,IACH,SAASC,EAAT,GAGZ,IAFDC,EAEC,EAFDA,WACGC,EACF,8BACD,OAAO,YAACJ,EAAD,eAAeD,EAAiBK,EAAhC,CAAuCD,WAAYA,EAAYE,QAAQ,cAG5E,iBAAQ,CACN,GAAM,2BADR,4BAGA,oUAIA,mCAAkB,sBAAQC,WAAW,KAAnB,wDAAlB,KACA,sBACE,kBAAIA,WAAW,MAAf,gBAAqC,6BAAGA,WAAW,MAAS,CACxD,KAAQ,+DADyB,4CAGrC,kBAAIA,WAAW,MAAf,6CAAkE,6BAAGA,WAAW,MAAS,CACrF,KAAQ,8CADsD,cAGlE,kBAAIA,WAAW,MAAf,kDACE,6BAAGA,WAAW,MAAS,CACrB,KAAQ,0DADV,mBAGF,kBAAIA,WAAW,MAAf,gBAAqC,6BAAGA,WAAW,MAAS,CACxD,KAAQ,6CADyB,gBAArC,mBAGA,kBAAIA,WAAW,MAAf,2CACJ,6BAAGA,WAAW,MAAS,CACf,KAAQ,mDADhB,iBAIE,2CACA,sBACE,kBAAIA,WAAW,MAAf,uFACA,kBAAIA,WAAW,MAAf,kEACA,kBAAIA,WAAW,MAAf,mEACA,kBAAIA,WAAW,MAAf,iGACA,kBAAIA,WAAW,MAAf,6GACA,kBAAIA,WAAW,MAAf,0DACA,kBAAIA,WAAW,MAAf,wDACA,kBAAIA,WAAW,MAAf,4IACA,kBAAIA,WAAW,MAAf,oGACA,kBAAIA,WAAW,MAAf,mDACA,kBAAIA,WAAW,MAAf,yCACA,kBAAIA,WAAW,MAAf,sEAEF,iVAIA,gHACA,sBACE,kBAAIA,WAAW,MAAf,yCACA,kBAAIA,WAAW,MAAf,6DACA,kBAAIA,WAAW,MAAf,8CACA,kBAAIA,WAAW,MAAf,gDACA,kBAAIA,WAAW,MAAf,2CAEF,6LAEA,qOAGA,oGACF,6BAAGA,WAAW,KAAQ,CAChB,KAAQ,0EADd,0BADE,W,+MAQJJ,EAAWK,gBAAiB","file":"component---src-pages-docs-introduction-mdx-f5efcd91b297d1ead4c4.js","sourcesContent":["import * as React from 'react'\n  /* @jsx mdx */\nimport { mdx } from '@mdx-js/react';\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\n\nimport DefaultLayout from \"/home/runner/work/superset/superset/docs/node_modules/gatsby-theme-docz/src/base/Layout.js\";\nexport const _frontmatter = {};\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\n\n    <h2 {...{\n      \"id\": \"what-is-apache-superset\"\n    }}>{`What is Apache Superset?`}</h2>\n    <p>{`Apache Superset 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 are a `}<strong parentName=\"p\">{`few different ways you can get started with Superset`}</strong>{`:`}</p>\n    <ul>\n      <li parentName=\"ul\">{`Download the `}<a parentName=\"li\" {...{\n          \"href\": \"https://dist.apache.org/repos/dist/release/superset/1.0.0/\"\n        }}>{`source from Apache Foundation's website`}</a></li>\n      <li parentName=\"ul\">{`Download the latest Superset version from `}<a parentName=\"li\" {...{\n          \"href\": \"https://pypi.org/project/apache-superset/\"\n        }}>{`Pypi here`}</a></li>\n      <li parentName=\"ul\">{`Setup Superset locally with one command\nusing `}<a parentName=\"li\" {...{\n          \"href\": \"installation/installing-superset-using-docker-compose\"\n        }}>{`Docker Compose`}</a></li>\n      <li parentName=\"ul\">{`Download the `}<a parentName=\"li\" {...{\n          \"href\": \"https://hub.docker.com/r/apache/superset\"\n        }}>{`Docker image`}</a>{` from Dockerhub`}</li>\n      <li parentName=\"ul\">{`Install the latest version of Superset\n`}<a parentName=\"li\" {...{\n          \"href\": \"https://github.com/apache/superset/tree/latest\"\n        }}>{`from Github`}</a></li>\n    </ul>\n    <p>{`Superset provides:`}</p>\n    <ul>\n      <li parentName=\"ul\">{`An intuitive interface for visualizing datasets and crafting interactive dashboards`}</li>\n      <li parentName=\"ul\">{`A wide array of beautiful visualizations to showcase your data`}</li>\n      <li parentName=\"ul\">{`Code-free visualization builder to extract and present datasets`}</li>\n      <li parentName=\"ul\">{`A world-class SQL IDE for preparing data for visualization, including a rich metadata browser`}</li>\n      <li parentName=\"ul\">{`A lightweight semantic layer which empowers data analysts to quickly define custom dimensions and metrics`}</li>\n      <li parentName=\"ul\">{`Out-of-the-box support for most SQL-speaking databases`}</li>\n      <li parentName=\"ul\">{`Seamless, in-memory asynchronous caching and queries`}</li>\n      <li parentName=\"ul\">{`An extensible security model that allows configuration of very intricate rules on on who can access which product features and datasets.`}</li>\n      <li parentName=\"ul\">{`Integration with major authentication backends (database, OpenID, LDAP, OAuth, REMOTE_USER, etc)`}</li>\n      <li parentName=\"ul\">{`The ability to add custom visualization plugins`}</li>\n      <li parentName=\"ul\">{`An API for programmatic customization`}</li>\n      <li parentName=\"ul\">{`A cloud-native architecture designed from the ground up for scale`}</li>\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      <li parentName=\"ul\">{`web server (Gunicorn, Nginx, Apache),`}</li>\n      <li parentName=\"ul\">{`metadata database engine (MySQL, Postgres, MariaDB, etc),`}</li>\n      <li parentName=\"ul\">{`message queue (Redis, RabbitMQ, SQS, etc),`}</li>\n      <li parentName=\"ul\">{`results backend (S3, Redis, Memcached, etc),`}</li>\n      <li parentName=\"ul\">{`caching layer (Memcached, Redis, etc),`}</li>\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`}<a parentName=\"p\" {...{\n        \"href\": \"https://github.com/apache/superset/blob/master/RESOURCES/INTHEWILD.md\"\n      }}>{`on this page in GitHub`}</a>{`.`}</p>\n\n    </MDXLayout>;\n}\n;\nMDXContent.isMDXComponent = true;\n      "],"sourceRoot":""}