问题描述
我正在对报告解决方案进行现代化改造,其中数据源位于客户的 sql 服务器 (2014) 上,并且报告在客户的 Power BI 服务门户上显示为 Power BI 报告。今天,我使用 SSIS 来构建一个数据仓库,以及一个内部部署的数据网关,以确保将数据传输到 Azure 分析服务,而这些服务又由 Power BI 报告使用。
我一直想知道是否可以使用 Azure Synapse 连接到客户数据,并以最具成本效益的方式将数据传输到 Azure 并将它们作为共享数据集链接到 Power BI 工作区。有很多可能性,但重要的是客户体验报告的快速和稳定,并且如果可能的话可以处理近乎实时。
我觉得 SSIS 在 azure 中既麻烦又昂贵。是否有机制可以使获取 azure 数据既便宜又快速?我需要数据仓库(Azure sql 数据库)还是使用数据湖作为数据存储更好?也需要做增量加载。如果我需要做一些转换怎么办?我应该使用 Power BI 数据流还是需要创建 Azure 数据流来实现这一目标?
有没有人有使用突触的良好经验(也考虑到 DevOps)并为此获得良好的 DEV、TEST 和 Prod 环境?或者使用 Synapse 是一个成本驱动因素,一个更简单的实现就可以吗?给我你的意见,如果你有好文章的链接,请这样做。期待您的来信
问候盖尔
解决方法
诚实的答案是它取决于很多不同的事情,我不知道我可以给你一个可靠的答案。我能做的就是尽量专注于哪些服务可能是最佳选择。
值得注意的是,Power BI 数据集本质上是幕后的 Analysis Services 数据库,因此除非您使用的是专门仅在 AAS 中可用的功能并使用实时连接,否则您可以省去该步骤.不过,刷新选项是 Power BI 中较为受限的内容之一,因此您的方案可能需要单独的 AAS 数据库。
如果您可以消除 AAS 实例,那么 Power BI 数据流很有可能适合您,并且它们具有将增量刷新作为核心功能的附加优势。在这种情况下,Power BI 会将数据存储在数据湖中。
Synapse 是一种选择,但可能不是最适合您的方案,除非您的数据集很大,否则 SQL 池可能会变得非常昂贵,尤其是在您不使用任何计算选项进行转换的情况下。
>没有 SSIS 集成的数据工厂(也可用作 Synapse 管道)通常是移动大量数据的最不扩展的选择。它允许您使用数据流进行一些转换,并具有诸如增量加载之类的功能。输出到数据湖可能很好,也是最具成本效益的方式,但在某些情况下,如果您特别需要其中的某些功能,则可能需要使用 Azure SQL 实例之类的东西。
如果他们想要真正实时,这是可以做到的,但这些工具都不是真正为它而构建的。在大多数情况下,一旦您深入了解给定报告的基本目的,Premium 容量上每天 48 次(也就是每 30 分钟)可用的刷新就足够接近实时了。
对于真正的实时报告,您可以查看 Power BI 中的推送和/或流式数据集,并使用逻辑应用程序或可能的流分析之类的东西提供它们。不过,有一个带有推送数据集的 lot of limitations - 您很可能希望设置常规 Power BI 报告和数据集,然后除此之外将实时数据集作为单独的实体添加。
就 DevOps 而言,几乎所有 Azure 服务都可以与管道集成。除了任何代码,任何服务或服务设置都可以通过 ARM template 或 CLI script 进行部署。
Power BI 在过去几年中得到了改进,对 devops 和 dev/test/prod 环境提供了更好的支持。当前的最佳做法可以在 Power BI 文档中找到:https://docs.microsoft.com/en-us/power-bi/create-reports/deployment-pipelines-best-practices