Superset快速入门

Apache Superset 是一个开源的数据探查与可视化平台(曾用名 Panoramix、Caravel ),该工具在可视化、易用性和交互性上非常有特色,用户可以轻松对数据进行可视化分析。Superset 也是一款企业级商业智能 Web 应用程序。

部署 创达睿通 提供的 Superset 之后,请参考下面的步骤快速入门。

准备

  1. 在云控制台获取您的 服务器公网 IP 地址

  2. 在云控制台安全组中,检查 Inbound(入)规则 下的 TCP:80TCP:80 端口是否开启

  3. 在服务器中查看 Superset 的 默认账号和密码

  4. 若想用域名访问 Superset,务必先完成**域名五步设置** 过程

Superset 初始化向导

详细步骤

  1. 使用本地电脑浏览器访问网址: http://域名http://服务器公网 IP, 进入登录页面

  2. 输入账号密码,成功登录到 Superset 后台

  3. 修改密码:【Superset Admin】>【Profiles】>【Reset my Password】

  4. 修改语言:通过右上角国旗图标设置你所需的语言

出现问题?

若碰到问题,请第一时刻联系 技术支持。也可以先参考下面列出的问题定位或 FAQ 尝试快速解决问题:

Superset 密码正确,但仍然登录失败?

Superset 使用入门

