加入 PowerBI自己学 知识星球:下载源文件,边学边练;遇到问题,还可以提问交流。
删除不需要的列,提升后面处理的效率,是数据清洗的好习惯。在PowerQuery中删掉不需要的列,尤其是事实表,随着时间的推移,行数会越来越多,每多一列都可能让文件增大几十M。操作上可以使用删除列,也可以使用删除其他列。通常来讲,用删除其他列目的性更明确,且无副作用。
举例
一个600多M的模型,在一次刷新数据后,突然暴涨到900多M。先检查了每个表的个数和行数,没有异常。再次仔细检查,才发现订单表多了好几个文本格式的列。原来是上游的数据库最近在满足一些其他数据需求的时候,在订单表增加了一些列。PowerQuery获取这个表的时候,使用的是删除列功能,模型刷新的时候自动地跟着增加了上游数据源增加的这些列,由于订单表有1000多万行,多这几列竟让文件暴涨300M,模型大小逼近1G,几近崩盘。
本以为“删除其他列”功能为了操作上的省力,其实,“删除其他列”的本质才是真正选择需要保留的列,它的好处就在于上游数据源增加新列时,PowerQuery这边依然能只保留自己需要的列。这一点类似SQL做查询的时候用“SELECT * FROM”,查询的列数就会随上游数据源变动;如果足够专业的话,就会不辞辛苦,用“SELECT+需要的字段名+FROM”,锁定目标字段,保证数仓的稳定。
操作步骤
STEP 1 按住Ctrl键选择需要保留的列,然后点击鼠标右键,选择删除其他列。
STEP 2 如果保留的列不够,可以在此步骤对应的公式栏(在高级编辑器中也可以),调整需要保留的列名,就可以继续添加需要保留的列。
总起来讲,获取数据时对冗余列进行删除,建议优先使用“删除其他列”,这样可以让模型数据刷新更平稳地运行。