Power BI - Tabular - 模型类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Power BI - Tabular - 模型类型相关的知识,希望对你有一定的参考价值。

参考技术A (学习记录 个人理解 不一定对)

导入模式数据存储模式-基于Vertipaq,数据存储在pbi中
direct query 将查询翻译成sql语句返回数据源进行查询;
混合模式下 导入/直连的表 按照各自的连接模式 有各自的存储方式,不同连接模式下的表 无法直接join(可以建立关系写dax之类的 但是引擎层面无法join)

数据存储在pbi模型中,包括数据内容、模型关系、度量值等。

数据保留在数据源那,pbi就是建立一个联系 去连接数据源。

分为公式引擎(FE)和存储引擎(SE)
1 ) 公式引擎 (FE)接受请求、处理它、生成查询计划并最终执行它; 类似大脑
2 ) 存储引擎 (SE)从表格模型中提取数据以满足公式引擎生成的查询中发出的请求;类似肌肉

从最左侧开始,由图可知,tabular model接收查询语句(DAX/MDX),然后传递到模型里的FE。
FE负责解析公式,计算值。但是FE无法接触到数据。因此SE开始发挥作用。
因为有不同的存储模式,所以SE发挥作用的方式不同。
如果是导入模式,那么SE直接访问vertipaq存储的数据即可;如果是直连模式,那么SE接收查询语句后,又将这个传递到数据源,数据源产生结果后返回给两个引擎。
如果是复合模式(同时有导入和直连),那么各自的SE运算完结果后,返回给FE,由FE将结果join在一起。SE中两种模式 完全不可能连接。
因此,如果是复合模型,计算相同存储模式的表内的measure 运算较快;但如果涉及到不同存储模式的表,对FE的消耗很大,性能差。

pbi导入数据后,会将数据源转换成列式结构,没有行的概念,每一列都与其他列物理分开。
同时,pbi对列进行优化,为每一列建立索引和字典并进行优化压缩。
压缩时,vertipaq主要采用哈希编码和值编码进行优化。哈希编码指为列中值创建字典,然后用字典中的索引值代替真实值。值编码专门处理整数,需要的内存更少。值编码会找到列中最小值,然后计算最小值与列中其他值的差异,并存储这个差异值。

整数性能优于文本
列中不同值的数量(基数)较少性能较好,具有许多重复值的列可以比包含频繁变化值的列更好地压缩(可以应用 RLE)
表中的行数少性能较好。

以上是关于Power BI - Tabular - 模型类型的主要内容,如果未能解决你的问题,请参考以下文章

SSAS Tabular模式中关系设置不支持多对多?

如何将指数平滑模型预测值获取到 POWER BI/POWER Query 数据集?

坚持在模型中创建连接 - Power BI

Power BI学习

「PowerBI相关」一款极其优秀的DAX建模工具Tabular Editor

power bi怎么排序?power bi自定义排序啊?求教程