(window.webpackJsonp=window.webpackJsonp||[]).push([[59],{"8GLJ":function(e,t,a){"use strict";a.r(t),a.d(t,"_frontmatter",(function(){return o})),a.d(t,"default",(function(){return u}));var i=a("k1TG"),n=a("8o2o"),s=(a("q1tI"),a("7ljp")),r=a("hhGP"),o=(a("qKvR"),{});void 0!==o&&o&&o===Object(o)&&Object.isExtensible(o)&&!o.hasOwnProperty("__filemeta")&&Object.defineProperty(o,"__filemeta",{configurable:!0,value:{name:"_frontmatter",filename:"src/pages/docs/introduction.mdx"}});var l={_frontmatter:o},c=r.a;function u(e){var t=e.components,a=Object(n.a)(e,["components"]);return Object(s.b)(c,Object(i.a)({},l,a,{components:t,mdxType:"MDXLayout"}),Object(s.b)("h2",{id:"what-is-apache-superset"},"What is Apache Superset?"),Object(s.b)("p",null,"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."),Object(s.b)("p",null,"Here are a ",Object(s.b)("strong",{parentName:"p"},"few different ways you can get started with Superset"),":"),Object(s.b)("ul",null,Object(s.b)("li",{parentName:"ul"},"Download the ",Object(s.b)("a",Object(i.a)({parentName:"li"},{href:"https://dist.apache.org/repos/dist/release/superset/1.0.0/"}),"source from Apache Foundation's website")),Object(s.b)("li",{parentName:"ul"},"Download the latest Superset version from ",Object(s.b)("a",Object(i.a)({parentName:"li"},{href:"https://pypi.org/project/apache-superset/"}),"Pypi here")),Object(s.b)("li",{parentName:"ul"},"Setup Superset locally with one command\nusing ",Object(s.b)("a",Object(i.a)({parentName:"li"},{href:"docs/installation/installing-superset-using-docker-compose"}),"Docker Compose")),Object(s.b)("li",{parentName:"ul"},"Download the ",Object(s.b)("a",Object(i.a)({parentName:"li"},{href:"https://hub.docker.com/r/apache/superset"}),"Docker image")," from Dockerhub"),Object(s.b)("li",{parentName:"ul"},"Install bleeding-edge master version of Superset\n",Object(s.b)("a",Object(i.a)({parentName:"li"},{href:"https://github.com/apache/superset/tree/master/superset"}),"from Github"))),Object(s.b)("p",null,"Superset provides:"),Object(s.b)("ul",null,Object(s.b)("li",{parentName:"ul"},"An intuitive interface for visualizing datasets and crafting interactive dashboards"),Object(s.b)("li",{parentName:"ul"},"A wide array of beautiful visualizations to showcase your data"),Object(s.b)("li",{parentName:"ul"},"Code-free visualization builder to extract and present datasets"),Object(s.b)("li",{parentName:"ul"},"A world-class SQL IDE for preparing data for visualization, including a rich metadata browser"),Object(s.b)("li",{parentName:"ul"},"A lightweight semantic layer which empowers data analysts to quickly define custom dimensions and metrics"),Object(s.b)("li",{parentName:"ul"},"Out-of-the-box support for most SQL-speaking databases"),Object(s.b)("li",{parentName:"ul"},"Seamless, in-memory asynchronous caching and queries"),Object(s.b)("li",{parentName:"ul"},"An extensible security model that allows configuration of very intricate rules on on who can access which product features and datasets."),Object(s.b)("li",{parentName:"ul"},"Integration with major authentication backends (database, OpenID, LDAP, OAuth, REMOTE_USER, etc)"),Object(s.b)("li",{parentName:"ul"},"The ability to add custom visualization plugins"),Object(s.b)("li",{parentName:"ul"},"An API for programmatic customization"),Object(s.b)("li",{parentName:"ul"},"A cloud-native archiecture designed from the ground up for scale")),Object(s.b)("p",null,"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."),Object(s.b)("p",null,"Superset is also cloud-native in the sense that it is flexible and lets you choose the:"),Object(s.b)("ul",null,Object(s.b)("li",{parentName:"ul"},"web server (Gunicorn, Nginx, Apache),"),Object(s.b)("li",{parentName:"ul"},"metadata database engine (MySQL, Postgres, MariaDB, etc),"),Object(s.b)("li",{parentName:"ul"},"message queue (Redis, RabbitMQ, SQS, etc),"),Object(s.b)("li",{parentName:"ul"},"results backend (S3, Redis, Memcached, etc),"),Object(s.b)("li",{parentName:"ul"},"caching layer (Memcached, Redis, etc),")),Object(s.b)("p",null,"Superset also works well with services like NewRelic, StatsD and DataDog, and has the ability to run\nanalytic workloads against most popular database technologies."),Object(s.b)("p",null,"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."),Object(s.b)("p",null,"You can find a partial list of industries and companies embracing Superset\n",Object(s.b)("a",Object(i.a)({parentName:"p"},{href:"https://github.com/apache/superset/blob/master/INTHEWILD.md"}),"on this page in GitHub"),"."))}void 0!==u&&u&&u===Object(u)&&Object.isExtensible(u)&&!u.hasOwnProperty("__filemeta")&&Object.defineProperty(u,"__filemeta",{configurable:!0,value:{name:"MDXContent",filename:"src/pages/docs/introduction.mdx"}}),u.isMDXComponent=!0}}]);
//# sourceMappingURL=component---src-pages-docs-introduction-mdx-0edf95e4843cdf6422c1.js.map