首页 > 解决方案 > 如何在 Excel 2010 上结合 Power Query 和 Power Pivot 处理不适合 RAM 的巨大 csv 文件

问题描述

我想知道是否有人可以帮助我解决以下问题。首先是我的设置(我无法更改,因为它是一个公司环境)

我正在寻找一种使用 Excel 对非常大的文件(大约 5Gb)进行切片和切块的解决方案。因此,相当于能够使用包含如此多数据的数据透视表和图表。

我刚刚在我的笔记本电脑上安装了 Power Query 和 Power Pivot(记住我正在运行 Excel 2010 - 32 位),并将巨大的 .csv 文件保存为与 Power Query 的连接。但是,我无法将它添加到我的数据模型并从 Power Pivot 使用它(显然这是 Excel 2010 中的一个问题)。我试图通过单击 Power Pivot -> 现有连接来解决问题。但随后它尝试导入所有内容,但我的内存不足或达到了一些 Excel 限制。

对我来说,这个想法应该是永远不会加载数据,它作为连接保留(您只存储查询)并且数据是“延迟”加载的,并且只有在您设置 Power Pivot 报告后才需要加载(否则我不知道 Power Query 和 Power Pivot 如何帮助处理不适合 Excel 的大文件)。

我可以做些什么来将大文件的连接添加到数据模型中,以便我可以继续工作,直到我可以设置报告(使用 Power Pivot)并查看结果?

如果我缺少某个软件包(例如 Power BI),这将帮助我解决问题,请告诉我。如果它是免费的(如 Power Query 和 Power Pivot),我可以安装它。

非常感谢您的提前和问候

标签: excelpowerpivotpowerquery

解决方案


因为这听起来像将 CSV 直接加载到 power pivot 中由于导入所有内容而失败。一种选择是将 CSV 加载到像访问文件(或 SQL 服务器 Express)这样的中间数据库中,同时清理数据以提高内存使用率。

注意:power pivot 在更新模型时会使用更多内存。

链接到创建内存高效模型,该模型提供了一些关于如何设计功率枢轴模型以提高内存效率的技巧。

另请注意,数据的唯一性会极大地影响内存中可以容纳多少数据。具有较少不同值的列消耗较少的内存,像事实表上的 row_ID 这样唯一的东西会消耗大量内存。


推荐阅读