天天看点

基于开源可视化数据探索平台 Superset 的指标体系建设

作者:数据筑梦空间

Apache Superset 是一款开源的现代数据探索和可视化平台,具有快速、轻量级、直观的特点,并且提供多种的能力,使不同用户都能够轻松探索和可视化数据。Apache Superset 目前最新的版本是 2.0.0,除了能像之前的版本一样,能够接入绝大多数常见的数据源,还内置了部分 Apache ECharts 图表,并且提供了数据看板认证的功能。

本文提供一个指标体系建设的示例来说明,如何在 Superset 上创建一个数据口径一致的自助数据看板。通过这个示例,不仅可以了解到基础指标、派生指标、修饰类型、修饰词、时间周期等概念,还能够了解如何在 Superset 上创建一个口径统一的指标看板。

基于开源可视化数据探索平台 Superset 的指标体系建设

创建指标体系示例

1.使用和查看数据源数据

基于开源可视化数据探索平台 Superset 的指标体系建设

superset.birth_names 这张表中包含 7 个字段:分别是:ds、gender、name、num、state、num_boys、num_girls。

2.指标体系示例

使用上述数据表搭建一套简单的指标体系示例,来说明:基础指标、派生指标、修饰词、时间周期、维度、度量等概念。

基于开源可视化数据探索平台 Superset 的指标体系建设

3.创建基础指标

指标的创建需要根据业务场景来制定的,制定好的指标要为业务服务。

这里我们以 出生取名字 这个 业务过程 为例,来制定一个 出生人数 的指标,该指标要支持在 年份、性别、姓名、地区 这 4 个维度上进行下钻分析。

按照这个指标需求,可以定义以下基础指标的技术口径(SQL):

-- 基础指标:出生人数

SELECT ds AS '年份',
       gender '性别',
       name AS '姓名',
       STATE AS '地区',
       sum(num) AS '人数'
FROM superset.birth_names
GROUP BY ds,
         gender,
         name,
         STATE;           

4.创建派生指标

  • 单维度派生指标:出生地为“CA”的出生人数。该指标的修饰类型为:地区;修饰词为:CA。
-- 单维度派生指标:出生地为“CA”的出生人数
-- 按照地区下钻

SELECT DATE(`年份`) AS `年份`,
       `地区` AS `地区`,
       `性别` AS `性别`,
       `姓名` AS `姓名`,
       sum(`人数`) AS `SUM(人数)`
FROM
  (SELECT ds AS '年份',
          gender '性别',
                 name AS '姓名',
                 STATE AS '地区',
                 sum(num) AS '人数'
   FROM superset.birth_names
   GROUP BY ds,
            gender,
            name,
            STATE) AS virtual_table
WHERE `地区` IN ('CA')
GROUP BY DATE(`年份`),
         `地区`,
         `性别`,
         `姓名`;           
  • 双维度派生指标:出生地为“CA”、姓名为“James”的出生人数。该指标的修饰类型为:地区的修饰词为:修饰词为:CA;修饰类型为:姓名的修饰词为:James。
-- 双维度派生指标:出生地为“CA”、名字为“James”的出生人数
-- 按照 地区/名字 下钻

SELECT DATE(`年份`) AS `年份`,
       `地区` AS `地区`,
       `性别` AS `性别`,
       `姓名` AS `姓名`,
       sum(`人数`) AS `SUM(人数)`
FROM
  (SELECT ds AS '年份',
          gender '性别',
                 name AS '姓名',
                 STATE AS '地区',
                 sum(num) AS '人数'
   FROM superset.birth_names
   GROUP BY ds,
            gender,
            name,
            STATE) AS virtual_table
WHERE `地区` IN ('CA')
  AND `姓名` IN ('James')
GROUP BY DATE(`年份`),
         `地区`,
         `性别`,
         `姓名`;           
  • 时间维度派生指标:2006-2008年、出生地为“CA”、名字为“James”的出生人数。该指标在上面的双维度派生指标的基础上,增加了时间周期:2006年 - 2008年期间。
-- 时间维度派生指标:2006-2008年、出生地为“CA”、名字为“James”的出生人数
-- 按照 时间/地区/名字 下钻

SELECT DATE(`年份`) AS `年份`,
       `地区` AS `地区`,
       `性别` AS `性别`,
       `姓名` AS `姓名`,
       sum(`人数`) AS `SUM(人数)`
FROM
  (SELECT ds AS '年份',
          gender '性别',
                 name AS '姓名',
                 STATE AS '地区',
                 sum(num) AS '人数'
   FROM superset.birth_names
   GROUP BY ds,
            gender,
            name,
            STATE) AS virtual_table
WHERE `年份` IN (STR_TO_DATE('2006-01-01 00:00:00.000000', '%Y-%m-%d %H:%i:%s.%f'),
               STR_TO_DATE('2007-01-01 00:00:00.000000', '%Y-%m-%d %H:%i:%s.%f'),
               STR_TO_DATE('2008-01-01 00:00:00.000000', '%Y-%m-%d %H:%i:%s.%f'))
  AND `地区` IN ('CA')
  AND `姓名` IN ('James')
GROUP BY DATE(`年份`),
         `地区`,
         `性别`,
         `姓名`;           

至此,我们创建了 1 个基础指标,3 个派生指标。由于 3 个派生指标是由同 1 个基础指标派生而来,能够保证指标的数据口径是一致的。

在 Superset 中制作自助报表

1.创建数据集

基于开源可视化数据探索平台 Superset 的指标体系建设

打开 Superset -> SQL 工具箱 -> SQL Editor ,使用上述基础指标的 SQL,SAVE AS 一个名为 metrics_birth_names 的数据集。数据集创建好之后,可以在 数据 -> 数据集 中找到。

基于开源可视化数据探索平台 Superset 的指标体系建设

2.制作图表

使用上述创建好的数据集,创建一张数据表类型的图标。将左侧的数据列中依次拖入中间部分的 维度 和 指标 框中,点击 CREATE CHART,生成数据表。

基于开源可视化数据探索平台 Superset 的指标体系建设

在生成的图表中,点击右上角的 View query,查看图标对应的 SQL ,验证图表的 SQL 与基础指标的 SQL 基本一致。

基于开源可视化数据探索平台 Superset 的指标体系建设

使用相同的数据集和步骤,创建其它类型的图表。

3.制作指标看板

将制作好的图表拖到同一张指标看板中。

基于开源可视化数据探索平台 Superset 的指标体系建设

4.验证和发布指标看板

指标数据看板上,每张图表的右上角都有 View query 菜单,通过点击该菜单来验证每张图表的数据口径。

基于开源可视化数据探索平台 Superset 的指标体系建设

指标看板上图表的口径验证完之后,标识成已认证,并正式发布。

基于开源可视化数据探索平台 Superset 的指标体系建设
基于开源可视化数据探索平台 Superset 的指标体系建设

总结

本文基于 Superset 2.0 自带的数据集,定义了一套 出生取名字 的指标体系示例,包括 1 个基础指标,3 个派生指标。通过这套指标体系,创建了 Superset 的图标和看板,并且演示了如何验证图表的以及看板的数据口径。数据口径验证无误之后,认证并发布自助指标看板。

继续阅读