下面以连接 Superset 从 MySQL 数据源中获取数据进行分析作为范例:

  1. 登录后,依次打开:【Data】>【Databases】

  2. 点击右上角【数据库】,输入要连接的数据地址、端口、库名以及驱动(参考

  3. 点击【确认】,追加的数据库显示在列表中

  4. 依次打开菜单栏:【Data】>【Datesets】

  5. 点击追加 Datasets,依次选择库、SCHEMA、Table,点击追加

  6. 新追加的表已经显示在 Datasets 一览了

需要了解更多 Superset 的使用,请参考官方文档:Superset documentation

Superset 常用操作

安装数据库驱动

Superset 支持数十种数据库,但 Superset Docker 镜像默认并没有安装数据库的驱动(连接程序)。

因此,需要用户进入到容器后手动安装,具体如下:

# 进入 Superset 容器,以 root 身份运行命令
sudo docker exec -it --user root superset-app bash

# 范例:安装 MySQL 驱动
pip install mysqlclient

# 范例:安装 PostgreSQL 驱动
pip install psycopg2

更多驱动参考官方Database dependencies

连接数据库

以 SQL Server 为例:

# 进入 Superset 容器,以 root 身份运行命令
sudo docker exec -it -u root superset-app bash

# 安装 MSSQL 驱动
pip install pymssql

# 在 SuperSet 中连接 SQLServer Database
#  E.g mssql+pymssql://sa:[email protected]:1433/test
mssql+pymssql://username:password@server ip:port/database

如果打算用自己的 Logo 更换 Superset 容器中默认的 Logo,具体的步骤如下:

  1. 使用 SFTP 上传你的 Logo 到服务器 /data 目录下

  2. 将 Logo 更名为 superset-logo-horiz

  3. 运行下面的命令,更换 Superset 官方默认 Logo

    docker cp /data/superset-logo-horiz.png superset-app:/app/superset/static/assets/images/superset-logo-horiz.png

    superset-app 为 SuperSet 容器名称。

  4. 刷新 Superset 后台页面,查看更换效果

配置 SMTP

Superset 配置 SMTP 发邮件的步骤:

  1. 在邮箱管理控制台获取 SMTP 相关参数

  2. 修改Superset 配置文件,增加如下的 SMTP 配置段,设置好自己的参数。

    # smtp server configuration
    EMAIL_NOTIFICATIONS = True  # all the emails are sent using dryrun
    SMTP_HOST = 'smtp.163.com'
    SMTP_STARTTLS = True
    SMTP_SSL = True
    SMTP_USER = '[email protected]'
    SMTP_PORT = 465
    SMTP_PASSWORD = '#wwBJ8'
    SMTP_MAIL_FROM = '[email protected]'
  3. 重启 Superset 容器后生效

    sudo docker restart superset-app

重置密码

常用的 Superset 重置密码相关的操作主要有修改密码和找回密码两种类型:

修改密码

登录 Superset 后台,修改密码:【Settings】>【User】>【Info】

Superset 修改密码

找回密码

如果用户忘记了密码,需要通过修改数据库中的数据表的方式找回:

  1. 使用 SSH连接服务器,运行如下命令连接数据库

    docker exec -it superset_db psql -U superset
  2. 数据库命令模式下,运行如下的 SQL 语句后,用户 admin 的密码就被设置为admin123

    update ab_user set password='pbkdf2:sha256:150000$w8vfDHis$b9c8fa353137417946766ed87cf20510da7e1e3a7b79eef37426330abef552bf' where username='admin';

Superset 参数

Superset 应用中包含 Nginx, Docker, PostgreSQL, pgAdmin, Redis 等组件,可通过 通用参数表 查看路径、服务、端口等参数。

通过运行docker ps,可以查看到 Superset 运行时所有的 Container:

CONTAINER ID   IMAGE                           COMMAND                  CREATED              STATUS                                 PORTS                               NAMES
453f04935734   apache/superset:latest          "/usr/bin/docker-ent…"   About a minute ago   Up About a minute (healthy)            0.0.0.0:8088->8088/tcp              superset_app
5477e7693ef3   apache/superset:latest          "/usr/bin/docker-ent…"   About a minute ago   Up About a minute (healthy)            8088/tcp                            superset_worker
d6670fa1bc11   apache/superset:latest          "/usr/bin/docker-ent…"   About a minute ago   Up About a minute (healthy)            8088/tcp                            superset_worker_beat
17689f5d6ebb   postgres:10                     "docker-entrypoint.s…"   About a minute ago   Up About a minute                      0.0.0.0:5432->5432/tcp              superset_db
06bf52f4b856   redis:3.2                       "docker-entrypoint.s…"   About a minute ago   Up About a minute                      127.0.0.1:6379->6379/tcp            superset_cache

下面仅列出 Superset 本身的参数:

路径

Superset 源码目录: /data/apps/superset Superset 数据目录: /data/apps/superset/data/superset_home Superset 配置目录: /data/apps/superset/src/docker Superset 配置文件: /data/apps/superset/src/docker/pythonpath_dev/superset_config.py

端口

无特殊端口

版本

# Superset Version
docker exec -it superset_app /bin/bash -c 'cat /app/superset-frontend/package.json |grep version'

服务

sudo docker  start | stop | restart | status superset-app
sudo docker  start | stop | restart | status superset-worker
sudo docker  start | stop | restart | status superset-worker_beat
sudo docker  start | stop | restart | status superset-db
sudo docker  start | stop | restart | status superset-cache

命令行

Superset 提供了强大的的命令行工具 superset

使用 SSH 登录到云服务器,登录到容器后即可使用 CLI

# 登录到 Superset 容器
docker exec -it superset-app bash

# 运行 CLI 命令
superset

主要参数如下:

Usage: superset [OPTIONS] COMMAND [ARGS]...

  This is a management script for the Superset application.

Options:
  --version  Show the flask version
  --help     Show this message and exit.

Commands:
  db                        Perform database migrations.
  export-dashboards         Export dashboards to JSON
  export-datasource-schema  Export datasource YAML schema to stdout
  export-datasources        Export datasources to YAML
  fab                       FAB flask group commands
  flower                    Runs a Celery Flower web server Celery Flower
                            is...

  import-dashboards         Import dashboards from JSON
  import-datasources        Import datasources from YAML
  init                      Inits the Superset application
  load-examples             Loads a set of Slices and Dashboards and a...
  load-test-users           Loads admin, alpha, and gamma user for testing...
  refresh-druid             Refresh druid datasources
  routes                    Show the routes for the app.
  run                       Run a development server.
  set-database-uri          Updates a database connection URI
  shell                     Run a shell in the app context.
  sync-tags                 Rebuilds special tags (owner, type, favorited...
  update-datasources-cache  Refresh sqllab datasources cache
  version                   Prints the current version number
  worker                    Starts a Superset worker for async SQL query...

API

Superset API 采用 REST API 2.0 规范。

最后更新于