"use strict";(self.webpackChunkdocs_v_2=self.webpackChunkdocs_v_2||[]).push([[3237],{91931:function(e,t,a){a.r(t),a.d(t,{default:function(){return q}});var r=a(67294),i=a(16475),l=a(88746),o=a(28501),n=a(71230),s=a(15746),c=a(61980),m=a(31666),p=a(12575),g=a(1832),d=a(13520),u=a(13179),h=a(22284),b=a(18930);const f=[576,768,992,1200].map((e=>`@media (max-width: ${e}px)`)),w=[{title:"Amazon Redshift",href:"https://aws.amazon.com/redshift/",imgName:"aws-redshift.png"},{title:"Apache Druid",href:"http://druid.io/",imgName:"druid.png"},{title:"Apache Kylin",href:"http://kylin.apache.org/",imgName:"apache-kylin.png"},{title:"BigQuery",href:"https://cloud.google.com/bigquery/",imgName:"googleBQ.png"},{title:"ClickHouse",href:"https://clickhouse.tech/",imgName:"clickhouse.png"},{title:"Dremio",href:"https://dremio.com/",imgName:"dremio.png"},{title:"Databricks",href:"https://www.databricks.com",imgName:"databricks.png"},{title:"Exasol",href:"https://www.exasol.com/en/",imgName:"exasol.png"},{title:"FireBirdSql",href:"https://firebirdsql.org/",imgName:"firebird.png"},{title:"Green Plum",href:"https://greenplum.org/",imgName:"greenplum.png"},{title:"IBM Db2",href:"https://www.ibm.com/analytics/db2",imgName:"ibmdb2.png"},{title:"MySQL",href:"https://www.mysql.com/",imgName:"mysql.png"},{title:"Microsoft SqlServer",href:"https://www.microsoft.com/en-us/sql-server",imgName:"msql.png"},{title:"MonetDB",href:"https://www.monetdb.org/",imgName:"monet.png"},{title:"Oracle",href:"https://www.oracle.com/database/",imgName:"oraclelogo.png"},{title:"PostgresSQL",href:"https://www.postgresql.org/",imgName:"postsql.png"},{title:"Presto",href:"https://prestodb.io/",imgName:"presto-og.png"},{title:"Snowflake",href:"https://www.snowflake.com/",imgName:"snowflake.png"},{title:"SQLite",href:"https://www.sqlite.org/index.html",imgName:"sqlite.png"},{title:"Trino",href:"https://trino.io/",imgName:"trino2.jpg"},{title:"Rockset",href:"https://rockset.com/",imgName:"rockset.png"},{title:"Vertica",href:"https://www.vertica.com/",imgName:"vertica.png"},{title:"Hologres",href:"https://www.alibabacloud.com/product/hologres",imgName:"hologres.png"},{title:"IBM Netezza Performance Server",href:"https://www.ibm.com/products/netezza",imgName:"netezza.png"},{title:"Teradata",href:"www.teradata.com",imgName:"teradata.png"},{title:"TimescaleDB",href:"www.timescale.com",imgName:"timescale.png"},{title:"YugabyteDB",href:"www.yugabyte.com",imgName:"yugabyte.png"}],{colors:x}=p.K6,E=(0,m.default)("main")`
  text-align: center;
  .alert-color {
    color: ${x.alert.base};
  }
  .error-color {
    color: ${x.error.base};
  }
  .warning-color {
    color: ${x.warning.base};
  }
  .info-color {
    color: ${x.info.base};
  }
  .success-color {
    color: ${x.success.base};
  }
  .secondary-color {
    color: ${x.secondary.base};
  }
  .info-text {
    font-size: 32px;
    font-weight: normal;
    max-width: 600px;
    margin: auto;
  }
  .info-text-smaller {
    font-size: 24px;
    max-width: 800px;
  }
`,v=(0,m.default)("div")`
  position: relative;
  padding-top: 60px;
  padding-bottom: 80px;
  padding-left: 20px;
  padding-right: 20px;
  background-image: url('img/data-point.jpg');
  background-size: cover;
  background-position-x: right;
  .github-section {
    margin-bottom: 40px;
    margin-top: 40px;
    .github-button {
      margin: 5px;
    }
  }
  .logo-horiz {
    margin-top: 20px;
    margin-bottom: 20px;
    width: 600px;
    max-width: 100%;
    ${[f[3]]} {
      width: 550px;
    }
    ${[f[2]]} {
      width: 450px;
    }
    ${[f[1]]} {
      width: 425px;
    }
    ${[f[0]]} {
      width: 400px;
    }
  }
  .alert {
    color: #0c5460;
    background-color: #d1ecf1;
    border-color: #bee5eb;
    max-width: 600px;
    margin: 0 auto;
    padding: 0.75rem 1.25rem;
    margin-top: 83px;
    border: 1px solid transparent;
    border-radius: 0.25rem;
  }
`,y=(0,m.default)("h2")`
  font-size: 55px;
  text-align: center;
`,N=(0,m.default)("div")`
  background: #fff;
  padding: 5vw 0;
  margin-top: 0px;
  margin-bottom: 10px;
  .featureList {
    padding: 40px;
    width: 100%;
    list-style-type: none;
    margin: 0 auto;
    max-width: 1000px;
    .feature {
      padding: 20px;
      text-align: center;
      margin-bottom: 20px;
      .imagePlaceHolder {
        svg {
          width: 70px;
          height: 70px;
        }
        margin-bottom: 15px;
      }
      .featureText {
        color: ${x.grayscale.dark2};
        font-size: 16px;
        strong {
          font-size: 22px;
        }
      }
    }
  }
  .heading {
    font-size: 22px;
    margin: 0 auto;
    text-align: center;
  }
`,k=(0,m.default)("div")`
  background: white;
  margin-bottom: 64px;
  .databaseSub {
    text-align: center;
    display: block;
    margin-bottom: 40px;
    font-size: 18px;
  }

  .database-list {
    margin-top: 100px;
    list-style-type: none;
    padding: 0px;
    max-width: 1000px;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    margin-bottom: 50px;
    li {
      padding: 15px;
    }
  }
`,z=(0,m.default)("div")`
  .toggleContainer {
    display: flex;
    flex-direction: column;
    margin-bottom: 100px;
    position: relative;
    .toggleBtns {
      display: flex;
      flex-direction: row;
      /* ${[f[0]]} {
        flex-direction: column;
      } */
      justify-content: center;
      .toggle {
        margin: 10px;
        color: #666;
        border: 1px solid #888;
        background-color: #20a7c911;
        border-radius: 3px;
        padding: 16px;
        transition: all 0.25s;
        overflow: visible;
        ${[f[0]]} {
          > span {
            display: none;
            position: absolute;
            bottom: 0px;
            left: 50%;
            width: 100%;
            transform: translate(-50%, 100%);
          }
          h2 {
            font-size: 14px;
            margin: 0;
          }
        }
        &:hover {
          cursor: pointer;
          color: ${x.primary.base};
          border: 1px solid ${x.primary.base};
        }
        &.active {
          background: red;
          background: #20a7c933;
          ${[f[0]]} {
            > span {
              display: block;
            }
          }
        }
      }
    }
    .imageContainer {
      img {
        margin: 0 auto;
        max-width: 800px;
        box-shadow: 0 0 3px #aaa;
        margin-top: 5px;
        margin-bottom: 5px;
      }
    }
  }
`,S=m.default.div`
  width: 100%;
  height: 60px;
  padding: 18px;
  background-color: #282E4A;
  text-align: center;
  color: #FFFFFF;
`,$=m.default.img`
  width: ${e=>e.width};
  height: ${e=>e.height};
`,Z=e=>{let{icon:t,title:a,descr:i}=e;return r.createElement("li",{className:"feature"},r.createElement("div",{className:"imagePlaceHolder"},t),r.createElement("div",{className:"featureText"},r.createElement("h3",null,a),i))};function q(){const e=(0,r.useRef)(null),[t,a]=(0,r.useState)(0);return r.createElement(i.Z,{title:"Welcome",description:"Community website for Apache Superset, a data visualization and data exploration platform"},r.createElement(E,null,r.createElement(v,null,r.createElement("img",{className:"logo-horiz",src:"img/superset-logo-horiz-apache.svg",alt:"logo-horiz"}),r.createElement("div",{className:"info-text"},"Apache Superset is a modern data exploration and visualization platform"),r.createElement("div",{className:"github-section"},r.createElement("span",{className:"github-button"},r.createElement(b.Z,{href:"https://github.com/apache/superset","data-size":"large","data-show-count":"true","aria-label":"Star apache/superset on GitHub"},"Star")),r.createElement("span",{className:"github-button"},r.createElement(b.Z,{href:"https://github.com/apache/superset/subscription","data-size":"large","data-show-count":"true","aria-label":"Watch apache/superset on GitHub"},"Watch")),r.createElement("span",{className:"github-button"},r.createElement(b.Z,{href:"https://github.com/apache/superset/fork","data-size":"large","data-show-count":"true","aria-label":"Fork apache/superset on GitHub"},"Fork"))),r.createElement("div",null,r.createElement(l.Z,{to:"/docs/intro"},r.createElement(o.Z,{type:"primary"},"Get Started")))),r.createElement(N,null,r.createElement(y,null,"Overview"),r.createElement("div",{className:"info-text info-text-smaller"},"Superset is fast, lightweight, intuitive, and loaded with options that make it easy for users of all skill sets to explore and visualize their data, from simple line charts to highly detailed geospatial charts."),r.createElement("ul",{className:"featureList ant-row"},r.createElement(n.Z,null,r.createElement(s.Z,{sm:24,md:12},r.createElement(Z,{icon:r.createElement(g.Z,{className:"warning-color"}),title:"Powerful yet easy to use",descr:"\n                    Quickly and easily integrate and explore your data, using\n                    either our simple no-code viz builder or state of the art SQL\n                    IDE.\n                  "})),r.createElement(s.Z,{sm:24,md:12},r.createElement(Z,{icon:r.createElement(d.Z,{className:"info-color"}),title:"Integrates with modern databases",descr:"\n                    Superset can connect to any SQL based datasource\n                    through SQLAlchemy, including modern cloud native databases\n                    and engines at petabyte scale.\n                  "}))),r.createElement(n.Z,null,r.createElement(s.Z,{sm:24,md:12},r.createElement(Z,{icon:r.createElement(u.Z,{className:"success-color"}),title:"Modern architecture",descr:"\n                    Superset is lightweight and highly scalable, leveraging the\n                    power of your existing data infrastructure without requiring\n                    yet another ingestion layer.\n                  "})),r.createElement(s.Z,{sm:24,md:12},r.createElement(Z,{icon:r.createElement(h.Z,{className:"alert-color"}),title:"Rich visualizations and dashboards",descr:"\n                    Superset ships with a wide array of beautiful visualizations.\n                    Our visualization plug-in architecture makes it easy to build\n                    custom visualizations that drop directly into Superset.\n                  "}))))),r.createElement(z,null,r.createElement(y,null,"Explore"),r.createElement("div",{className:"toggleContainer"},r.createElement("div",{className:"toggleBtns"},r.createElement("div",{className:`toggle ${0===t?"active":null}`,onClick:()=>e.current.goTo(0),role:"button"},r.createElement("h2",null,"Explore"),r.createElement("span",null,"Explore your data using the array of data visualizations.")),r.createElement("div",{className:`toggle ${1===t?"active":null}`,onClick:()=>e.current.goTo(1),role:"button"},r.createElement("h2",null,"View"),r.createElement("span",null,"View your data through interactive dashboards")),r.createElement("div",{className:`toggle ${2===t?"active":null}`,onClick:()=>e.current.goTo(2),role:"button"},r.createElement("h2",null,"Investigate"),r.createElement("span",null,"Use SQL Lab to write queries to explore your data"))),r.createElement(c.Z,{ref:e,effect:"scrollx",afterChange:e=>{a(e)}},r.createElement("div",{className:"imageContainer"},r.createElement("img",{src:"img/explore.jpg",alt:"Explore (chart buider) UI"})),r.createElement("div",{className:"imageContainer"},r.createElement("img",{src:"img/dashboard.jpg",alt:"Superset Dashboard"})),r.createElement("div",{className:"imageContainer"},r.createElement("img",{src:"img/sql_lab.jpg",alt:"SQL Lab"})))),r.createElement(k,null,r.createElement(y,null,"Supported Databases"),r.createElement("ul",{className:"database-list"},w.map((e=>{let{title:t,imgName:a,width:i,height:l}=e;return r.createElement("li",null,r.createElement($,{src:`img/databases/${a}`,title:t,width:i||"auto",height:l||"50px"}))}))),r.createElement("span",{className:"databaseSub"},"... and many other",r.createElement("a",{href:"docs/databases/installing-database-drivers"}," ","compatible databases"," "))))),r.createElement(S,null,"We use"," ",r.createElement("a",{href:"https://applitools.com/",target:"_blank",rel:"nofollow"},r.createElement("img",{src:"img/applitools.png",title:"Applitools"}))))}}}]);