BI(Business Intelligence)模型抽象

BI产品的核心功能是数据可视化,借助数据可视化挖掘分析数据背后的价值,从而起到辅助研究或决策的作用。

近期调研了很多BI产品,包括付费的与开源的,需要根据需求决定是购买还是基于开源的扩展还是自己开发。

产品很杂,需求又总要考虑到扩展,如果每个产品都试用一遍,分析分析利弊,测试一下user story,需要的成本比较高,因此就重点看了两个比较体验与上手的BI产品(FineBI和豌豆BI),抽象出了BI模型,然后根据模型再结合需求分析分析可扩展性,以及BI产品在自己开发时的难点。

BI模型

BI产品的设计思路可以抽象为下图的模型。


BI模型抽象(原创图片)

倒着推理,想要可视化数据,其实依赖的是x和y,也就是说,想要生成图表,传给图表的数据必须是x和y(可能有z)。最简单的场景就是我们要可视化的是一张数据表,且这张表直接包含要设置的x值与y值,那么直接绘图就可以;再想要灵活一些,可能想要展示的数据不在表里,需要动态计算得出,那么要支持动态计算列,算出来后就将问题转变为上一个场景的问题,可以直接绘图;再灵活一些,可能数据都不是一张表,分散在n张表,需要从n张表做连接等运算,才能得到可展示的表,转化为上两个场景的问题。

所以,BI解决的核心问题就可以抽象为「如何从n张表x和y」的问题。这个过程就是「数据建模」,从n张表到x和y,可以涵盖BI面临的所有场景,需求再怎么扩展,也不过就到n张表。

结合上述三个场景,「数据建模」又可以拆分为「表生成」与「动态列生成」两步,「表生成」做的是把n张表变成1张表,是场景三到场景二的抽象,「动态列生成」是场景二到场景一的抽象。


BI模型

BI产品可能的扩展点

根据BI模型可以发现,BI产品的可扩展点有三个部分,即「数据获取」、「数据建模」、「数据可视化」。

数据获取的扩展点

数据获取的扩展点主要在于数据来源的多样性。数据可能来自各种种类的数据库,也可能来自文件,如果写死任何一个来源,在扩展时都会变得很难受,这个问题就抽象成了「如何屏蔽某个方向的变化,使其不影响后续步骤」,这就自然联想到“接口”的概念。为了让可视化依赖的图表与数据源不耦合,可以专门抽象出一层表,作为可视化依赖的表,如下图所示,所有数据源的内容都需要先转成这个中间依赖,这样无论数据源怎样变,只需要配置上层,不需要修改其他内容。事实上,看一些优秀的开源BI产品(比如superset)就会发现,他们都会有自己的数据库引擎,支持多种数据源,然后把数据源的数据转化成数据库引擎的数据,设计理由就是如上所述。


可视化与数据源解耦

数据建模的扩展点

数据建模的扩展点其实在分析数据建模场景的时候已经分析过了。如果你的需求比较简单,那么BI支持到动态列生成就足够,如果你的需求可能变更,并且希望变更后不需要再进行改动,那么BI就要支持表生成,这样未来不论需求如何扩展变更,开发人员都不需要再另做开发。

这里值得一提的是关于「动态列生成」存在的扩展点。


动态列生成问题分类

可以看到,动态列生成分为三个场景,对于第三个场景,想要计算A类与B类的精确率,得出x和y确实是依赖这两列,但又不是简单地「列1 / 列2」就能算出来的,对于这类场景,其实可以转化为「重组中间表」的问题,其实期望的是根据这些数据,重新得到一个「类别 | 精确率」的中间表,然后展示出来。

所以动态列生成的问题可以抽象为下图所示问题


动态列生成抽象

可视化的扩展点

可视化的扩展很容易想到,无非是多种类型的图表,然后就是交互上降低用户的成本,支持一些分享保存的常用功能,锦上添花。

BI设计难点(产品关注点)

从模型抽象以及可扩展点来看,BI产品解决方案需要考虑的首先是「如何灵活地数据重组」,可以想到的有两种方式:

  1. 用SQL之类可以实现多种逻辑的语言;
  2. 用Excel,有强大的公式算符做基础;

调研就会发现,微软的power BI就是基于Excel的,有Excel支撑,重组表和计算公式不是问题,开源的BI通常都是用SQL,也有一些小众的用plainless等语言,总之就是这些语言可以实现重组表和运算的逻辑,并且学习成本比较低。只要支持了数据重组,BI就完成了一大半。

除此之外,还需要考虑的问题是「如何使图表能够动态刷新」,由于产生了一系列的中间表,因此当原数据发生变更后,这些中间表如何随之变更,以及刷新的性能问题,是BI实现时需要考虑的重点。

总结

从模型上能得出BI的设计思路,以及重要关注点,这些关注点也是考察一款产品时需要注意的点,如果一个产品是基于SQL的,那么你看一下他能否creat table以及create view,能否自定义sql,如果能,那么他可以满足所有核心需求了,如果不能生成表,那么限制就比较大,有了模型抽象,产出各项产品的对比方案就会比较容易。

很多问题看起来五花八门,其实越往向上抽象越会发现他们的相似性,越能联想到一些已有的解决方案,一步步推出问题的解,大概就是格物致知吧。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335