Apache Superset 完全实操手册:数据接入、图表选择与可视化全流程

本文档整合了从数据源配置到图表类型选择的全套操作步骤,按实际工作顺序编排。所有操作均基于 Superset 界面实际位置编写,可直接对照执行。

第一部分:环境准备与数据接入

1.1 安装数据库驱动

Superset 通过 SQLAlchemy 连接数据库,需先安装对应的 Python 驱动包。

操作流程:

  1. 进入 Superset 服务所在容器或虚拟环境。
  2. 执行安装命令:
    • PostgreSQL:pip install psycopg2-binary
    • MySQL:pip install mysqlclient
    • Snowflake:pip install snowflake-sqlalchemy
  3. 若使用官方 Docker 部署,将包名写入 ./docker/requirements-local.txt 文件,重启容器后自动安装。
  4. 安装后重启 Superset Web 服务使驱动生效。

验证方法: 在 Superset 界面"数据" -> "连接数据库"下拉列表中,能看到目标数据库类型即表示驱动安装成功。

1.2 添加数据库连接

具体操作:

  1. 点击顶部导航栏"+"号,选择"数据" -> "连接数据库"。
  2. 在"数据库"下拉框中选择数据库类型(如 PostgreSQL、MySQL)。
  3. 在"SQLAlchemy URI"输入框中填写连接字符串,格式为:
    postgresql://用户名:密码@主机地址:端口/数据库名
    示例:postgresql://etl_user:Pass2026@10.0.1.5:5432/warehouse
  4. 点击"测试连接"按钮,系统显示"连接看起来不错!"即表示成功。
  5. 点击"保存"完成配置。可勾选"公开"使该连接对其他用户可见。

1.3 注册数据集

数据集是 Superset 中图表的数据来源,对应数据库中的一张表或一个视图。

操作步骤:

  1. 导航至"数据" -> "数据集"。
  2. 点击右上角"+ 数据集"按钮。
  3. 依次选择已添加的"数据库"、"模式"(如 public),然后在"表"下拉框中选中目标表。
  4. 点击"添加"完成注册。此时数据集会出现在列表中,点击名称可进入探索界面。

说明: 若需进行多表关联分析,建议在数据库中预先创建包含关联字段的视图,然后将该视图注册为数据集。或使用 SQL Lab 编写查询后保存为虚拟数据集(详见第四部分)。


第二部分:图表类型选择指南

在 Superset 中,图表类型的选择决定了数据洞察的呈现方式。以下按分析目的分类说明各类图表的适用场景及配置要点。

2.1 比较类图表:展示数值大小对比

适用场景: 对比不同类别或时间点的数值高低,回答"谁最大/最小"、"哪个时期最高"等问题。

图表类型 适合的数据结构 典型用例 配置要点
柱状图(Bar Chart) 1个维度 + 1个指标 各产品月度销售额对比 维度放分类字段,指标放数值字段
分组柱状图(Grouped Bar Chart) 2个维度 + 1个指标 各产品在各地区的销售额 第一个维度为主分组,第二个为次分组
堆叠柱状图(Stacked Bar Chart) 2个维度 + 1个指标 各产品在各地区的构成比例 图表类型选"堆叠柱状图",指标选"求和"
折线图(Line Chart) 1个时间维度 + 1个指标 网站每日访问量趋势 维度选日期字段,指标选计数或求和

2.2 趋势类图表:展示数据随时间变化

适用场景: 分析数据随时间上升、下降或周期性波动。

图表类型 适合的数据结构 典型用例 配置要点
折线图(Line Chart) 1个时间维度 + 1个或多个指标 月度活跃用户数变化 时间字段作为维度,需设置时间粒度(日/周/月)
面积图(Area Chart) 1个时间维度 + 1个指标 累计收益增长趋势 与折线图相同,填充区域增强视觉对比
时间序列柱状图(Time-series Bar Chart) 1个时间维度 + 1个指标 每日订单量分布 时间维度需勾选"时间"选项,设置合适粒度

2.3 占比类图表:展示部分与整体的关系

适用场景: 分析各组成部分所占比例。

图表类型 适合的数据结构 典型用例 配置要点
饼图(Pie Chart) 1个维度 + 1个指标 各品类销售额占比 维度放分类,指标放数值。建议不超过6个分类
环图(Donut Chart) 1个维度 + 1个指标 各渠道用户占比 与饼图相同,中心留白可显示总计
堆叠面积图(Stacked Area Chart) 1个时间维度 + 多个指标 各产品线季度营收构成演变 指标添加多个字段,图表自动堆叠显示

