PowerBI 报表服务器刷新失败自动重刷并邮件通知
前言:
大家好,我是小小大世界,初來乍到,作為一名BI工作者,一直想著通過某種方式記錄自己成長的點點滴滴,今天靜下心來,開始寫一些自己工作中的經驗。
正文:
前幾天看了幾篇文章,提到了如何使用報表服務器數據庫創建觸發器,在報表刷新失敗時自動發郵件通知,心里想著這個功能挺實用的,不需要整點去看報表是否成功刷新,或者后臺查報表的刷新日志。
不過進一步思考了一下,大家都知道,報表服務器報表多了之后,若都是導入模式制作的報表,難免要定時刷新,但多張報表刷新時間相近,就經常出現刷新失敗的情況,以往是同一張報表設置了多個計劃刷新以保證第一次刷新失敗后能夠在下個計劃時間刷新。如下:
失敗通知解決的刷新失敗監控,但如果在刷新失敗后讓數據庫嘗試再次刷新豈不美哉?但又不能無限的失敗刷新去循環,因為這種情況肯定是你報表配置出問題了,故我的思路如下:
當作業失敗后,自動嘗試再次刷新,若一天內刷新失敗兩次以上(包括兩次)則不再嘗試自動刷新并以郵件通知管理員。
那么如何實現如上步驟呢?腳本來了!在報表服務器所在的數據庫,我是PowerBIReportServer系統默認名字,在SubscriptionHistory表中創建更新觸發器,當初一直以為這個表是插入形式的,結果他是先插入后更新,把我繞了一大圈。
?
```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所用的報表服務器數據庫名 @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 = '要發送的郵箱地址' , @body = '', --郵件內容我這邊沒設置@subject = 'PowerBi Report Refresh fail',--郵件標題@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',--郵件內容展示的SQL,我這邊所展示的是XX文件夾XX報表+失敗時間@attach_query_result_as_file = 0, @query_result_header = 0,@body_format ='HTML'; END END END GO如上實現的效果就是想要的效果,至于SQL SERVER的郵件怎么配置各位就自己百度一下,很簡單的。
最終測試了下作業,滿足我想要的要求,兩次刷新失敗后自動發郵件給我:
結語:
第一次發文章,各位可能有更好的方法,歡迎和我交流,今后也會抽時間記錄各種工作中的問題和好的方法。
?
?
?
原文作者:小小大世界
原文連接:https://blog.csdn.net/qq_43291403/article/details/103913156
總結
以上是生活随笔為你收集整理的PowerBI 报表服务器刷新失败自动重刷并邮件通知的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: laravel 判断字符串包含_lara
- 下一篇: putty连接linux上传python