踩坑 | power bi混合模型部署失败的问题

2023-09-06 13:10:46 浏览数 (2)

13

2023-08

踩坑 | power bi混合模型部署失败的问题

因为最近踩了太多坑了,所以准备开一个新的系列,分享一些最近新学(cai)到(keng)的东西,更新不定期~

LEARN MORE

图片由海艺AI绘制

最近被各种延迟的问题搞得比较惨,果然一个性价比系数高达2的工作(清闲)没有那么容易干——时不时就在考验我的知识储备。

非要说的话,还是因为数据流程本身比较复杂,涉及的技术细节太多了,有很多都是我知识的盲区或者我曾经以为应该是XX结果经过踩坑之后发现实际根本不是这样的。

别的细节就不说了,总之就是最近接手了一个非常复杂的BI看板,复杂程度怎么理解呢,也就六七个人的团队花了三个月开发上线的东西。由于没有任何参考加上摸着石头过河的缘故,近期遇到了很多让我很抓狂的报错。

在这个项目中,实际用到的power bi连接方式是import direct query的混合模型,这种方式相对来说还是比较冷门的,我对这玩意也称不上是非常熟悉。只能说是,这个东西我知道可以,也简单的用过,但是更深层次的东西,完全不知道。

因为绝大多数power bi的用户实际都没有用到过部署这个功能,所有我简单介绍一下。power bi其实是可以有很严格的开发流程的,也就是可以拆分dev(开发环境)/uat(测试环境)/prd(生产环境)这种。

实际操作也非常简单,正常情况,开发人员通过desktop种点击发布的功能,把报告发布到dev环境(其实就是一个指定的工作区中),然后运维的人员进行代码审核,确认没有问题后在发布的界面,点一下发布按钮就可以了。

因为这个功能用得真的非常少,所以能找到的资料和文档都非常有限,遇到一些稀奇古怪的问题可真的是太闹心了。在经历了无数次报错&测试&打电话给微软的印度老哥之后,总结了一些经验:

  • 如果上一个版本的模型是import的,新版本的模型是direct query的,无法通过管道工具进行部署;
  • 对于混合模型(import direct query),如果修改了模型结构(新增表、新增字段、修改一对一一对多关系),则无法进行部署;但是修改和新增dax/query,修改页面视觉效果,均可以正常部署;
  • 如果direct query连接的后台表正在执行刷新/数据写入等任务时,发布dataset可能导致管道卡死,发布上线需要尽量避开ETL任务调度时间;
  • 如果开发人员在dev的工作区骚操作删除了已有的报告并从desktop重新上传了一遍,无法进行部署;

对于上面四个无法部署的场景,解决方案也非常的简单粗暴:删掉重来。

对于混合模型修改了模型结构导致发布失败的,直接删除UAT环境的报告,按照新增的方式进行发布即可。需要注意的一点是,一旦发生这种情况,就需要尽量选择用户访问比较少的时间进行操作了。正常做发布的时候,用户是无感知的,但是这种先删后新增的操作,会导致看板在数据集刷新完成前无法正常打开。

对于开发人员骚操作删除了dev环境已有的报告的,操作方式和注意实现和混合模型发布失败的处理方式类似,删除UAT环境的报告,按照新增的方式进行发布即可。唯一要说的可能就是警告开发人员下次不要乱删东西了。

最坑爹的是和后台ETL任务冲突卡死这个问题,遇到了一次,真的是整个人都无语了。电话摇人摇微软中国的团队响应太慢,摇到了印度老哥那边解决。

简单来说,部署卡死就是部署界面一直转圈圈,无法取消也无法部署,并且于此同时,看板页面无法正常打开(一直转圈圈)。直接删掉重来这个办法也不管用,就算把UAT的数据集删掉,发布界面照样转圈圈,发布不了也取消不了。

这种玄学问题我就不想纠结原理了,直接说最终是怎么解决的吧。直接把UAT的工作区从服务器容量中移除,通过本地desktop进行发布,将数据集发布到工作区中,再把UAT的工作区加回到服务器容量中,无法点击部署按钮的问题就解决了。然后把本地上传到UAT工作区的数据集删掉,再通过管道按照新增的方式继续发布,即可彻底解决问题。

因为删掉重发这种操作,都是出现在dev发布uat的过程,然而uat发布prd也会受到这种骚操作的影响——一旦前一个环节玩了这种骚操作,下一个环节也得跟着骚操作,需要再玩一次删掉重发的戏码。

0 人点赞