实时连接
话说上回,我们提到了Power BI连接数据的三种方式:导入(Import),直接查询(Direct Query)和实时连接(Live Connection)。我们日常工作和学习中,用得最多的可能是导入方式。该方式在功能上没有任何限制,最大限度地发挥了Power BI集数据清洗、建模、可视化等为一体的优势。但该方法也有不足。比如当数据量相对较大时(如几张表的记录有几十万条以上),导入和刷新数据,都会耗费相当长的时间,也占本地空间较多。
实时连接是解决数据量大时加载和刷新缓慢的一个很好的替代方案。该方式无需导入数据,因此加载和数据刷新的时间大大缩减。pbix文件的体量也小很多。下图两个相同的pbix文件,上方为实时连接方式,下方为导入方式。前者大小不足1M,后者36M,相差超过36倍。两者在Power BI报表服务器上加载刷新的时间也大有区别。前者首次加载约3-5秒,后者则是10秒起步。
实时连接方式,把原先在Power BI desktop文档里进行的数据清洗、模型构建和度量值的构建,都转移到外部,Power BI desktop无法进一步对数据和模型进行加工,仅仅充当可视化工具的作用。而数据清洗、建模的工作,则交给了源头的数据集。支持实时连接的数据源(https://docs.microsoft.com/en-us/power-bi/connect-data/power-bi-data-sources#data-sources-s )相对较少,SSAS是其中较常见的一种,也是本专题的主角之一。
SSAS
SSAS,全称SQL Server Analysis Services (SQL Server 分析服务)。上文说到,Power BI实时连接SSAS,其实连接的是analysis Services数据库(以下简称AS数据库)。而SSAS则是一个用来托管AS数据库的服务器实例。AS数据库是用于分析和报告的高度优化的数据库,通常作为数据仓库商业智能解决方案的一部分进行准备和更新。
那么AS数据库跟SQL Server数据库有什么区别呢?主要在于:前者使用DAX/MDX语言,并提供了一系列内置的商务智能函数以助于进行分析和报告(如数据挖掘、时间智能等)。这里我们看到,AS数据库跟Power BI一样,都可以使用DAX作为分析语言。那对于广大一上手就是Power BI、没学过SQL语言的用户来说,AS数据库无疑是更加容易使用的。
AS数据库主要有两种形式:多维度模型(Cube)和表格模型(Data Model)。这两种模型是在安装SSAS实例时就选定的,安装完成后,不能随意切换。多维度模型不能部署到Azure Analysis Services和Power BI数据集上。因此,本专题后续推文,也将介绍表格模型为主。从表格模型的操作界面我们可以发现,它与Excel中的Power Query 和Power Pivot 以及Power BI的界面非常相似。
SSAS 表格模型
Excel的Power Pivot
Power BI
Power BI X SSAS
Power BI与SSAS结合,简而言之,就是把原先在Power BI里进行的数据获取、清洗、模型搭建、度量值构造等一系列前期准备工作,统统转交给SSAS。SSAS最后部署(输出)一个表格数据模型。Power BI则实时连接这个模型进行可视化呈现。只要SSAS数据更新了,在Power BI上点一下刷新键即可一秒更新数据。
此外,由于整个模型都是在SSAS里搭建的,Power BI端将不能引入其他数据源,也不能编辑原SSAS的度量值,但可以新建度量值,纯粹作为可视化展示工具使用。一切与模型相关的操作,都要在SSAS端进行。当然,前端展示和后端模型拆开,这对于有一定规模的项目是非常有利的。一方面支持多人协同操作,前端后端可以分开进行。另一方面,同一个模型,可以搭配不同的展示前端,也提高了模型的复用率。
下一篇,我将重点介绍,如何部署SSAS表格模型。