2.4 分布类图表:展示数值的分布形态

适用场景: 了解数据的集中趋势、离散程度和异常值。

图表类型 适合的数据结构 典型用例 配置要点
直方图(Histogram) 1个数值字段(无维度) 用户年龄分布 指标选数值字段,系统自动分箱
箱线图(Box Plot) 1个维度 + 1个数值字段 各部门薪资水平分布 维度选部门,指标选薪资字段
散点图(Scatter Plot) 2个数值字段 广告费用与销售额关系 X轴和Y轴各选一个数值指标

2.5 关系类图表:展示变量之间的关联

适用场景: 发现两个或多个变量之间的相关性、流向或依赖关系。

图表类型 适合的数据结构 典型用例 配置要点
散点图(Scatter Plot) 2个数值指标 温度与用电量的关系 X轴选一个指标,Y轴选另一个指标
气泡图(Bubble Chart) 3个数值指标(第3个决定气泡大小) 销售额、利润、市场份额 X轴、Y轴、气泡大小分别映射三个指标
桑基图(Sankey Diagram) 多级维度 + 1个指标 用户从浏览到购买的转化路径 维度按路径顺序添加(如来源→页面→行为)

2.6 空间类图表:展示地理分布

适用场景: 将数据与地理位置关联。

图表类型 适合的数据结构 典型用例 配置要点
地图(Map Chart) 维度含地理编码(国家/省份/经纬度)+ 指标 各省份销售额热力 维度选国家/省份名称,Superset内置地理编码映射
热力图(Heatmap) 2个维度 + 1个指标 星期与小时的订单密集度 行维度和列维度各选一个分类字段,指标为计数

2.7 图表选择速查表

分析目的 优先考虑的图表类型
对比几个数值的大小 柱状图
展示时间序列变化 折线图
显示部分占整体的比例 饼图(分类≤6)或环形图
展示数据分布形态 直方图(单变量)或箱线图(分组对比)
分析两个变量的相关性 散点图
展示地理分布 地图
展示流向或转化路径 桑基图

第三部分:图表创建实操步骤

3.1 使用"探索"视图创建图表(无代码方式)

适用于大多数单表分析场景。

操作流程:

  1. 在数据集列表中,点击需要分析的数据集名称,进入"探索"界面。
  2. 选择图表类型:点击"可视化类型"区域图标,从弹出面板中选择所需类型(参照第二部分速查表)。
  3. 配置维度(分组字段)
    • 在"维度"下拉框中,选择用于分组的字段(如product_category)。
    • 可添加多个维度实现多层分组。
  4. 配置指标(聚合计算字段)
    • 在"指标"区域,点击"添加指标"。
    • 选择聚合方式(COUNT、SUM、AVG 等)及对应的数值字段。
    • 如需自定义计算,选择"自定义 SQL"选项,输入表达式如 SUM(sales_amount) / COUNT(DISTINCT order_id)
  5. 配置筛选条件 (可选):在"筛选条件"区域添加字段过滤,如只查看 region = 'East' 的数据。
  6. 配置时间范围:若数据含时间字段,可在"时间范围"处设定起止日期。
  7. 点击页面左上角的"运行"按钮,右侧区域即显示生成的图表。
  8. 点击"保存"按钮,在弹出的对话框中:
    • 填写图表名称(如"各品类销售额柱状图")。
    • 选择需保存到的仪表板(可新建或选择已有)。
    • 点击"保存并转到仪表板"或"保存"完成操作。

3.2 使用 SQL Lab 生成图表(适用于复杂查询)

当需要多表 JOIN、子查询或复杂计算时使用。

操作流程:

  1. 顶部导航栏点击"SQL" -> "SQL Lab",进入查询编辑器。
  2. 在左侧选择数据库、模式,编辑器中编写 SQL 查询语句。
  3. 点击"运行"执行查询,结果区域显示数据。
  4. 点击结果区域上方的"创建图表"按钮,系统会基于本次查询结果生成一个临时数据集,并直接跳转到"探索"界面。
  5. 后续图表类型选择、维度指标配置与 3.1 节完全一致。
  6. 保存图表时,该临时数据集会被一并保存,后续可直接复用。

3.3 各类图表配置示例

