The superset
utility is a modern data exploration and visualization platform.
EDK Based Plugin
Alternate Implementations
- Apache Software Foundation
- Meltano (default)
Getting Started
Prerequisites
If you haven't already, follow the initial steps of the Getting Started guide:
Installation and configuration
-
Add the superset utility to your
project using
:meltano add
-
Configure the superset
settings using
:meltano config
meltano add utility superset
meltano config superset set --interactive
Next steps
- If you're running Superset for the first time in a new environment you'll need to initialize the config, database, as well as generate generate a new
SECRET_KEY
to increase security:
# create a new secret key meltano config superset set SECRET_KEY $(openssl rand -base64 42) # create the initial config, database, and auth roles. meltano invoke superset:initialize
- Create an admin user: (use
admin
as username to be able to load the examples)
# add a superset admin using prompting for required values meltano invoke superset:create-admin
This is equivalent to superset fab create-admin
in the Superset documentation
- Optionally, load some example data to play with:
meltano invoke superset:load-examples
This is equivalent to superset load_examples
in the Superset documentation
Note that you need a user named admin
with the admin permissions to load these examples.
- Launch 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 the ui.bind_host
and ui.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==2.0.0 flask==2.0.3 werkzeug==2.0.3 jinja2==3.0.1 wtforms==2.3.3 git+https://github.com/meltano/superset-ext.git@main cryptography==3.4.7
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
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.
Superset config path (CONFIG_PATH)
-
Environment variable:
SUPERSET_CONFIG_PATH
-
Default Value:
$MELTANO_PROJECT_ROOT/analyze/superset/superset_config.py
The path to where the Superset config file is located.
Configure this setting directly using the following Meltano command:
meltano config superset set CONFIG_PATH [value]
Superset home (HOME)
-
Environment variable:
SUPERSET_HOME
-
Default Value:
$MELTANO_PROJECT_ROOT/.meltano/utilities/superset
Configure this setting directly using the following Meltano command:
meltano config superset set HOME [value]
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:
create-admin
meltano invoke superset:create-admin [args...]
describe
-
Equivalent to:
describe
meltano invoke superset:describe [args...]
initialize
-
Equivalent to:
initialize
meltano invoke superset:initialize [args...]
invoke
-
Equivalent to:
invoke
meltano invoke superset:invoke [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_ext set SECRET_KEY <new_key>
meltano config superset_ext set PREVIOUS_SECRET_KEY <original_key>
meltano invoke superset_ext 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.