探索 Superset 中的数据
在本教程中,我们将通过探索一个包含2011年英国某组织员工航班的实际数据集,介绍 Apache Superset 的关键概念。每个航班提供以下信息:
- 旅客的部门。为了本教程的目的,部门已被重命名为橙色、黄色和紫色。
- 机票费用。
- 旅行舱位(经济舱、高级经济舱、商务舱和头等舱)。
- 机票是单程还是往返。
- 旅行日期。
- 出发地和目的地的信息。
- 出发地和目的地之间的距离,以公里(km)为单位。
启用数据上传功能
您可能需要启用上传 CSV 或 Excel 文件到数据库的功能。以下部分解释了如何为示例数据库启用此功能。
在顶部菜单中,选择 数据 ‣ 数据库。在列表中找到 示例 数据库并选择 编辑 按钮。
在弹出的模态窗口中,切换到 额外 标签,并勾选 允许数据上传 复选框。最后点击 保存 按钮。
加载 CSV 数据
从 GitHub 下载 CSV 数据集到您的计算机。在 Superset 菜单中,选择 数据 ‣ 上传 CSV。
然后,将 表名 输入为 tutorial_flights,并从您的计算机中选择 CSV 文件。
接下来,在 解析日期 字段中输入 Travel Date。
保持所有其他选项为默认设置,选择页面底部的 保存。
表格可视化
您现在应该在 数据集 标签中看到 tutorial_flights 作为数据集。点击该条目以使用此数据集启动探索工作流程。
在本节中,我们将创建一个表格可视化,以显示每个旅行舱位的航班数量和费用。
默认情况下,Apache Superset 仅显示最近一周的数据。在我们的示例中,我们希望可视化数据集中的所有数 据。点击 时间 ‣ 时间范围 部分,并将 范围类型 更改为 无过滤器。
点击 应用 保存。
现在,我们希望通过使用 分组依据 选项来指定表格中的行。在这个示例中,我们想要了解不同的旅行舱位,因此在此菜单中选择 旅行舱位。
接下来,我们可以使用 指标 选项指定我们希望在表格中看到的指标。
COUNT(*)
,表示表格中的行数(在本例中,每个旅行舱位的航班数量)SUM(Cost)
,表示每个旅行舱位的总费用
最后,选择 运行查询 以查看表格的结果。
要保存可视化,请点击屏幕左上角的 保存。在接下来的模态窗口中,
- 选择 另存为 选项,并将图表名称输入为 Tutorial Table(您将能够通过顶部菜单中的 图表 屏幕再次找到它)。
- 选择 添加到仪表板 并输入 Tutorial Dashboard。最后,选择 保存并转到仪表板。
仪表板基础
接下来,我们将探索仪表板界面。如果您按照上一节操作,您应该已经打开了仪表板。否则,您可以通过选择顶部菜单中的 Dashboards,然后从仪表板列表中选择 Tutorial dashboard 来导航到仪表板。
在这个仪表板上,您应该看到上一节中 创建的表格。选择 编辑仪表板,然后将鼠标悬停在表格上。通过选择表格右下角(光标也会改变),您可以通过拖放来调整其大小。
最后,通过选择右上角的 Save changes 保存您的更改。
透视表
在本节中,我们将使用更复杂的可视化——透视表来扩展我们的分析。在本节结束时,您将创建一个表格,显示前六个月各部门按旅行舱位的航班支出。
通过选择右上角的 + ‣ 图表 创建一个新图表。选择 tutorial_flights 再次作为数据源,然后点击可视化类型以进入可视化菜单。选择 数据透视表 可视化(你可以通过在搜索框中输入文本来筛选),然后点击 创建新图表。
在 时间 部分,保持时间列为旅行日期(这会自动选择,因为我们数据集中只有一个时间列)。然后选择时间粒度为月份,因为每日数据过于细粒度,难以观察模式。接着,通过点击时间范围部分的“上周”,然后在自定义中分别选择2011年1月1日和2011年6月30日作为开始/结束日期,来选择2011年的前六个月的时间范围(可以直接输入日期或使用日历小部件,通过选择月份名称和年份,可以更快地移动到较远的日期)。
接下来,在 查询 部分,移除默认的 COUNT(*),并添加成本,保持默认的 SUM 聚合。注意,Apache Superset 会通过列表左侧的符号指示指标的类型(ABC 表示字符串,# 表示数字,时钟面表 示时间等)。
在 分组依据 中,选择 时间:这将自动使用我们在时间部分定义的时间列和时间粒度选择。
在 列 中,首先选择部门,然后选择旅行类别。一切就绪 – 让我们 运行查询 来看看数据!
你应该会看到月份在行中,部门和旅行类别在列中。将此图表发布到你之前创建的教程仪表板中。
折线图
在本节中,我们将创建一个折线图,以了解整个数据集中每月机票的平均价格。
在时间部分,与之前一样,保持时间列为旅行日期,时间粒度为月份,但这次在时间范围中选择“无过滤器”,因为我们想查看整个数据集。
在指标中,移除默认的 COUNT(*)
指标,并添加 AVG(Cost)
,以显示平均值。
接下来,选择 运行查询 以在图表上显示数据。
这看起来如何?我们可以看到平均成本在12月上升。然而,或许将单程票和往返票合并在一起并不合理,而是应该为每种票类型显示两条单独的线。
让我们通过在分组依据框中选择单程或往返票,然后再次选择 运行查询 来实现这一点。很好!我们可以看到,平均而言,单程票比往返票便宜,12月的大幅上涨是由往返票引起的。
我们的图表看起来已经很不错了,但让我们通过进入左侧窗格中的自定义选项卡来进一步定制。在这个窗格中,尝试更改配色方案,通过在显示范围过滤器下拉菜单中选择“否”来移除范围过 滤器,并使用 X 轴标签和 Y 轴标签添加一些标签。
完成后,将图表发布到你的教程仪表板中。
标记语言
在本节中,我们将在仪表板中添加一些文本。如果你已经在那里,可以通过选择顶部菜单中的仪表板,然后从仪表板列表中选择教程仪表板来导航到仪表板。通过选择 编辑仪表板 进入编辑模式。
在插入组件窗格中,将一个 Markdown 框拖放到仪表板上。寻找蓝色线条,它们指示框将放置的锚点。
现在,要编辑文本,选择该框。你可以输入文本,使用 Markdown 格式(参见 这个 Markdown 速查表 了解更多关于此格式的信息)。你可以通过框顶部的菜单在编辑和预览之间切换。
要退出,选择仪表板的任何其他部分。最后,别忘了使用 保存更改 保存你的修改。
发布你的仪表板
如果你已经按照上一节中的所有步骤操作,你应该有一个如下所示的仪表板。如果你愿意,可以通过选择 编辑仪表板 并拖放来重新排列仪表板的元素。
如果你想让你的仪表板对其他用户可用,只需在左上角的仪表板标题旁边选择“草稿”,将其更改 为“已发布”状态。你还可以通过选择星星来收藏此仪表板。
注释
注释允许你为图表添加额外的上下文。在本节中,我们将添加一个 在上一节中,我们制作了一个教程折线图。具体来说,我们将添加英国民航局在冰岛格里姆火山爆发期间(2011年5月23日至25日)取消某些航班的日期。
首先,通过导航到管理 ‣ 注释层来添加一个注释层。通过选择绿色加号添加新记录来添加一个新的注释层。输入名称“火山爆发”并保存。我们可以使用这个层来引用多个不同的注释。
接下来,通过导航到管理 ‣ 注释,然后通过选择绿色加号创建一个新的注释来添加一个注释。然后,选择“火山爆发”层,添加简短描述“格里姆火山”和爆发日期(2011年5月23日至25日),最后保存。
然后,通过转到图表,然后从列表中选择教程折线图来导航到折线图。接下来,转到注释和层部分,并选择添加注释层。在此对话框中:
- 将层命名为“火山爆发”
- 将注释层类型更改为“事件”
- 将注释源设置为“Superset注释”
- 指定注释层为“火山爆发”
选择应用以查看图表上显示的注释。
如果愿意,您可以通过更改显示配置部分中的设置来更改注释的外观。否则,选择确定,最后选择保存以保存您的图表。如果您保持默认选择以覆盖图表,您的注释将被保存到图表 中,并自动出现在教程仪表板中。
高级分析
在本节中,我们将探索Apache Superset的高级分析功能,该功能允许您对数据应用额外的转换。三种类型的转换是:
设置基础图表
在本节中,我们将设置一个基础图表,然后可以对其应用不同的高级分析功能。首先,使用相同的_tutorial_flights_数据源和折线图可视化类型创建一个新图表。在时间部分中,将时间范围设置为2011年10月1日至2011年10月31日。
接下来,在查询部分中,将指标更改为成本的总和。选择运行查询以显示图表。您应该看到2011年10月每天的总成本。
最后,将可视化保存为教程高级分析基础,并将其添加到教程仪表板中。
滚动平均
数据中有很多变化,这使得很难识别任何趋势。我们可以采取的一种方法是显示时间序列的滚动平均值。为此,在高级分析的移动平均子部分中,在滚动框中选择平均值,并将周期和最小周期都输入为7。周期是滚动周期的长度,表示为时间粒度的倍数。在我们的例子中,时间粒度是天,因此滚动周期是7天,因此在2011年10月7日显示的值将对应于2011年10月的前七天。最后,通过将最小周期指定为7,我们确保我们的平均值始终在7天基础上计算,并避免任何启动期。
通过选择运行 查询显示图表后,您将看到数据的变化较小,并且系列开始较晚,因为排除了启动期。
将图表保存为教程滚动平均,并将其添加到教程仪表板中。
时间比较
在本节中,我们将比较时间序列中的值与一周前的值。首先,通过转到顶部菜单中的图表,然后从列表中选择可视化名称,打开教程高级分析基础图表(或者,在教程仪表板中找到图表,并从该可视化的菜单中选择探索图表)。
接下来,在高级分析的时间比较子部分中,通过输入“减去1周”来输入时间偏移(注意此框接受自然语言输入)。运行查询以查看新图表,该图表有一个额外的系列,具有相同的值,时间向后偏移一周。
然后,将计算类型更改为绝对差异,并选择运行查询。我们现在只能看到一个系列,这次显示了我们之前看到的两个系列之间的差异。
将图表保存为教程时间比较,并将其添加到教程仪表板中。
数据重采样
在本节中,我们将探索Apache Superset的高级分析功能,该功能允许您对数据应用额外的转换。三种类型的转换是:
设置基础图表
在本节中,我们将设置一个基础图表,然后可以对其应用不同的高级分析功能。首先,使用相同的_tutorial_flights_数据源和折线图可视化类型创建一个新图表。在时间部分中,将时间范围设置为2011年10月1日至2011年10月31日。
接下来,在查询部分中,将指标更改为成本的总和。选择运行查询以显示图表。您应该看到2011年10月每天的总成本。
请注意,现在我们每7天只有一个数据点。在我们的例子中,显示的值对应于这七天每日数据点的中位数值。有关本节中各种选项含义的更多信息,请参阅Pandas文档。
最后,将您的图表保存为“重采样教程”,并将其添加到“教程仪表板”中。转到教程仪表板,查看四个图表并排显示,并比较不同的输出结果。