Apache Superset is a Data Visualization and Data Exploration Platform
Go to file
Xiao Hanyu 0a276ff75d Init docker for local development environment. (#4193)
This commit will try to dockerize superset in local development
environment.

The basic design is:
- Enable superset, redis and postgres service instead of using sqlite,
  just want to simulate production environment settings
- Use environment variables to config various app settings. It's easy to
  run and config superset to any environment if we use environment than
  traditional config files
- For local development environment, we just expose postgres and redis
  to local host machine thus you can connect local port via `psql` or
  `redis-cli`
- Wrap start up command in a standard `docker-entrypoint.sh`, and use
  `tail -f /dev/null` combined with manually `superset runserver -d` to
  make sure that code error didn't cause the container to fail.
- Use volumes to share code between host and container, thus you can use
  your favourite tools to modify code and your code will run in
  containerized environment
- Use volumes to persistent postgres and redis data, and also
  `node_modules` data.
  - If we don't cache `node_modules` in docker volume, then every time
    run docker build, the `node_modules` directory, will is about 500 MB
    large, will be sent to docker daemon, and make the build quite slow.
- Wrap initialization commands to a single script `docker-init.sh`

After this dockerize setup, any developers who want to contribute to
superset, just follow three easy steps:

```
git clone https://github.com/apache/incubator-superset/
cd incubator-superset
cp contrib/docker/{docker-build.sh,docker-compose.yml,docker-entrypoint.sh,docker-init.sh,Dockerfile} .
cp contrib/docker/superset_config.py superset/
bash -x docker-build.sh
docker-compose up -d
docker-compose exec superset bash
bash docker-init.sh
```
2018-06-09 21:26:41 -07:00
contrib/docker Init docker for local development environment. (#4193) 2018-06-09 21:26:41 -07:00
docs Init docker for local development environment. (#4193) 2018-06-09 21:26:41 -07:00
install/helm/superset Install superset in Kubernetes with helm chart (#4923) 2018-05-03 17:35:38 -07:00
scripts [flake8] Adding flake8-coding (#4477) 2018-02-25 15:06:11 -08:00
superset [druid] Fixing Druid version check (#5028) 2018-06-08 16:55:15 -07:00
tests URL shortner for dashboards (#4760) 2018-06-02 11:08:43 -07:00
.gitignore Init docker for local development environment. (#4193) 2018-06-09 21:26:41 -07:00
.pylintrc treating floats like doubles for druid versions lower than 11.0.0 (#5030) 2018-05-21 11:50:04 -07:00
.travis.yml [setup] Dropping 3.4 and adding 3.6 (#4835) 2018-04-17 21:30:12 -07:00
CHANGELOG.md CHANGELOG for 0.25.0 (#4948) 2018-05-08 08:24:54 -07:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md (#3991) 2017-12-02 14:57:54 -08:00
CONTRIBUTING.md [docs] minor file name and format fix for the setup document (#4844) 2018-04-19 11:34:23 -07:00
ISSUE_TEMPLATE.md [WiP] rename project from Caravel to Superset (#1576) 2016-11-09 23:08:22 -08:00
LICENSE.txt LICENSE 2015-07-21 20:54:31 +00:00
MANIFEST.in Removing files from MANIFEST.in (#4542) 2018-03-06 09:39:31 -08:00
README.md Add Lime to Superset user list. 2018-05-30 14:24:03 -07:00
UPDATING.md Bump celery to 4.1.1 (#5134) 2018-06-04 14:54:36 -07:00
alembic.ini [WiP] rename project from Caravel to Superset (#1576) 2016-11-09 23:08:22 -08:00
gen_changelog.sh CHANGELOG for 0.20.0 (#3545) 2017-09-28 14:42:57 -07:00
pypi_push.sh Fixing pypi_push.sh 2017-01-24 11:42:49 -08:00
requirements-dev.txt RFC: add logger that logs into browser console (#4702) 2018-04-12 21:48:17 -07:00
requirements.txt pin kombu dependency (#5150) 2018-06-06 14:29:08 -07:00
setup.cfg [travis/tox] Restructuring configuration (#4552) 2018-04-10 15:59:44 -07:00
setup.py Bump celery to 4.1.1 (#5134) 2018-06-04 14:54:36 -07:00
tox.ini [pylint] prepping for enabling pylint for non-errors (#4884) 2018-04-28 20:08:09 -07:00

README.md

Superset

Build Status PyPI version Coverage Status PyPI Join the chat at https://gitter.im/airbnb/superset Documentation dependencies Status

Superset

Apache Superset (incubating) is a modern, enterprise-ready business intelligence web application

[this project used to be named Caravel, and Panoramix in the past]

Screenshots & Gifs

View Dashboards


Slice & dice your data


Query and visualize your data with SQL Lab


Visualize geospatial data with deck.gl


Choose from a wide array of visualizations


Apache Superset

Apache Superset is a data exploration and visualization web application.

Superset provides:

  • An intuitive interface to explore and visualize datasets, and create interactive dashboards.
  • A wide array of beautiful visualizations to showcase your data.
  • Easy, code-free, user flows to drill down and slice and dice the data underlying exposed dashboards. The dashboards and charts acts as a starting point for deeper analysis.
  • A state of the art SQL editor/IDE exposing a rich metadata browser, and an easy workflow to create visualizations out of any result set.
  • An extensible, high granularity security model allowing intricate rules on who can access which product features and datasets. Integration with major authentication backends (database, OpenID, LDAP, OAuth, REMOTE_USER, ...)
  • A lightweight semantic layer, allowing to control how data sources are exposed to the user by defining dimensions and metrics
  • Out of the box support for most SQL-speaking databases
  • Deep integration with Druid allows for Superset to stay blazing fast while slicing and dicing large, realtime datasets
  • Fast loading dashboards with configurable caching

Database Support

Superset speaks many SQL dialects through SQLAlchemy, a Python ORM that is compatible with most common databases.

Superset can be used to visualize data out of most databases:

  • MySQL
  • Postgres
  • Vertica
  • Oracle
  • Microsoft SQL Server
  • SQLite
  • Greenplum
  • Firebird
  • MariaDB
  • Sybase
  • IBM DB2
  • Exasol
  • MonetDB
  • Snowflake
  • Redshift
  • more! look for the availability of a SQLAlchemy dialect for your database to find out whether it will work with Superset

Druid!

On top of having the ability to query your relational databases, Superset ships with deep integration with Druid (a real time distributed column-store). When querying Druid, Superset can query humongous amounts of data on top of real time dataset. Note that Superset does not require Druid in any way to function, it's simply another database backend that it can query.

Here's a description of Druid from the http://druid.io website:

Druid is an open-source analytics data store designed for business intelligence (OLAP) queries on event data. Druid provides low latency (real-time) data ingestion, flexible data exploration, and fast data aggregation. Existing Druid deployments have scaled to trillions of events and petabytes of data. Druid is best used to power analytic dashboards and applications.

Installation & Configuration

See in the documentation

Resources

Contributing

Interested in contributing? Casual hacking? Check out Contributing.MD

Who uses Apache Superset (incubating)?

Here's a list of organizations who have taken the time to send a PR to let the world know they are using Superset. Join our growing community!