实施基于 Power BI 和 Azure Synapse 的现代端到端报告系统

问题描述

我正在对报告解决方案进行现代化改造,其中数据源位于客户的 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 templateCLI script 进行部署。

Power BI 在过去几年中得到了改进,对 devops 和 dev/test/prod 环境提供了更好的支持。当前的最佳做法可以在 Power BI 文档中找到:https://docs.microsoft.com/en-us/power-bi/create-reports/deployment-pipelines-best-practices