简谈企业Power BI CI/CD实施框架

2023-12-25 00:40

本文主要是介绍简谈企业Power BI CI/CD实施框架,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

概述

在企业场景中,BI报表更多地作为一项IT服务,而绝不仅仅只是报表工具而已。同理,也正如我此前多次阐明,Power BI是一套服务,绝不仅仅只是Power BI Desktop,它的开发,测试与部署,需要得到有效的管理。因而,无论是基于合规性,还是协作效率等方面的考量,企业实施PBI持续集成与部署,都是百利无害的。

然而,当前国内外的大小企业,已经成功实施PBI CICD的案例并不多,我虽无法完全了解他们的做法,但基于自身的经验和理解,我提出了两种实施思路,供读者参考。

下文我会通过流程图和一些截图来帮助读者理解这种思路,但具体的技术操作此处不会STEP-BY-STEP, 因为官网文档有的,自己能摸索出来的,以及一些我在此前博客中讲过的,没有在这里重复的必要。

方案A

这两种方案并不只是理论,他们在实际的技术实施上都是行得通的。其中第一种方案(Plan A)是我个人比较推荐的方案,它使用Onedrive for business做版本控制,用Power Automate做持续部署,具体如下:

在这里插入图片描述
这种方案无论是对于拥有单个开发团队的中型企业,还是多个开发团队的大型企业,都是适用的。对于持续集成的部分,其做法即是为开发团队创建一个共享Onedrive,在该Onedrive下可以创建不同的folder以供不同的PBI项目组使用,并将其配置到用于DEV环境的工作区:

在这里插入图片描述
在该模式下,开发者无需将报表部署到工作区,而只需要将其上传到Onedrive即可,其好处如下:

1.使用Onedirve托管DEV环境中的PBI报表文件,任何版本变动均与该工作区同步
2.有利于PBI开发团队的管理,分工,以及版本协同
3.充分利用Onedrive本身具有的版本回退的功能特性,轻松实现PBI文件版本控制

此外,读者也不必担心的是,此模式下PBI数据集与数据源的连接以及刷新是不受影响的,此外,由于我们仅需为DEV工作区配置Onedrive,故而待其后续发布到UAT或生产环境后,Onedirve中的任何版本变动都只会影响DEV环境,不会影响UAT和生产。

持续部署的部分,我们恰好可以利用Power Automate的Onedrive或Sharepoint的触发器,这样,我们可以实现每当一个新的版本上传到Onedrive后,自动触发后续的工作流:

在这里插入图片描述
因此在工作流的后续部分,我们可以调用PBI REST API对Power BI内容进行操作,比如实施部署并刷新对应的数据集:

在这里插入图片描述

注:关于利用Power Automate调用Power BI REST API,可参考此文

方案B

Plan B相对而言则略麻烦一点,它使用Github或Bitbucket等类似平台 (下文以Github代称) 作为PBI文件的托管平台与版本管理工具,而使用Azure DevOps或Jenkins这种专用的CICD工具(下文以DevOps平台统称)进行持续部署。具体如下:

在这里插入图片描述
在该模式下,开发者将PBI文件Push到Github,并在DevOps平台建立管道运行具体的部署代码来实现CICD,其优势如下:

1.能够利用DevOps平台丰富的CICD功能
2.能够与企业其他类型的开发项目在同一个CICD体系下进行管理
3.能够与企业其他类型的CICD项目(比如一些ETL项目)进行集成

但相比Plan A不足的点在于目前Github不能直接配置到Power BI工作区,无法像方案A那样与DEV环境实时同步,因此多了一个部署到DEV的环节;另一方面则是该方案实施起来要稍微麻烦些。下图是我使用Jenkins实现方案B的部署成功截图 (我在使用Jenkins的测试过程中确实费了一点周折,但具体步骤不在本文范畴内,若有机会另行赘诉)。

在这里插入图片描述
相比之下,使用Azure DevOps做部署的过程则顺利得多。下图T1和T2是我分别用两种不同方法实现Power BI自动部署的成功记录,实际情况下,每当开发者将新版本的PBIX文件推送到Github,则DevOps管道自动被触发,将PBIX自动部署到PBI工作区并完成数据刷新。

在这里插入图片描述

总结

通常情况下,我更倾向于方案A的模式,它方便,简明,高效,易于管理。但如果PBI的集成与部署需要符合企业级框架下统一的部署规范,或者需要与ETL等其他项目进行集成的需要,那么方案B或许是唯一选择。此外,IT团队实际实施此方案时,要考虑的方面还很多,比如报错处理,版本回退,数据集与数据流间的依赖关系和部署次序等等问题,而本文旨在抛砖引玉,具体的方案则一定是需要团队依据实际情况做相应调整和完善。

(本文首发于CSDN与D-BI网站)

这篇关于简谈企业Power BI CI/CD实施框架的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/533700

相关文章

Spring 框架之Springfox使用详解

《Spring框架之Springfox使用详解》Springfox是Spring框架的API文档工具,集成Swagger规范,自动生成文档并支持多语言/版本,模块化设计便于扩展,但存在版本兼容性、性... 目录核心功能工作原理模块化设计使用示例注意事项优缺点优点缺点总结适用场景建议总结Springfox 是

Python的端到端测试框架SeleniumBase使用解读

《Python的端到端测试框架SeleniumBase使用解读》:本文主要介绍Python的端到端测试框架SeleniumBase使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录SeleniumBase详细介绍及用法指南什么是 SeleniumBase?SeleniumBase

C++ HTTP框架推荐(特点及优势)

《C++HTTP框架推荐(特点及优势)》:本文主要介绍C++HTTP框架推荐的相关资料,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Crow2. Drogon3. Pistache4. cpp-httplib5. Beast (Boos

SpringBoot基础框架详解

《SpringBoot基础框架详解》SpringBoot开发目的是为了简化Spring应用的创建、运行、调试和部署等,使用SpringBoot可以不用或者只需要很少的Spring配置就可以让企业项目快... 目录SpringBoot基础 – 框架介绍1.SpringBoot介绍1.1 概述1.2 核心功能2

Spring框架中@Lazy延迟加载原理和使用详解

《Spring框架中@Lazy延迟加载原理和使用详解》:本文主要介绍Spring框架中@Lazy延迟加载原理和使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、@Lazy延迟加载原理1.延迟加载原理1.1 @Lazy三种配置方法1.2 @Component

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Python GUI框架中的PyQt详解

《PythonGUI框架中的PyQt详解》PyQt是Python语言中最强大且广泛应用的GUI框架之一,基于Qt库的Python绑定实现,本文将深入解析PyQt的核心模块,并通过代码示例展示其应用场... 目录一、PyQt核心模块概览二、核心模块详解与示例1. QtCore - 核心基础模块2. QtWid

最新Spring Security实战教程之Spring Security安全框架指南

《最新SpringSecurity实战教程之SpringSecurity安全框架指南》SpringSecurity是Spring生态系统中的核心组件,提供认证、授权和防护机制,以保护应用免受各种安... 目录前言什么是Spring Security?同类框架对比Spring Security典型应用场景传统

Python结合Flask框架构建一个简易的远程控制系统

《Python结合Flask框架构建一个简易的远程控制系统》这篇文章主要为大家详细介绍了如何使用Python与Flask框架构建一个简易的远程控制系统,能够远程执行操作命令(如关机、重启、锁屏等),还... 目录1.概述2.功能使用系统命令执行实时屏幕监控3. BUG修复过程1. Authorization