前奏
说起Power BI中的聚合,也许大多数人第一反应是DAX或M中的聚合函数,而本文所讲的聚合,是一项发布一年多而鲜有人知晓,百度几乎查不到资料,却应用了微软Power BI团队最酷的技术,并能够使PowerBI成为解锁PB级或是Hadoop规模等大型数据集的利器!
(下图:Power BI Desktop中的"管理聚合")
痛点
过去,Power BI以其强大的功能性,可视化交互能力,拖拽式设计的易用性,紧锣密鼓的更新以及活跃的社区,成为全球最受欢迎的敏捷BI开发工具之一,然而,对于处理企业级大型数据集显然是Power BI的天然短板。为何这么说呢?
PowerBI的内核基于Analysis Services表格模型(TOM),利用AS表格模型中公式引擎(FE)和存储引擎(SE)的配合完成报表前端与后端模型的数据交互,通常来讲,存储引擎依据应用了筛选并经VertiPaq压缩过的缓存数据,能够以多线程的方式计算并迅速返回结果,这本身是十分高效的一个过程,但尽管表格模型拥有比多维数据集(cube)更强的数据压缩率,当数据体量达到TB甚至PB级时,内存很可能无法撑住这个体量,这会导致数据集中的分页大幅增多,从而严重拖慢查询性能(Power BI内置表格模型默认以800万行为单位进行分页,不过拥有Premium License的用户可以通过XMLA终结点修改这一数值,但这又是另一个话