Superset

superset (meltano variant)

A modern, enterprise-ready business intelligence web application.

The superset utility is a modern data exploration and visualization platform.

EDK Based Plugin

This utility is based on the Meltano Extension Developer Kit (EDK) which is the preferred way to build and add non-Singer plugins to Meltano Hub. For more information about the EDK, please read this section of the Meltano docs. If you have any feedback or suggestions, add them to the EDK repo.

Alternate Implementations

Getting Started

Prerequisites

If you haven't already, follow the initial steps of the Getting Started guide:

  1. Install Meltano
  2. Create your Meltano project

Installation and configuration

  1. Add the superset utility to your project using
    meltano add
    :
  2. meltano add utility superset
  3. Configure the superset settings using
    meltano config
    :
  4. meltano config superset set --interactive

Next steps

  1. 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
  1. 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

  1. 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.

  1. 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:

  1. Find the superset plugin definition in your meltano.yml project file

  2. Update 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
    
  3. 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

meltano config
with the 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
[No description provided.]

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 with
meltano 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?

If you're having trouble getting the superset utility to work, look for an existing issue in its repository, file a new issue, or join the Meltano Slack community and ask for help in the
#plugins-general
channel.

Install

meltano add utility superset

Maintenance Status

  • Maintenance Status

Repo

https://github.com/apache/superset
  • Stars
  • Forks
  • Last Commit Date
  • Open Issues
  • Open PRs
  • Contributors
  • License

EDK Extension Repo

https://github.com/meltano/superset-ext

Maintainer

  • Meltano

Meltano Stats

  • Projects (Last 3 Months)

Keywords

  • analysis