PowerBI 推出企业级数据流 迎来PBI史上最大更新
近日,PowerBI 推出【数据流】,有心的伙伴可以已经留意到该更新。而据 PowerBI总架构师 Amir Netz 称:

11月对于PowerBI有重大意义,大量更新将至,这是PowerBI历史上最重大的更新,而这个里程碑就是:数据流。本文将和大家一起:
- 理解 数据流
- 理解 CDM
- 理解 数据流 及 CDM 对 BI 的深远影响
- 实践 做第一个企业数据流
背景
我们知道作为自助BI的PowerBI,具有以下优势:
- 降低对IT人员的依赖
- 增强了终端用户的能力
- 更快地从数据获得价值
这些好处无需多言,而我们也同时清楚 PowerBI 存在的痛点,或者说自助BI领域共同的痛点:
- 存在大量重复的劳动
- 数据一致性问题
- 不够高效
举个很简单的例子:如果有一个PBI文件获取了销售事实数据表达 10 亿行,但这个数据却无法用于云端其他的PBI文件;而每个文件由于获取数据和处理数据的逻辑差异导致数据差异,导致最终计算呈现结果的差异;而整个过程全部从终端用户自行发起,有很多可以重用的数据处理过程并没有得到有效整合。
这并非是一个新问题,在传统的数据仓库领域,数据仓库就是做这件事,将企业的数据统一地按照一致的业务规则整合在一起,以备分析之用。

这个过程被称为:ETL。以往这个过程将完全由IT实现,而且是一个非常繁重的过程。从一定意义上说,如果没有ETL的支持,那么BI很难真正实现。
PowerBI 引入 数据流 及 CDM
PowerBI 于 2018.11.6 正式引入 DataFlow(数据流),之前也叫 DataPool,现已统一更名为 DataFlow。其作用就是为了解除上述的痛点。
目前 PowerBI 的架构是这样的:

可以发现,其实并没有机会去做数据处理部分,这部分被完全内置在数据网关执行(M 引擎执行PowerQuery),那么引入DataFlow后:

可以简单理解为将数据准备的逻辑完全抽离出来并加以管理,以实现可以重用。那自然涉及到一个问题,处理好的数据既然是可以重用的,就必须有一个统一的存储位置,并且可以被复用,这就完美和现有的 Azure DataLake v2 结合起来,如下:

DataLake(数据湖)的概念最近也是比较火热,我们也将会后续越来越多了解这些。总之,我们知道这些数据统一被存储在Azure中以备使用(而不是存储在PBI数据集)。
如果想要统一使用数据,大家就必须遵守一致的标准,这是任何企业都面临的也是非常难做到的一个部分。对此,微软提出了CDM(Common Data Model:通用数据模型)的架构,结合微软多年经验,微软预先定义了一套实体,微软后续很多智能化的应用,都会基于CDM进行;当然,如果企业能够不断重视自己的标准,也将产生大量可重用内容。
可以从三点简单理解CDM:

- 首先,这是一套开源的定义。
- 其次,这套定义可以扩展,这样任何内容都可以兼容并包。
- 第三,这套内容可以跨越多种应用使用。
可以在这里看到其开源的定义:
https://github.com/Microsoft/CDM
首先我们可以看到:

CDM将成为微软生态承载所有企业应用数据的中心,而且作为一种标准,所有的应用都可以直接利用其数据,由于其定义是标准的,那么甚至可以直接拖拽出一个App来,这就是PowerApps(我们将在后续进一步分享)。
微软预先定义了这些标准:

这些标准定义是成熟的,得益于微软多年在企业相关产品的积累,现在把这些定义标准化并开源,如果软件的开源可以带来生产力,那么数据标准的开源也将带来重大生产力,也许你的企业已经有对例如销售的Order的定义,那么可以将已有的定义与微软CDM中Order进行映射(稍后案例中提到)。
这样,PowerBI 与其他应用将形成一种统一的底层数据:

因此,所有应用(微软及非微软的),都可以按照CDM的标准,通过数据流导入到CDM存储中,PowerBI作为企业统一BI平台可以重复利用这些一致的数据。
值得想象(并非想象)的是,由于这些内容实际使用Azure DataLake存储,基于Azure DataLake,微软提供了AI和Machinelearning等服务,考虑到这里又使用了CDM,也就是标准的定义,那么AI将很容易引入数据分析成为一种服务,而无需复杂开发。这将是对企业的重大利好,也是微软在Bigdata&BI&AI的巧妙结合,这对竞争对手来说,是挺头疼的了。
实践 PowerBI 数据流
如果以上都看不懂,也没事,我们来实际操作进行体验。这些都是针对企业的设计,所以请不要问是不是免费之类的问题。
首先,你需要有一个PowerBI账号(可以用所在企业的邮箱免费注册,并试用Pro版2个月),登录到PowerBI后,我们建立一个工作区,例如叫:Demo,然后可以看到:

在右上角点击:

可以建立一个数据流:

要知道这个数据流会帮你将任何数据统一流入到一个Azure的数据湖。这里其实有两个选项:
- 利用已有数据流(Premium版功能)
- 定义新实体
因为这里不是 Premium,所以选择定义新实体:

你看到了熟悉的东西,这些都是PowerQuery的功能,没错,数据流让用户定义PowerQuery查询,并通过数据网关来执行PowerQuery将本地数据导入Azure数据湖,例如这里选择Excel类型,如下:

这需要提前安装数据网关,这是免费和快速的,这里就不再赘述,然后:

如果我们的文件路径是已经授权过网关的,这里将自动识别代入,然后:

看到了更加熟悉的界面,选择我们要导入的内容,下一步:

可以像在 PowerQuery 中一样操作,非常轻松。这里可以看到映射到标准,如果点击,则:

这就是刚刚提到的CDM标准实体,我们可以选择试题类型为 Order,然后将可以映射的字段进行映射。
类似的,还可以导入SQL Server的数据:

这样在这个数据流的定义中就将获取Excel和SQL Server的数据,如下:

如果定义完毕,点击完成即可。这样我们就定义了一个数据流:

然后,可以点击【刷新】来刷新数据,也就是将数据刷入CDM,刷入Azure DataLake,如下:

至此,我们已经有了一个数据流,而且可以像其他PowerBI数据集一样设置定时刷新,当然,数据流是支持增量刷新的,如下:

这段注解真的是相当友好。
既然有了数据流,应该怎么用呢?
使用数据流
打开 PowerBI Desktop,点击获取数据,如下:

选择 PowerBI 数据流,如下:

我们看到了很熟悉的内容,接下来就全是导入到PowerBI的事情了,该轮到PowerBI的能力了。
另外,大家可能关注定价和能力,大致如下:

具体等微软公布,以为准。但很明显,Premium是大型企业之选。
总结
数据流,只是一个表面的概念,在其下面,有微软的一盘大棋,而本月(2018.11)也将迎来更多PowerBI的更新,我们会再做介绍。
- 有了数据流,就可以将企业所有数据汇入统一地点,并实现自动化(无需太多编程,数据处理的逻辑可以用PowerQuery进行)。
- 有了CDM,就有了统一的标准定义,可以基于标准快速实现App等应用。
- 有了数据湖,就有了大数据,并基于大数据和CDM利用微软的服务进行你能想到的任何事:AI,ML它们无需开发,只是服务。
让我们一起期待吧。
最近各种事情,有段时间没有更新,本月将补上,而屯的干货也更多。