Azure Analysis Service 介绍
概述
也许你知道Excel Power Pivot,也许你已经开始使用Power BI,但你可能还不知道微软的BI终极解决方案其实是:分析服务。
业务人员
业务人员需要的是解决实际业务问题,这里对业务人员有两个可能的假定:
- 业务人员不完全具备且主观上并不想自行构建BI方案;
- 业务人员具备且主观上愿意自行构建BI方案。
对于第一种情况,比较适合高层决策管理者人员,如若不是,或多或少都将面对自己做工作报告的情况,工作报告在一定意义上就是把自己负责的业务建模分析出关键指标。
对于第二种情况,我们已经知道他可以选择:
- Excel Power Pivot
- Power BI 系列
来实现。对于第二种情况,如果他专门走向BI分析方面,而企业在这方面又有平台和需求,那他将从懂业务转为业务驱动型的BI工作者。
BI人员
对于BI人员来说,如果你所使用的 Excel Power Pivot或Power BI系列仍然在某些方面无法满足专业的需要,那你需要了解的便是微软为企业提供的终极解决方案:分析服务。
分析服务,有两种承载方式,一种是自己随SQL Server安装,另一种则是直接使用微软的Azure。关于Azure的详细说明超过本文范围,但使用Azure的一个显著优势是:
与专注业务类似,BI专家的专注业务就是:将底层IT基础设施的维护交给了微软,使BI专家可以专注于构建企业级商务智能解决方案。
了解 Azure Analysis Service
企业级数据繁杂
企业产生越来越多的数据,而且是在各种地方,以各种形式,就像是这种感觉:
这些数据现在或是未来主要将以两种形态存在,像是这样:
这些数据将存储在云端或是企业本地,而企业对数据需要的核心任务是:释放数据的价值。和以往不同的挑战在于:必须整合云端数据与企业本地数据以形成一个一致化的整体。
释放数据价值
为了释放价值:
必须形成一致化的整体:
整体解决方案
而谁来承载这一切呢,对于微软系的解决方案,那就是:Azure Analysis Service,如下:
WOW,请仔细看看。如果您已经学习了Power BI,你会很熟悉这个表关系图。对的,它正是你在Excel用vlookup经常要查找的;也就是Power Pivot / Power BI中所称的数据模型。对于企业来说,当把所有的数据都整合到一起的时候,这个数据模型将更加庞大和复杂。此时,不管是使用Excel或Power BI,在很大程度上都无法继续胜任此工作了。所以,微软帮助我们平滑地过渡到企业商务智能分析服务(理论上它应该支持任意的复杂度及任意的规模)。
BI专家,这时候不仅仅是针对某个主题设计一个基于Power BI的分析模型,而需要统筹整个企业的业务逻辑,构建统一且一致的企业级数据模型:
在企业统一且一致的数据模型下对外提供分析服务,以供各种业务端人员可以直接连接使用,不需要自己再构建数据模型。如下所示:
也就是说,BI专家需要完成:
- 整合企业涉及的各种数据;
- 构建一致的数据模型;
- 以各种可能的形式提供给终端用户使用。
按需付费
我们使用Azure承载整个体系之外,一个很大的好处是可以按需付费。它可以随着我们需要的能力而灵活弹性地伸缩,如果暂时不需要也可以关停便不再产生成本。如下:
更快获得价值
作为终端用户,也就可以直接访问数据形成的价值,并直接进行可视化。
这个产生价值的过程不再需要一蹴而就,而是可以迭代完成,如下:
我们计划了想要什么,然后立刻构建并部署效果,接着再进行调整,我们每一轮的优化都可以比以往更快,甚至缩短到日的级别。
BI专家们可以使用Visual Studio作为设计工具,在VS中设计的体验甚至比使用Power BI或Excel Power Pivot更加带劲。
而整个过程实际是没有太多改变的:
BI专家建立模型,发布。终端用户甚至可以直接在Excel中打开并直接获得可视化的价值。
这一切就在:Azure Analysis Service。
AAS系统结构说明
我们简单了解了什么是AAS(Azure Analysis Service),接着我们来看看他有怎样的结构:
职能架构
首先来看从职能来说,有怎样的表现:
AAS负责整合企业及云端数据,并提供存储,安全,建模,生命周期管理,业务逻辑及指标等。然后提供各各种终端工具使用。
实现架构
我们已经看到了重点,那就是我们可以用熟悉的DAX来实现这一切。
组件架构
我们都涉及哪些相关的组件呢,大致可以包括:
- 云端数据存储
- 云端数据库
- 云端数据仓库
- 本地数据存储
- 本地数据库
- 本地其他数据
- 数据网关
- Azure Analysis Service
- Power BI
- 开发工具
- Visual Studio
- SSMS
值得一提的是,在SQL Server 2017的1400级模型中以及AAS都支持Power Query / M表达式的获取数据方式,这就让我们学习Excel BI(Power Query + Power Pivot),Power BI并自动升级到企业级的商务智能分析服务可以直接迁移已经具备的知识体系。
演示
我们给出一个使用AAS的演示来具体感受一下。本演示需要Azure作为基础,合适已经采用微软Azure解决方案的企业或相关岗位人员参考。以及如果您正在考虑本企业如何实施企业级商务智能解决方案,那如果推荐您使用Azure Analysis Service您可以从以下内容大致了解它的可用性和能力。
本文并非是使用SSAS或数据建模的step-by-step的教程,所以我们更多来感受我们可以做到什么以及大致可行性,以便于企业在解决方案选型方面得到参考,感兴趣的伙伴可以进一步交流。
准备
首选我们必须在Azure上拥有资源,根据我们上述的架构,我们假定:
- 企业采用Azure托管了SQL Server,名为:excel120。
- 企业在该SQL Server上拥有SQL数据库,名为:AdventureWorksLT。
- 企业采用Azure托管了分析服务,名为:excel120。
如图:
现在我们要做的是:
- 在本地设计基于AdventureWorksLT的数据模型;
- 测试模型的可用性;
- 部署该模型到Azure的分析服务上;
- 演示终端用户如何直接使用分析服务。
本地数据建模
我们使用SSDT(Visual Studio)来创建模型,打开VS,并创建一个商业智能\Anlysis Services表格项目,注意选择1400级别:
我们起个名字:Excel120-Demo。
数据获取
我们一开始有了一个空模型,然后我们来导入数据:
我会得到一个熟悉的导入数据环境:
没错,我们可以用我们属性的Power Query / M的方式来导入数据,只要输入我们Azure SQL Database的用户名和密码,如下:
我们就可以获取相应的数据来进行建模了。我们选择几个我们需要的表,完成加载,并修改下各个表的名字,如下:
数据建模
可以看出,我们补充了一个日期表。然后我们像在Power BI中一样建立关系,非常容易,可以得到:
所有在Power BI中学到的本事都可以在这里发挥,我们再增加一些计算列和度量值,基本大功告成了。
在Excel中测试一下
这个功能很赞,我们可以直接在Excel中来看看是不是按照我们的预期来进行计算的,如下:
系统会帮我们打开一个Excel文件,该文件已经内置了和我们项目的关系,所以我们直接可以使用透视表来进行测试。如下:
这太酷了,可以仔细观察,会发现一些利润率是负值的情况,然后我们需要知道具体的细节,我们双击查看细节,不出意料,我们看到了细节数据,如下:
这很好,我们在Excel中很多情况就是这样做的,但是一个历史性遗留问题是:我想看产生负利润率涉及到的具体客户是谁?电话?以及销售人员是谁?,这样我才能立即采取行动。
很遗憾地告诉你,在Excel,Power BI,传统SSAS表格项目中都无法做到;
很高兴地告诉你,在SQL Server 2017 / Azure Analysis Service也就是1400级别的表格模型是可以做到的。
我们在Visual Studio的模型设计器中可以看到一个选项:
想看到什么详细信息,我们可以在这里使用DAX来定义,例如:
在Power BI中学习了DAX,你可以在此时继续发挥其作用,我们选择了真正关注的细节信息。再回到Excel测试下效果来看看:
WOW,这就是我们要的,然后可以立即来处理了。
通过类似的方式,我们可以快速构建我们的模型,直到完成。
发布到云端
这里的发布,准确讲是叫部署,我们在本地完成了设计,我们需要把这个模型发布到云端,以便企业所有的用户都可以享用。
我们只需要把目标服务器填入部署配置即可。我们将在Azure中启用的分析服务器地址填入:
系统会提示我们登录进入我们的Azure,这也很正常。
发布成功。此时我们在Azure中也可以看到我们发布的结果了。
云端配置
我们是可以在云端进一步完成的模型的配置和修改的,Azure也给我们提供了相应的能力,如下:
整个体验还不错,但目前这块还是Preview阶段,有更多可以优化的地方。更多关于云端配置内容不再展开。
在各终端使用
这才是演示的关键,作为领导可能不再关心如何实现的细节,但更关心的是,我们在终端是如何用的。
Azure Analysis Service官方给出的态度首先是:支持最新的客户端工具,包括:
利用新式的数据浏览和可视化工具(例如 Power BI、Excel 和第三方工具),用户可以通过交互性强且视觉效果丰富的方式来了解模型数据。
因为我没有安装tableau,暂且演示Excel和Power BI作为终端的效果。
在Excel中探索数据
在Excel中,我们只要按照正常连接分析服务的方式来进行即可,效果自然也和我们在本地测试时是一样的。
同样地,我们可以双击具体的一个问题单元来查看细节:
那么此时,作为一个业务人员,您是可以快速采取行动的,而业务人员仅仅只需查看数据而无需自己再进行建模了。
在Power BI Desktop中探索数据
在Power BI Desktop中,我们在链接分析服务的时候可以采用实时模式,这样我们将可以直接以可视化的方式来进行探索,如下:
这是我们可以使用的维度和度量值,然后我们进行可视化即可:
可以观察到此时Power BI Desktop是没有数据和关系两个标签的,从这个意义上来看,我们并没有在Power BI Desktop中来建模,而仅仅是进行了可视化展示。当然,我们进一步把这个结果发布到Power BI云端。
可以看到该视图是实时的,其实时性取决于分析服务模型的实时性。
其他方面
Azure Analysis Service 给了我们更强大的企业级商务智能终极解决方案。在这个企业级的层面我们可以完成更多任务,包括但不限于:
- 标准层的高级数据刷新功能有助于客户实现几乎实时的数据模型更新。支持内存上限是400G。(一个压缩后达400G的模型)
- 可以使用表格模型脚本语言来维护元数据。如下:
- 更灵活的权限控制(对象级别安全性)
- 分区增量刷新
- 不规则层次结构
如:
- DAX 增强功能
更多信息参考微软官方文档:
https://docs.microsoft.com/zh-cn/sql/analysis-services/analysis-services
总结
Azure Analysis Service 给出了企业级商务智能的终极解决方案,至此:
- Excel Power Pivot - 个人型BI
- Power BI 体系 - 团队协作型BI
- Analysis Service - 企业级BI
相信总有一款适合您或您的企业。