一文带你看懂为什么Smartbi V10要打造全新的数据模型?

首先,要搞清楚什么是“数据模型”?

现实世界中的事物要让计算机进行管理,必须通过“数据模型”对其进行抽象、模拟,然后再存放在数据库系统里面。

数据模型有不同的建模方法,最常见的就是“范式建模”。业务数据库、数据仓库通常都会采用这种建模方法。

但是,面向数据分析的数据集市一般会采用“多维建模”。

这也是源于日常数据分析的场景。

例如,一个企业在考虑产品的销售情况时,通常从时间、地区和产品的不同角度来深入观察产品的订单数、销售金额、同环比增长。

从这个例子中,可以抽象出两部分的内容:维度和度量。

维度有时间、地区、产品,是观察数据的一种角度。

度量有订单数、销售金额、同环比增长,是数据聚合运算的结果。

这种以维度和度量来组织数据的方法,叫做“多维模型”,包括维度表和事实表。

维度表储存维度的描述,信息比较固定,且数据量小。

事实表储存维度和度量,度量通常是数值类型,且记录数会不断增加。

数据集市是用来做数据分析的,采用“多维建模”的方法,再合适不过了。

一文带你看懂为什么Smartbi V10要打造全新的数据模型?_第1张图片

一、数据模型的多维建模

虽然数据集市已经做好多维建模,但是需要专门的数据人员来设计,对于整个BI系统的开发来说,敏捷性和灵活性都不够。

如果BI产品把“多维建模”的能力也整合进来,BI技术人员可以按照需求随时进行可视化建模,效率将得到极大提升。同时,通过产品构建的多维模型,可以和上层应用做更好的协同,产品功能将得到全面增强。

这就是Smartbi V10实现多维建模的初衷。

Smartbi V10的多维建模支持星型模型、雪花模型、星座模型等多种模型:

一文带你看懂为什么Smartbi V10要打造全新的数据模型?_第2张图片

例如,一家零售企业要看全国商店的盈利明细,还有各城市“每平盈利”排行榜以及分布。

在Smartbi V10数据模型中,把相关的事实表(销售、商店)、维度表(产品类别、产品信息)用鼠标拖进来,并根据表之间的关系(多对一、一对多、内连接、外连接)做好关联:

一文带你看懂为什么Smartbi V10要打造全新的数据模型?_第3张图片

在“度量”区域通过简单操作生成各种指标:

一文带你看懂为什么Smartbi V10要打造全新的数据模型?_第4张图片

然后在“自助仪表盘”里面基于这个数据模型,即可快速生成以下仪表盘:

一文带你看懂为什么Smartbi V10要打造全新的数据模型?_第5张图片

二、数据模型的多种查询类型

数据模型需要解决一个关键的问题:源数据怎么取?

数据的来源多种多样,在Smartbi V10之前版本中也存在多种数据集,包括SQL、存储过程、即席查询、Excel文件和JavaScript脚本等。而在Smartbi V10中,只有“数据模型”一个入口,可以查询各种类型的数据,并且支持跨库数据整合:

一文带你看懂为什么Smartbi V10要打造全新的数据模型?_第6张图片

查询的多样化,可以让数据模型的构建更加灵活。

例如,要统计银行各营业部,近5天购买金融产品金额超过1万的客户数,这里涉及到二次汇总的问题。在Smartbi V10数据模型里面,用“即席查询”把满足条件的客户先查询出来:

一文带你看懂为什么Smartbi V10要打造全新的数据模型?_第7张图片

然后对查询出来的结果(事实表)创建“客户数”的度量即可:

一文带你看懂为什么Smartbi V10要打造全新的数据模型?_第8张图片

多种查询类型也可以联合使用。例如,一名业务员需要分析销售数据,但是有关数据都放在不同的地方,部分数据是放在个人电脑的Excel上:

一文带你看懂为什么Smartbi V10要打造全新的数据模型?_第9张图片

这个时候怎么办呢?下面做了演示:

一文带你看懂为什么Smartbi V10要打造全新的数据模型?_第10张图片

三、强大的计算能力

Smartbi V10数据模型具有强大的计算能力,体现在两个方面:ETL数据处理和多维计算。

在建模过程中,融合ETL的强大数据处理能力对源数据进行预处理,包括筛选、去重、拆分列等。数据模型里面的表、SQL、存储过程、即席查询等都可以直接转ETL高级查询,从而实现复杂数据场景的处理,并且解决大表关联的问题,避免系统崩溃。

例如,订单表里“订单编号”字段存在重复的值,我们可以在查询订单表的ETL流程中,利用“去除重复值”的功能节点进行去重,也可以拆分字段:

一文带你看懂为什么Smartbi V10要打造全新的数据模型?_第11张图片

Smartbi V10数据模型同时具有多维复杂计算能力,支持自定义成员和自定义命名集。

自定义成员指基于原有维度成员的基础上创建新的维度成员,成员可以是单个对象,也可以是成员的集合。

例如要新建一个“一线城市”的维度,在“新建计算成员”页面下把对应的城市拖进来即可:

一文带你看懂为什么Smartbi V10要打造全新的数据模型?_第12张图片

然后在上层应用就可以直接使用“一线城市”这个维度了:

一文带你看懂为什么Smartbi V10要打造全新的数据模型?_第13张图片

自定义命名集可以包含固定的维成员集,也可以包含能解析为集合的表达式。

例如要新建一个“销量排名前3的城市”,在“新建命名集”页面下,选择系统提供的MDX函数和对应的维度和度量,后续在应用里面就可以直接使用了:

一文带你看懂为什么Smartbi V10要打造全新的数据模型?_第14张图片

四、灵活的数据加载

Smartbi V10数据模型提供“直连”和“抽取”两种数据加载模式。

当企业出于数据安全考虑,不允许数据加载到其他系统;或者数据频繁变化,又要求看到最新的数据;或者数据量大且客户本身的存储性能很高时,适合用直连模式。

导入文件、脚本查询、ETL高级查询、存储过程查询必须用抽取模式。如果原始数据性能慢,希望提升查询速度;或者数据变化频率不高的情况下,也适合用抽取模式。

此外,Smartbi V10数据模型也支持“按次抽取”。例如需要实时数据,但又无法使用直连方式(如模型含存储过程);或者模型中的一部分数据和用户有关(如权限),同时又不能使用直连方式。这些情况下,Smartbi后台的缓存库按session 、查询的参数组合进行抽取存储,当环境发生变化时就重新抽取。

正如一部汽车的动力取决于引擎,Smartbi V10通过打造全新的数据模型,封装更多的操作并进行优化,从“引擎”上提高效率,为上层应用(自助仪表盘、电子表格等)输出更澎湃的“动力”,全面提升产品的功能性和便捷性。

你可能感兴趣的