Ssis 创建通用PowerBI模型以在多个客户端站点部署和填充

Ssis 创建通用PowerBI模型以在多个客户端站点部署和填充,ssis,ssas,powerbi,Ssis,Ssas,Powerbi,我有一个特定于行业(比如:房地产、建筑)的通用模型,我想将其作为咨询每个客户的起点。这个模型可能还需要为每个客户机进行一些定制,目前我假设这些定制不会合并回原始的基础模型。每个客户机都将以不同的方式存储其版本的数据(ERP、SQL、Excel、CSV等) 我的问题与我应该如何构建这个模型以及如何填充它有关。是否应该在PowerBI桌面中构建模型,然后使用PowerQuery追加查询加载数据?或者,模型是否应在SQL Server中构建,而更传统的ETL脚本应首先填充该模型,然后将其导入Power

我有一个特定于行业(比如:房地产、建筑)的通用模型,我想将其作为咨询每个客户的起点。这个模型可能还需要为每个客户机进行一些定制,目前我假设这些定制不会合并回原始的基础模型。每个客户机都将以不同的方式存储其版本的数据(ERP、SQL、Excel、CSV等)


我的问题与我应该如何构建这个模型以及如何填充它有关。是否应该在PowerBI桌面中构建模型,然后使用PowerQuery追加查询加载数据?或者,模型是否应在SQL Server中构建,而更传统的ETL脚本应首先填充该模型,然后将其导入PowerBI?

使用Power BI Desktop进行ETL,还是在SQL Server中进行ETL,然后将最终数据导入Power BI Desktop,这两种选择可归结为三个因素:

  • 可移植性。将Power BI Desktop用于ETL意味着您的整个解决方案都在Power BI Desktop中—您不需要任何其他工具来部署您的解决方案。如果您不能保证每个客户机都有相同版本的SQL Server和相同的ETL工具,那么我不建议在这些外部工具上建立依赖关系。例外:如果您的客户机将是构建ETL的客户机,那么您可能希望将您的客户机编写的ETL从Power BI桌面解决方案中删除—并且您可能不关心他们使用的是什么数据库/ETL解决方案,只要最终结果符合您的规范
  • 处理能力(或ETL的强度)。如果ETL是高度密集型的,并且需要服务器的所有功能才能运行,那么SQL server/传统ETL可能更好。Power BI Desktop中的任何ETL都必须在安装了Power BI Desktop的位置运行。如果这是一台低规格的计算机,那么密集型ETL将比使用传统的基于服务器的ETL工具慢得多
  • 可维护性。如果您打算继续维护ETL,那么使用您非常熟悉的工具(如Power Query)比为每个客户机使用不同的外部ETL工具更好。但是,如果您的客户将要维护ETL,那么他们可能更喜欢以与他们维护的其他ETL相同的方式构建ETL,并且其行为类似 我想,考虑到您使用的是多个客户机,可移植性几乎胜过一切。你对客户的需求越少越好

    在这个决定中,不重要的是数据的大小,因为无论发生什么情况,所有数据都将导入Power BI Desktop(正如您在问题中指定的)

    如果您选择外部数据库/ETL解决方案,那么自然的下一步是探索直接查询模式或到多维数据集的实时连接(而不是导入数据)。这样做的利弊将是你的决定中考虑的另一个因素。然而,由于您正在为客户构建解决方案,这可能是您无论如何都不希望依赖的另一个工具

    总的来说,对于您的情况(为客户构建解决方案),我建议使用Power BI Desktop


    对于正在构建内部解决方案的其他读者,建议不一定相同(取决于适用于他们的情况)。

    我没有提到的另一个问题是,Power BI Desktop和/或外部ETL工具是否能够完成转换客户数据所需的一切工作。如果您遇到了该工具无法完成的事情,那么自然,其他工具可能是更好的选择。我之所以没有提到这一点,是因为(a)我认为每个客户系统都是不同的,(b)只要有意愿,就有办法。如果您选择Power BI,然后遇到它无法做到的事情(例如,无法查询的源系统),您可以始终使用其他工具来克服该障碍(例如,让客户为您准备数据)。