确实从个人观点出发,在企业级服务和解决方案上,微软的表现比开源和独立开发上令人亮眼太多。而Power BI和Azure则分别在这个领域里各自扮演着他们极其重要的战略角色,承担起他们的服务职责。
Azure开发生态圈作为企业级服务体系中的影响巨大,奠定基础的一环,为企业级开发方案提供了涵盖IaaS, Paas及SaaS不同层面的架构开发相关产品及服务;
IaaS(Infrastructure as a Service)层包括了负载均衡(Load Balance),自动伸缩(auto-scaling),虚拟机(Virtual Machine)等基础设施服务;
PaaS(Platform as a Service)拥有云服务(Cloud Service),移动服务(Mobile Service),网页应用部署(Website Deployment)等平台服务;
SaaS(Service as a Service)则涵盖了如数据库(SQL, HDinsights...),IoT(Stream Analytics, IoT Hub, Event Hub)方面和数据分析可视化(Time Series Insights, Power BI)等不同领域的软件服务。
Power BI作为SaaS服务中的一项,是一套强大的商业智能分析及数据可视化工具, 能快速地将复杂的原始数据组织成直观有效的数据图表使得数据分析师或工程师能根据图表展示出的数据逻辑及趋势迅速进行决策,有效避免未来开发成本的增加,降低运作风险;
而之所以说Power BI是一套服务,在于Power BI旗下产品又可细分为Power BI Desktop, Power BI Cloud, Power BI Mobile三种对不同平台所支持的服务。这三种产品在功能性上有较大的差异,但在使用上又保持着千丝万缕的联系。
Power BI Desktop功能主要集中在创建功能强大的查询语句,数据模型和具有强交互性的数据报表;且可以将已完成的工作发布到Power BI Cloud进行云端共享或创建仪表盘(Power BI Desktop lets you build advanced queries, models, and reports that visualize data. With Power BI Desktop, you can build data models, create reports, and share your work by publishing to the Power BI service.)
Power BI Cloud则集中于解决云端数据可视化方案,提供了仪表盘,数据警报,分享,流数据等诸多功能,同时兼容Desktop版本部分数据报表的功能;而我们要讨论的实时数据可视化方案依靠于Power BI Cloud提供的流数据方案。
Power BI Mobile则主要解决移动设备上对已建立的数据报表和仪表盘的查看阅览问题, 显然移动端对编辑报表和仪表盘的限制目前还是较大的。
将Power BI体系中的这几个工具组合起来使用,产生的功效是十分强大的。既能对非时间序列的数据集进行多角度展示,又能满足当下时代对实时数据可视化的强烈需求。
使用Azure和Power BI能搭建一个完整的云端部署的可视化数据方案,让数据不在孤立于某个本地数据库或服务器中,在大数据时代下数据能够在云端有效共享,在终端设备多维展示,并能被实时分析,为推动公司方案决策,减少成本损失助力。
Power BI实时可视化特色1: 为流数据集而定制的流畅动画效果显示(Smooth Animation Effect for Streaming Dataset)
我敢说,在做了无数可视化产品调研后,Power BI依旧是那个唯一拥有如此流畅的数据流动效果的产品。
这种丝滑的视觉体验主要表现在线性图中, 可以看到x时间轴会随着当前时间而移动,Power BI会根据每个时间点录入的数据产生平滑的曲线,并以一种连续流畅的动画效果呈现出来。这是市面上很多宣称自己是实时可视化的产品都无法达到的效果。
Power BI实时可视化特色2: Current + Old Data Access = Push + Streaming Dataset(Push and Streaming Dataset for Live Dashboard)
根据Power BI的官方文档描述,能达到特色1中这样近乎完美的动态效果主要得益于Power BI内部的Redis Cache。而我们称这种可以近乎实时展示的数据集为Streaming。在Streaming Dataset中,流入的数据将被暂时保存在Power BI内嵌的Redis Cache中,仅对存入的数据进行缓存而不涉及ETL过程。Cache采用先进先出(FIFO)的策略,永远只保留最新流入的前20000行数据记录。 这是为什么这种数据集能保证数据到达几乎无延迟显示即实时显示的重要原因。
但正是因为这种完美的实时效果,这种技术也存在很大的局限性: 首先,这种技术只能保留最新的前20000行数据也意味着在Streaming数据集为基础上建立的可视化组件最大的时间窗口大概为1小时,因此对历史数据的支持性极差;另一方面,Power BI目前针对Streaming Dataset仅仅提高极小范围的可视化组件的选择: Line Chart,Stacked Bar Chart,Stacked ColumnChart, Gauge, Card,且这些图表上供可自定义的操作十分有限,几乎只能更改图标标题和一些辅助文字。