日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

PowerBI 报表服务器刷新失败自动重刷并邮件通知

發(fā)布時(shí)間:2024/7/5 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PowerBI 报表服务器刷新失败自动重刷并邮件通知 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言:

大家好,我是小小大世界,初來(lái)乍到,作為一名BI工作者,一直想著通過(guò)某種方式記錄自己成長(zhǎng)的點(diǎn)點(diǎn)滴滴,今天靜下心來(lái),開(kāi)始寫一些自己工作中的經(jīng)驗(yàn)。

正文:

前幾天看了幾篇文章,提到了如何使用報(bào)表服務(wù)器數(shù)據(jù)庫(kù)創(chuàng)建觸發(fā)器,在報(bào)表刷新失敗時(shí)自動(dòng)發(fā)郵件通知,心里想著這個(gè)功能挺實(shí)用的,不需要整點(diǎn)去看報(bào)表是否成功刷新,或者后臺(tái)查報(bào)表的刷新日志。

不過(guò)進(jìn)一步思考了一下,大家都知道,報(bào)表服務(wù)器報(bào)表多了之后,若都是導(dǎo)入模式制作的報(bào)表,難免要定時(shí)刷新,但多張報(bào)表刷新時(shí)間相近,就經(jīng)常出現(xiàn)刷新失敗的情況,以往是同一張報(bào)表設(shè)置了多個(gè)計(jì)劃刷新以保證第一次刷新失敗后能夠在下個(gè)計(jì)劃時(shí)間刷新。如下:

失敗通知解決的刷新失敗監(jiān)控,但如果在刷新失敗后讓數(shù)據(jù)庫(kù)嘗試再次刷新豈不美哉?但又不能無(wú)限的失敗刷新去循環(huán),因?yàn)檫@種情況肯定是你報(bào)表配置出問(wèn)題了,故我的思路如下:

當(dāng)作業(yè)失敗后,自動(dòng)嘗試再次刷新,若一天內(nèi)刷新失敗兩次以上(包括兩次)則不再嘗試自動(dòng)刷新并以郵件通知管理員。

那么如何實(shí)現(xiàn)如上步驟呢?腳本來(lái)了!在報(bào)表服務(wù)器所在的數(shù)據(jù)庫(kù),我是PowerBIReportServer系統(tǒng)默認(rèn)名字,在SubscriptionHistory表中創(chuàng)建更新觸發(fā)器,當(dāng)初一直以為這個(gè)表是插入形式的,結(jié)果他是先插入后更新,把我繞了一大圈。

?

```sql CREATE TRIGGER [dbo].[RefreshFailurereport] ON [dbo].[SubscriptionHistory]AFTER update AS BEGINSET NOCOUNT ON; declare @b int, @c nvarchar(max), @d int begin select top(1) @b=Status,@c=subscriptionid from Subscriptionhistory order by endtime desc select @d=count(subscriptionid) from Subscriptionhistory where subscriptionid=@c and Status=@b and left(starttime,10)=left(getdate(),10) if (@b =2 and @d<2) begin WAITFOR DELAY '0:0:10' exec [PowerBIReportServer].dbo.AddEvent --這邊要注意換成你PowerowerBIshiyo所用的報(bào)表服務(wù)器數(shù)據(jù)庫(kù)名 @EventType='DataModelRefresh', @EventData=@c end else if (@b =2 and @d>=2) BEGIN EXEC msdb.dbo.sp_send_dbmail @profile_name = '配置名',--不知道的select [name] from [msdb].[dbo].[sysmail_profile]@recipients = '要發(fā)送的郵箱地址' , @body = '', --郵件內(nèi)容我這邊沒(méi)設(shè)置@subject = 'PowerBi Report Refresh fail',--郵件標(biāo)題@query = N'SELECT TOP 1[Path],left([LastStatus],19),[LastRunTime]FROM [PowerBIReportServer].[dbo].[Subscriptions] A0 WITH(NOLOCK)LEFT JOIN [PowerBIReportServer].[dbo].[Catalog] A1 WITH(NOLOCK)ON A0.Report_OID = A1.ItemIDLEFT JOIN [PowerBIReportServer].[dbo].[Users] A2 WITH(NOLOCK)ON A0.OwnerID = A2.UserIDwhere [EventType] = ''DataModelRefresh''and [LastStatus] <> ''Completed Data Refresh''order by lastruntime desc',--郵件內(nèi)容展示的SQL,我這邊所展示的是XX文件夾XX報(bào)表+失敗時(shí)間@attach_query_result_as_file = 0, @query_result_header = 0,@body_format ='HTML'; END END END GO

如上實(shí)現(xiàn)的效果就是想要的效果,至于SQL SERVER的郵件怎么配置各位就自己百度一下,很簡(jiǎn)單的。

最終測(cè)試了下作業(yè),滿足我想要的要求,兩次刷新失敗后自動(dòng)發(fā)郵件給我:

結(jié)語(yǔ):

第一次發(fā)文章,各位可能有更好的方法,歡迎和我交流,今后也會(huì)抽時(shí)間記錄各種工作中的問(wèn)題和好的方法。

?

?

?

原文作者:小小大世界

原文連接:https://blog.csdn.net/qq_43291403/article/details/103913156

總結(jié)

以上是生活随笔為你收集整理的PowerBI 报表服务器刷新失败自动重刷并邮件通知的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。