У нас есть множество панелей мониторинга Power BI с запланированными обновлениями. Эти обновления представляют собой задания агента SQL с именами, являющимися идентификаторами GUID. Я хотел бы иметь возможность проверять неудачные задания агента SQL и знать, в каком отчете/панели мониторинга Power BI произошел сбой обновления.
Есть ли способ использовать T-SQL для разрешения имен GUID в отчете Power BI? Что-то вроде:
SELECT *
FROM msdb.dbo.sysjobs J
JOIN ReportServer.dbo.Catalog C
ON CAST(C.ItemID AS UNIQUEIDENTIFIER) = CAST(J.name AS UNIQUEIDENTIFIER)
Я подумал, что поделюсь тем, что выяснил, на случай, если другим понадобится запросить ту же информацию:
В базе данных ReportServer в таблице ExecutionLogStorage были данные, которые я искал, чтобы связать запланированные обновления с таблицей Catalog. Там есть поле под названием «Тип запроса». RequestType 2 — это обновление кэша.
Итак, я использовал следующий запрос, чтобы начать просмотр статусов обновлений кэша Power BI:
SELECT L.TimeStart, L.TimeEnd, C.Path, L.AdditionalInfo, L.Status,
ROW_NUMBER() OVER (PARTITION BY C.Path ORDER BY L.TimeEnd DESC) AS rn, L.ExecutionId
FROM ReportServer.dbo.ExecutionLogStorage L WITH(NOLOCK)
LEFT OUTER JOIN ReportServer.dbo.Catalog C WITH(NOLOCK) ON (L.ReportID = C.ItemID)
WHERE L.RequestType = 2 --cache refreshes
AND L.TimeEnd >= DATEADD(DAY,-1,GETDATE())