为什么power bi中的double格式改为int64后,某一列占用的内存减少了,但文件的总重量却增加了?

问题描述 投票:0回答:1

我有一份报告,其中一列包含许多唯一的整数。我看到数据格式是十进制(双精度)enter image description here,我决定将这一列转换为int64(整数)格式。在dax studio中,VertiPaq实际上显示列enter image description here占用的内存有所减少,但是在桌面版本中保存报表时,报表本身作为文件的权重增加了。怎么会这样? enter image description here


powerbi dax powerbi-desktop data-modeling
1个回答
0
投票

压缩基于多种因素。不同值的数量和列的排序顺序起着重要作用。 VertiPaq 还将使用一些启发式方法来计算数据的最佳压缩策略,这可能会根据许多不同的变量而改变。

在您的情况下,已使用哈希编码,这需要字典。这也可能会使用游程长度编码,这意味着列的排序顺序可能会使内存占用量发生波动。

VertiPaq 中的数据压缩非常复杂。如果您需要所有详细信息,我可以推荐 DAX 权威指南中的第 17 章。我引用以下摘录。

影响表格模型压缩比的因素是, 按重要性排序:

  1. 列的基数,定义用于存储值的位数。
  2. 重复次数,即一列中数据的分布情况。具有许多重复值的列被压缩超过 值经常变化的列。
  3. 表中的行数。
  4. 列的数据类型,仅影响字典大小。考虑到所有这些因素,几乎不可能 预测表的压缩率
© www.soinside.com 2019 - 2024. All rights reserved.