示例1:柱状图(各品类销售额对比)

  1. 图表类型选"柱状图"。
  2. 维度选category
  3. 指标添加SUM(sales_amount)
  4. 运行后显示各品类柱状对比。

示例2:折线图(月度趋势)

  1. 图表类型选"折线图"。
  2. 维度选日期字段order_date,勾选"时间"选项。
  3. 在"时间粒度"中选择"月"(Month)。
  4. 指标添加SUM(order_amount)
  5. 运行后生成按月趋势折线。

示例3:饼图(各渠道占比)

  1. 图表类型选"饼图"。
  2. 维度选channel
  3. 指标添加COUNT(user_id)
  4. 在"样式"设置中开启"显示百分比标签"。
  5. 运行并保存。

示例4:地图(各省份销售额)

  1. 图表类型选"地图"。
  2. 维度选省份字段(需与 Superset 地理编码表中的名称一致,如"广东")。
  3. 指标添加SUM(sales)
  4. 运行后省份区域自动着色,数值越高颜色越深。

示例5:桑基图(用户转化路径)

  1. 图表类型选"桑基图"。
  2. 在"维度"中按顺序添加多个字段,如来源渠道着陆页最终行为
  3. 指标添加COUNT(user_id)
  4. 运行后自动绘制流量流向图。

第四部分:仪表板组合与发布

4.1 创建与编辑仪表板

操作流程:

  1. 创建仪表板:顶部"+"号 -> "仪表板",输入名称后保存。
  2. 添加图表:进入仪表板,点击"编辑仪表板" -> "添加图表",从列表中选择已有图表,点击"添加"。
  3. 调整布局:在编辑模式下,拖拽图表边框可调整大小,拖拽标题区域可调整位置。

4.2 发布仪表板

仪表板默认状态为"草稿",仅创建者和管理员可见。

  • 点击仪表板标题旁的"草稿"按钮,切换为"已发布"状态,所有有权限用户即可访问。

4.3 设置定时刷新

在仪表板编辑模式下,点击"设置" -> "刷新频率",可配置按秒、分钟或小时自动刷新。

4.4 常用 URL 参数控制显示

通过 URL 参数控制仪表板显示模式,适用于嵌入或全屏展示场景。

参数 作用 示例
standalone 隐藏顶部导航和底部页脚 ?standalone=true
show_filters 显示或隐藏筛选栏 ?show_filters=false
dashboard 指定仪表板 ID 用于直接访问

使用方式: 在仪表板访问 URL 末尾添加上述参数,多个参数用 & 连接。


第五部分:常见问题与处理

现象 可能原因 处理方法
测试连接失败 驱动未安装或 URI 格式错误 检查驱动包,核对 URI 各字段(用户名、密码、主机、端口、数据库名)
图表查询超时 数据量过大或数据库性能不足 在数据库端优化表结构或索引,或减少查询时间范围
图表数据显示不全 维度或指标配置不匹配 检查字段类型,确保维度为字符串/日期,指标为数值
仪表板加载慢 包含大量并发查询 启用仪表板缓存,或设置较长的刷新间隔
多表关联需求 探索视图仅支持单表 在数据库中创建视图,或将 SQL Lab 查询结果保存为数据集
饼图分类过多 超过6个分类导致视觉混乱 改用柱状图,或对"其他"类别进行聚合
地图无法显示 地理名称与内置编码不匹配 确保省份/国家名称与 Superset 地理编码表完全一致(如"广东"而非"广东省")
自定义计算指标 需要比率或复杂表达式 在指标中选择"自定义 SQL",输入表达式如 SUM(A)/SUM(B)

第六部分:图表选择与优化建议

  1. 多类型验证:同一份数据在不同图表类型下呈现的洞察可能截然不同,建议对关键指标尝试 2-3 种图表类型后再确定最终展示方式。
  2. 粒度控制:时间序列图表务必设置合适的时间粒度(日/周/月/季),粒度过细会产生噪音,过粗会掩盖细节。
  3. 样式微调:在"探索"界面的"样式"选项卡中,可以调整轴标签角度、数值格式、图例位置等细节,提升图表的可读性。
  4. 颜色规范:建议在仪表板中统一配色方案,同一类指标使用相同色系,便于快速识别。

本手册覆盖了 Superset 从数据接入、图表类型选择、创建图表到仪表板发布的全流程。所有步骤均按界面实际位置和操作顺序编写,可对照执行。对于更高级的自定义图表开发或权限管理,可查阅 Superset 官方技术文档。