华人澳洲中文论坛

热图推荐

    从探究式数据剖析到古代 BI 仪表盘:Superset 2.0

    [复制链接]

    2023-1-31 10:05:04 57 0

    导读:本次分享的佳宾是赵勇杰教师,他是 Superset 的 PMC member,同时也是 Preset 全职的工程师,在全职保护 Superset 的社区,也是 Superset 的中心开发者;本次分享标题问题为——从探究式数据剖析到古代 BI 仪表盘:Superset 2.0。
    明天的分享会环抱下列几点展开:
    Apache Superset 历史Apache Superset 功用数据探究数据探究 Demo 演示DashboardsDashboards Demo 演示Tips分享佳宾|赵勇杰 Preset inc. Senior Data Engineer
    编纂整顿|王超 aasgz
    出品社区|DataFun
    01
    Apache Superset 历史
    Apache Superset 最后源于 Airbnb 外部的一个 hackathon 名目,最先的 co妹妹it 应该是来自于2015年,时间很远了,离当初有七八年的时间,通过多年的孵化,Superset 于往年也就是 2022 年终结业,成为 Apache 的顶级名目。
    同时 Superset 也是 GitHub 上在 BI 和可视化化畛域外面 Star、Fork 和 Maintainer 至多的名目之一。


    Superset 不单单被被 Airbnb 和 Preset 所保护,保护 Superset 的公司有得多,好比像 Apple、Dropbox 都会有一些全职的工程师来保护 Superset 的名目。所以 Superset 名目变得愈来愈大,功用也是愈来愈多。
    我明天只是侧重的引见一些数据联通性和数据探究式剖析外面的一部份,这些货色是 Superset 最中心的功用,但这些功用也仅仅是 Superset 的冰山一角。
    02
    Apache Superset 功用


    1. Superset 是 Python 的名目,能够利用 Superset 的 DBAPI2 接口来反对一切的瓜葛型数据库的衔接
    关于 Python 的 DBAPI2 接口,你只需求很简略的完成 Connection 和 Cursor 的 interface 即可以十分疾速的开收回来新的新的 DB dialect,这让一切新泛起的瓜葛型数据库均可以十分容易的接入 Superset。
    2. Superset也有一个功用十分片面也十分弱小的 SQLLab IDE
    假如您用过 Hue,SQLLab和 Hue十分像,然而它的一些功用会比 Hue 要略微弱小一些,而 SQLLab 也仅仅是 Superset 外面的一个模块。SQLLab 发生出来的 visual dataset 也能够提供后果集给 Charts 和 Dashboards 去使用。
    3. Superset 反对十分多的可视化图表
    50多种可视化图表是 Superset 所内置的,还能够经过Superset的前端可视化的插件十分便利的定制共性化的图表,而定制化出来的图表彻底能够使用 Superset charts 数据探究一切的工具。
    4. Charts 能够放在 Dashboards 上,还能够做得多种的数据筛选
    在 Dashboards 上能够对下面的 Charts 做各种各样定制化的修正。
    5. 插件零碎(Plugins)
    Superset的插件零碎也十分弱小,能够本人定制新的图表和过滤器。
    6. 按时讲演(Reports)
    其次是按时讲演功用,能够去设定一些按时的工作,让Superset按时的发Charts或者Dashboards。
    7. CSS 定制模版(CSS Template)
    Superset的前端是能够高度自定义的,能够十分便利的经过自定义的CSS Template来定制全部Superset的款式,好比说字体、配景色彩以及配色的计划。
    8. 数据行级别权限, 按照登陆用户映照查问前提
    最初是一些企业用户十分感兴致的内容,能够经过一些配置十分便利的来映照不同登录用户,能够看到不同的用户行级的权限。
    举个例子,好比说您能够定义username到where子句的映照,这样不同用户登录进零碎就会看到不一样子的数据。
    03
    数据探究
    数据探究是一种数据剖析的办法,剖析师能够用可视化伎俩剖析数据。这也是Superset 有别于其余的可制化工具十分大差别的产品特性。我方才看有敌人在社区外面问它和 Grafana 有甚么样的区分,数据探究就是和 Grafana 有十分大差别的特性。


    1.拖拽式 UI 设计
    您能够去用拖拽式的用户体验来拖拽您的目标和维度。
    2.平滑切换不同可视化图形(new feature)
    好比说您做了一个线图,能够十分便利的把它切换成条形图,或者是把它切换成普通的table或者散点图。目的是为了让您能够很便利的来剖析数据,好比说线图能够很便利的来看数据的趋向,而三点图能够很便利来看数据的散布。
    3. 维度和目标都可以 customized SQL snippet
    这个看起来是很罕用的功用,它能够带来甚么样的价值呢?我在开发Superset的过程中以及和客户聊需要傍边觉得到这个功用看起来是很往常的功用,然而对得多用户十分有用,由于不同的用户上游的 DB 或者是data warehouse用的是不同的产品。好比说有些人会去用ClickHouse,有些人去用Presto,有些人去用BIgQuery,不同的data warehouse会有不同的Fuction以及它自定义的一些表白式,编程没有方法特别快的去响应不同的data warehouse的一些新的UDF或者是它自定义的一些Function。假如一个BI产品能够让您很便利的去写一些自定义的SQL片断,那末您就能百分之百地去利用上游data warehouse或 DB 的一些才能。
    4. SQL 预览/后果集/数据采样
    这也是剖析师罕用的一种剖析场景,当您看到了可视化的图形,您也同时想看是哪些SQL发生的这些图形,以及哪些数据集生成的这些可视化图形。数据采样也不必多说了,每个剖析师都但愿在剖析以前先看看数据集外面究竟有哪些数据、哪些数据类型。
    5. 初级时间剖析: 时间平移/采样/转动计算
    详细的业务场景好比说当您做year to date或者是year over year均可以使用,中文叫做同比、环比或者是计算从以后到往年初的一些目标。
    6. 初级时间剖析: 预测剖析
    您能够本人加载得多的预测剖析的库,在Superset外面的时间剖析图外面很便利的使用一些预测的剖析。
    7. 注解层
    注解层我感觉应该是得多BI工具都会有的,您能够十分便利的在可视化图形外面加载某目标的一些阈值,当超过一些阈值,能够给您发送一些讲演。
    8. 按时发送讲演
    Superset 的 charts 和 dashboard 都反对按时发送讲演,您能够去使用一些Celery 的工作,或者是某些目标触发的规定,就能给您按时的发送一些讲演到邮箱或者slack外面。
    9. 各种分享URL/Email/embedded codes
    同时Superset的探究界面以及dashboard的界面都反对各种各样的分享,好比说URL分享、以Email分享,或者是您想把dashboard或者explore页面经过iframe的形式嵌入到您已有的企业 Portal 外面。
    04
    数据探究 Demo 演示
    因为Superset是可视化的名目,我这么讲不像其余教师那末便利,我接上去要做一个live demo,我昨天录了一个两分钟的视频给您演示一下数据探究界面。demo外面次要想给您演示目标维度的拖拽,在时间剖析或目标剖析外面,x轴能够自动的顺应您时间轴,或者是分类的轴,时间过滤器、时间挪动剖析、数据预览和采样的功用。


    我当初使用superstore这个数据集来演示一下explore界面,首先我进入到Superset 2.0的explore界面,最左边是能够筛选目标和维度的 Side Bar。


    两头是能够当选上的一些control,最右边是可视化画界面和数据预览的界面。
    我当初要拖拽一个目标和维度到control panel,我选择了一个目标是Sales,而后选择了聚合形式是SUM,而后我还会去选择时间的粒度,时间的粒度是Ship Date。


    咱们当初来做一个轴线图,您能够看到这个折线图是一个以天为单位的折线图,咱们能够很便利的修正时间的粒度,成天改成到月,咱们也能够很便利地把它改为周。


    当初咱们接上去是是要拖拽一个非延续的维度到轴外面,我拖了一个Region到轴外面,它会自动的把Line图再也不使用延续的维度值,而会使用离散的维度值绘制图形。而离散的值不太合适用线图表现,所以咱们把它切换到Bar Chart。
    这也是Superset 2.0新出的一个feature,Superset内置的50多种visualization都是能够十分轻松的、自在的、不会丧失任何control信息的切换。而这些查问都是实时发到您的db或者data warehouse,不是把这些数据load到BI层。
    咱们再把它切换成线性图,咱们仍然去用Order Date作为它的x轴
    这时候候咱们加一些时间过滤器,时间剖析在可视化剖析外面是最繁杂的一种剖析形式,由于它的时间选择会十分多,咱们能够去写一些时间的表白式很便利的选一些时间的规模。我这外面只写了很简略的一个时间表白式,应该能够写一些很繁杂的,它会按照不同的db,去翻译成一切db所顺应的时间的Function。


    这是Superset对比有特征的特性,能够去做一些时间的平移,是说您想要看以后的目标和您选择时间平移之间目标的一些差别,好比咱们选一年前的目标,我想要看一年前这些目标的值是很容易患到的。


    同时我也能够手动输出一些表白式来看一年之后的目标是甚么模样,假如一年之后无数据的话,其实计算形式还有得多。
    数据预览也是间接往数据库发一些查问,能够看到您以后的数据集里一切列和一切数据。


    同时你也能够很便利的预览可视化是由哪些SQL组成的,这些货色均可以十分便利的复制到您的剪切板,能够十分便利再去用其余的数据剖析工具来剖析
    05
    Dashboards
    当您把一切的Charts放入Dashboards之后,就会生成一个仪表盘,我们中文常常管它叫做大屏或者是一些甚么样的产品。当些Charts放入仪表盘之后,就能在Dashboards外面做更丰硕的一些操作。


    1. Native Filter
    Superset 2.0有一个新的功用叫做Native Filter,它曾经和原来的Filter Box的Charts曾经纷歧样了,它是独立于一切Charts的筛选器,您能够在截图的最左边看到一个side bar,您能够去设定十分十分多种的过滤器,去对一切的Charts,或者是您指定了一些Charts进行过滤操作。
    2. 多标签
    Superset的Dashboards反对很丰硕的标签操作,您一个Dashboards外面有得多tab,不同tab能够有不同的上下文来形容您的故事
    3. 每个 tab 外面有行和列的规划
    4. Markdown
    除了反对些根本的Charts,在Dashboards上你还能够很便利的拔出曾经link、图片或者是Markdown,您能够写一段形容
    5. Cross Filter
    上面一些就是当初开发傍边对比酷炫的一些功用,好比Cross Filter,Cross Filter就是能够经过点选一些图上的维度让全部仪表盘去进行筛选操作 我一会也会做演示。
    6. Drill Through(下钻到明细)
    接上去是Drill Through的功用,我刚刚看到也有人在群外面问是否有Drill Down的功用,其实去年我做了一个POC for Drill Down,然而公司但愿要做到更好,往年先完成了Drill Through,Drill Through在Superset外面叫做Drill to Detail,您能够经过在图上点选维度,把维度最具体级别展现出来,这个功用当初曾经开发终了,而且能够使用,一会儿我也会去做演示。
    7. 对 Charts 最大化, Charts 数据获得
    在仪表盘上不只能够做这些货色,还能够做一些好比您有得多Charts在仪表盘上,您能够对Charts最大化,还能够查看Charts前面究竟有哪些SQL,Charts外面究竟有哪些数据均可以经过很简略的Click来获取。
    8. 自动刷新
    还同时反对自动刷新,自动刷新更像是一些监控工具一切的,大家应该都会用过Grafana或其余的工具,您能够去定义秒级的或者分钟级别的去刷新。
    06
    Dashboards Demo 演示
    接上去是Dashboards的demo,对比简略,由于Dashboards的功用太多了,我就找一些我集体觉得到最首要也应该是可以给大家在出产环境外面用到的一些功用做一些演示。


    这是Superset自带的一个Example的Dashboards,这个就是一个Native filter,当初我设定了叫做user filter的过滤器,它能够经过用户的名字过滤一切的Charts 。


    很贴心的是,这些一切的过滤器上在图上都会有一些的【?】,去告知您它是不是过滤了,是不是没有过滤,这个过滤器是不是对我没有影响。


    这是一个时间过滤器,时间过滤器同时也能够运用在Dashboards上,因为我的数据仅仅是样历数据,它不是实在出产环境,好比说我要过滤last week是无奈过滤出来的,我这里只是给大家演示一下,并无真实的把query发送上来。


    接上去给大家Native Filter的界面,这也是Superst 2.0十分严重的更新。是彻底独立于Charts的过滤器,您能够在外面设置十分十分多种的过滤形式。


    并且还能够设置这个过滤器能够apply的规模,好比说全部Panel,或者我能够让过滤器仅仅运用于某些Charts,而不是全部Panel。


    Drill to Detail特性曾经反对了大少数的图形,好比Tree Map,能够经过点击channel name就能看到具体数据有哪些。这在出产环境傍边是十分罕用的。值得一提的是这个页面上明细数据查问,它会用剖析的形式向底层的数据库或者是data warehouse去下发查问。
    接上去演示的功用是Cross Filter ,您能够经过点击图外面特定的dimension去筛选其余图,我经过点击general同时把filter发送到其余图外面,你能够看到它的Members per Channel就是general。


    我选此外一个dimension的值,它会发送其余的值。
    接上去这个功用您在一切页面能够去用到的对于查的功用,在Dashboards外面均可以去用到。我置信这个功用得多竞品的BI可能都没有做到,您能够预览SQL。


    就能看看好比慢查问究竟是发了哪些查问,这模样我能够用一些第三方的工具去来explain我这个查问。


    这里我能够去看看我的可视化究竟是用哪些数据绘制出来的。


    最初大家能够看到,其实这下面均可以复制,十分便利的让您经过用Superset把这些你想要失掉动件的数据去它复制到剪切板或者其余工具外面。我想这也是古代BI工具必不成少的特性,它不会禁止您对数据的任何操作。
    07
    Tips
    接上去我给您引见两个除去方才一些十分常见的一些功用引见,我就两个Superset使用或者说是开发上能够帮忙大家在出产环境外面用起来Superset的两个tips。
    1. Feature Flag
    首先一个tips叫做Feature Flag,Superset外面有十分十分多的一些试验性的功用,叫做Feature Flag,这些些Feature Flag在开发傍边默许是封闭的。当开发终了才会把一些feature默许设置为True,您假如间接下载了Superset的package或者是镜像,某些特性是用不了的,所以您必需在config外面关上才能够使用。
    想要关上的办法也十分简略,您去Superset目录下的config.py,查看您想要修正的Feature Flag,看看是哪个,举个例子,好比说是CLIENT_CACHE,
    您想要关上CLIENT_CACHE功用,你就把key-value的值写到Feature Flag字典外面,而后功用就关上了。您就能去享受一些还在开发傍边或者是一些试验性的功用。


    我举个例子,好比说当初这个DRILL_TO_DETAIL,当初它的默许是False,您就把DRILL_TO_DETAIL改成True,那末您在 Dashboard 上就能看到的Drill to Detail功用了。
    2. 制造自定义可视化插件
    第二个tips是对于自定义可视化插件。大家都知道可视化名目最大的需要是,每个公司或者每个组织对可视化的需要是千差万别的,那有些公司会去有需求一些十分有定制化的可视化。这模样一些开源的可视化库没有提供怎么办呢,那末您一定就得从头本人写一个。


    Superset提供了可视化插件的一个功用,我感觉也是Superset的十分有竞争力、十分好的功用。您不需求写太多代码,您只需求用前端工具能够自动的生成一个插件的模板,您略微的修正修正就能把您做好的插件彻底顺应Superset生态外面的Dashboards、explore等等一些货色。我把教程的链接放到这里:http://preset.io/blog/building-custom-viz-plugins-in-superset-v2,您能够去点击看,十分快,只需求几步,您只有有一点点前真个常识就能去生成自定义化的前端插件。好比说当初我生成为了Hello World的插件,它的作用是把我query的内容经过json的形式它展现出来。
    我明天的talk就讲完了,最初我贴一些名目的地址。


    十分欢送各位去Superset的github社区(http://github.com/apache/superset)外面去提Issue、PR或者是去Discussions发言。
    其次Superset也有一个十分活泼的slack频道,您能够去外面去发问题,外面有十分多的人,天天都会有十分十分多的人去探讨。
    再次是Apache Mailing list,然而Mailing list用的人对比少,和其余的名目不太同样。
    最初是Preset的Blog(http://preset.io/blog/),Preset Blog会有得多高品质的教程或者是release notes,大家能够去去看,能够看到Superset最新的一些信息。
    08
    问答环节
    Q1:Superset在探究后固定上去的数据API能够提供应内部API办理器,让其余运用来使用数据吗?
    A1:Superset和Tableau、Power BI有十分大的差异是它没无数据提取的进程,它一切的查问都是间接下发到上层的db和data warehouse,它没有方法抽取数据到它外部的存储。然而Superset无数据查问的API,能够供您使用,您能够去看Superset API的Document。
    Q2:自助迁延拽得多状况下是建设在数据集上的,那末基于该数据生成的BI看板或报表界面中的filter前提为何不克不及透传到数据集外部,当初大部份是基于数据集外添加过滤器,不是很影响查问机能吗?
    A2:Superset颇有特征的一点是下发查问间接到db或data warehouse,其实不存这些数据。Superset的机能瓶颈不是在于Superset自身,而是在于上游的db或者data warehouse, 也是当初数据栈的特征,每一个层做好本人的事就患了。
    Q3:基于数据集下拉筛选前提目前都是基于数据distinct得操作,能够去绑定伪表吗?
    A3:我了解您的意思,一些高基维的维度表假如是间接下发count distinct,就很难查问回来,假如您间接下发到此外的维度表的话,下拉筛选的机能会好得多,Superset是能够去做这类修正的,然而当初开源版本没有做这方面的修正,不外应该能够经过对比简略的一些 hack 去完成。这也是开源名目无意思而且让得多大公司、一些出名的互联网公司去Fork、去使用的缘故。
    明天的分享就到这里,谢谢大家。
    |分享佳宾|


    赵勇杰
    Preset inc. Senior Data Engineer
    2020年末作为全栈工程师参加Preset Inc.,参预研发Apache Superset 1.0 / 1.5 / 2.0的研发。当初是Superset中心开发者,于2021年成为Apache Superset PMC。关注于数据可视化,可视化语法,SQL查问结构器,BI语义模型和瓜葛代数。
    |《数据智能常识地图》下载|
    上下滑动????,查看《数据智能常识地图》数据集成板块(点击可看大图),关注大众号“大话数智”,下载残缺版常识地图


    |DataFun新媒体矩阵|


    |对于DataFun|
    专一于大数据、人工智能技术运用的分享与交流。发动于2017年,在北京、上海、深圳、杭州等城市举行超过100+线下和100+线上沙龙、论坛及峰会,已约请超过2000位专家和学者参预分享。其大众号 DataFunTalk 累计出产原创文章900+,百万+浏览,近16万精准粉丝。

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    返回列表 本版积分规则

    :
    注册会员
    :
    论坛短信
    :
    未填写
    :
    未填写
    :
    未填写

    主题27

    帖子39

    积分167

    图文推荐