【问题标题】:Power BI dealing with 16gb CSV filePower BI 处理 16gb CSV 文件
【发布时间】:2020-01-01 00:26:47
【问题描述】:
我有一个已导入 Power BI 桌面的 16GB CSV。我使用的工作站是运行 Windows Server 2016(64GB 内存)的 Azure VM。文件的导入需要几秒钟,但是,当我尝试将查询编辑器中的数据集过滤到特定日期范围时,需要相当长的时间(它仍在运行,到目前为止已经大约 30 分钟)。正在从 VM 上创建的 RAM 磁盘读取源文件 (16GB CSV)。
在处理这种规模的数据集时,最好的方法/实践是什么?在 SQL Server 中导入 CSV 然后在将数据集过滤到日期范围时使用直接查询会获得更好的性能吗?我原以为它会在我当前的设置下运行得相当快,因为我在该 VM 上有 64GB 内存可用。
【问题讨论】:
标签:
sql-server
csv
powerbi
【解决方案1】:
当数据量很大时,您还需要适当的计算能力来处理它。当您在 Power BI 中导入这些行时,Power BI 本身需要这种计算能力。如果您在 SQL Server(或 Analysis Services 或其他)中导入数据,并使用直接查询或实时连接,则可以将计算委托给数据库引擎。使用 Live Connection,您的所有建模都在数据库引擎上完成,而在 Direct Query 中,建模也在 Power BI 中完成,您可以添加计算列和度量值。因此,如果您使用 Direct Query,您仍然必须小心计算的位置。
你要求“最好的”,这总是有点模糊。您必须根据许多其他因素自行决定。 Power BI 本身就是 Analysis Services(当您运行 Power BI Desktop 时,您可以看到 Microsoft SQL Server Analysis Services 子进程正在运行),因此在 Power BI 中导入数据应该会提供与在 SSAS 中导入数据类似的性能。要在这种情况下提高性能,您需要调整模型。如果您在 SQL Server 中导入数据,则需要调整数据库(适当的索引和建模)。
因此,要做出最终决定,您必须测试这些解决方案,考虑价格和硬件要求,并根据这些情况确定最适合您的情况。
最近,微软做了一个demo with 1 trillion的数据行。你可能想看看它。我还建议您查看aggregations,它可以帮助您提高模型的性能。