The superset utility is a modern, enterprise-ready business intelligence web application. It requires Meltano version 2.0.
Alternate Implementations
- Apache Software Foundation
- Meltano (default)
Getting Started
Prerequisites
If you haven't already, follow the initial steps of the Getting Started guide:
Dependencies
The Superset plugin requires Meltano version 2.0. If you're on an older version, make sure you update Meltano first.
Once you have Meltano running, you likely already have everything you need for Superset as well. If you do run into trouble installing Superset following the instructions below, check out the OS Dependencies section in the Superset documentation. Note that the rest of that guide is not relevant if you're using Meltano to manage your Superset installation, initialization, and configuration.
Installation and configuration
-
Add the superset utility to your
project using
:meltano add
-
Configure the superset
settings using
:meltano config
meltano add utility superset --variant apache
meltano config superset set --interactive
Next steps
If you're running Superset for the first time in a new environment, generate a new
SECRET_KEY
to increase security:meltano config superset set SECRET_KEY $(openssl rand -base64 42)
Create an admin user: (use
admin
as username to be able to load the examples)meltano invoke superset:create-admin
This is equivalent to
superset fab create-admin
in the Superset documentationOptionally, load some example data to play with:
meltano invoke superset:load-examples
This is equivalent to
superset load_examples
in the Superset documentationLaunch the Superset UI and log in using the username/password you created:
meltano invoke superset:ui
By default, the UI will be available at at
http://localhost:8088
. You can change this using theui.bind_host
andui.port
settings documented below.
Add additional database drivers
Superset does not ship bundled with connectivity to databases, except for SQLite, which is part of the Python standard library. You’ll need to install the required packages for the database you want to use as your metadata database as well as the packages needed to connect to the databases you want to access through Superset.
You can find the list of supported databases and the appropriate PyPI (pip) packages in the Supported Databases and Dependencies section in the Superset documenation. These can then be added to your Meltano project by configuring
a custom pip_url
for the superset
utility:
Find the
superset
plugin definition in yourmeltano.yml
project fileUpdate the
pip_url
property to include the desired additional packages:utilities: - name: superset variant: apache pip_url: apache-superset==1.5.0 markupsafe==2.0.1 cryptography==3.4.7 snowflake-sqlalchemy
Re-install the plugin:
meltano install utility superset
Now when you (re)start Superset, you will be able to connect to a new type of database, like Snowflake in the example.
If you run into any issues, learn how to get help.
Capabilities
This plugin currently has no capabilities defined. If you know the capabilities required by this plugin, please contribute!Settings
Meltano centralizes the configuration of all of the plugins in your project, including Superset's. This means that if the Superset documentation tells you to put something in superset_config.py
, you can use meltano config
, meltano.yml
, or environment variables instead, and get the benefits of Meltano features like environments.
Most settings (those with simple values like strings, integers, booleans, lists, or dictionaries) can be added directly to meltano.yml
, manually or using meltano config
. For example, ROW_LIMIT = 5000
becomes meltano config superset set ROW_LIMIT 5000
on the CLI, or ROW_LIMIT: 5000
in meltano.yml
. Just like in superset_config.py
, config keys should be ALL_CAPS.
Advanced configuration
If you want to configure something more complex, like custom OAuth2 configuration, you can add a superset_config.py
file somewhere in your project, put your Superset config there exactly as the documentation suggests, and tell Meltano to pass that to Superset along with the Meltano-managed configuration by adding the config_path
property to the superset
plugin definition in meltano.yml
:
utilities:
- name: superset
variant: apache
pip_url: apache-superset==1.5.0
config_path: analyze/superset/superset_config.py
config:
ROW_LIMIT: 5000
Properties defined in your own superset_config.py
take precedence over those managed by Meltano, like ROW_LIMIT
in the example.
Superset settings already known to Meltano
The
superset
settings that are known to Meltano are documented below. To quickly
find the setting you're looking for, click on any setting name from the list:
You can also list these settings using
with the meltano config
list
subcommand:
meltano config superset list
You can
override these settings or specify additional ones
in your meltano.yml
by adding the settings
key.
Please consider adding any settings you have defined locally to this definition on MeltanoHub by making a pull request to the YAML file that defines the settings for this plugin.
Secret Key (SECRET_KEY)
-
Environment variable:
SUPERSET_SECRET_KEY
-
Default Value:
thisisnotapropersecretkey
App secret key used for securely signing the session cookie and encrypting sensitive information on the database. Equivalent to the SECRET_KEY
setting in superset_config.py
.
Configure this setting directly using the following Meltano command:
meltano config superset set SECRET_KEY [value]
SQLAlchemy Database URI (SQLALCHEMY_DATABASE_URI)
-
Environment variable:
SUPERSET_SQLALCHEMY_DATABASE_URI
-
Default Value:
sqlite:///$MELTANO_PROJECT_ROOT/.meltano/utilities/superset/superset.db
Superset metadata database connection string. Equivalent to the SQLALCHEMY_DATABASE_URI
setting in superset_config.py
.
SQLite is used by default, but in production PostgreSQL or MySQL is more appropriate. See the Superset documentation for more information. To add a database driver like psycopg2
or mysqlclient
, refer to the Add additional database drivers section above.
Configure this setting directly using the following Meltano command:
meltano config superset set SQLALCHEMY_DATABASE_URI [value]
UI Bind Host (ui.bind_host)
-
Environment variable:
SUPERSET_UI_BIND_HOST
-
Default Value:
0.0.0.0
Host used by meltano invoke superset:ui
. Used in the gunicorn
--bind
option along with ui.port
.
Configure this setting directly using the following Meltano command:
meltano config superset set ui bind_host [value]
UI Port (ui.port)
-
Environment variable:
SUPERSET_UI_PORT
-
Default Value:
8088
Port used by meltano invoke superset:ui
. Used in the gunicorn
--bind
option along with ui.bind_host
.
Configure this setting directly using the following Meltano command:
meltano config superset set ui port [value]
UI Timeout (ui.timeout)
-
Environment variable:
SUPERSET_UI_TIMEOUT
-
Default Value:
60
Timeout in sections, used by meltano invoke superset:ui
. Corresponds to the gunicorn
--timeout
option
Configure this setting directly using the following Meltano command:
meltano config superset set ui timeout [value]
UI Workers (ui.workers)
-
Environment variable:
SUPERSET_UI_WORKERS
-
Default Value:
4
Workers used by meltano invoke superset:ui
. Corresponds to the gunicorn
--workers
option
Configure this setting directly using the following Meltano command:
meltano config superset set ui workers [value]
Commands
The superset utility supports the following commands that can be used withmeltano invoke
:create-admin
-
Equivalent to:
fab create-admin
Create an admin user.
meltano invoke superset:create-admin [args...]
load-examples
-
Equivalent to:
load_examples
Load examples.
meltano invoke superset:load-examples [args...]
ui
-
Equivalent to:
--bind $SUPERSET_UI_BIND_HOST:$SUPERSET_UI_PORT --timeout $SUPERSET_UI_TIMEOUT --workers $SUPERSET_UI_WORKERS superset.app:create_app()
Start the Superset UI. Will be available on the configured `ui.bind_host` and `ui.port`, which default to `http://localhost:8088`
meltano invoke superset:ui [args...]
Troubleshooting
Invalid decryption key
If you see a ValueError: Invalid decryption key
warning or a message that Superset default roles and permissions could not be created: 'superset init' failed
then it's likely that your encryption key is incorrect.
If you change your SECRET_KEY
, the metadata database containing your users and reports will become unreadable. If there was nothing valuable in there, you can delete it at .meltano/utilities/superset/superset.db
inside your project. If you changed the secret key because the old one was leaked, you can rotate the key:
meltano config superset set SECRET_KEY <new_key>
meltano config superset set PREVIOUS_SECRET_KEY <original_key>
meltano invoke superset re-encrypt-secrets
Something missing?
This page is generated from a YAML file that you can contribute changes to.
Edit it on GitHub!Looking for help?
#plugins-general
channel.