Apache Superset (incubating) is a modern, enterprise-ready business intelligence web application. Compared with business-focused BI tool like Tableau, superset is more technology-navy. It supports more types of visualization and able to work in distributed manner to boost the query performance. Most importantly, it is free of charge!
An example dashboard:
Let’s go and set it up.
Create a virtualenv
Assume Anaconda is installed for python management.
# create a virtualenv with python 3.6
conda create -n superset python=3.6
Install in virtualenv
enter the virtual environment and follow the official installation guide.
# enter virtualenv
source activate superset
# install superset follow official installation guide
pip install superset
# Create an admin user (you will be prompted to set username, first and last name before setting a password)
fabmanager create-admin --app superset
# Initialize the database
superset db upgrade
# Load some data to play with
superset load_examples
# Create default roles and permissions
superset init
# To start a development web server on port 8088, use -p to bind to another port
superset runserver -d
You are now in superset debug mode, if you are successfully. Just go to http://localhost:8088 and you will see the login page.
After log in, you can view the example dashboards:
Set up systemd service
If you want to deploy superset in production, you have to run it on the background. We can make superset run as systemd service, so that it can run as background proccess and re-start when failed or aborted.
cd /etc/systemd/system
sudo touch superset.service
sudo vim superset.service
write in following code
[Unit]
Description=Visualization platform by Airbnb
After=multi-user.target
[Service]
Type=simple
User=chaoran
ExecStart=/home/chaoran/anaconda3/envs/superset/bin/gunicorn -w 2 --timeout 60 -b 0.0.0.0:8088 --limit-request-line 0 --limit-request-field_size 0 superset:app
[Install]
WantedBy=default.target
Start systemd service
# start superset service
sudo systemctl start superset.service
# check service status
sudo systemctl status superset.service
If everything is running ok, this is the expected output.
'Assume Anaconda is installed for python management.' Bad assumption.