Ermitteln von Abhängigkeiten zwischen Berichtselementen und Datenquellen

Datenquellen

In Unternehmensumgebungen ist das Management von Berichten und Datenquellen eine wesentliche Aufgabe, um die Integrität und Verfügbarkeit von Unternehmensdaten sicherzustellen. Insbesondere die Nachverfolgung, welche Berichte auf bestimmte Datenquellen zugreifen, ist entscheidend, vor allem wenn Änderungen an diesen Datenquellen vorgenommen werden. In solchen Szenarien ist es notwendig, alle abhängigen Berichte zu identifizieren, um sie entsprechend zu aktualisieren oder zu testen. Dieser Artikel erläutert, wie man SQL-Abfragen nutzen kann, um solche Abhängigkeiten in einer SQL Server Reporting Services (SSRS) Umgebung effizient zu ermitteln.

Die vorgestellte SQL-Abfrage ist ein leistungsfähiges Werkzeug, um die Abhängigkeiten zwischen Berichten und Datenquellen direkt aus der ReportServer-Datenbank des SQL Servers zu extrahieren. Diese Abfrage liefert drei wichtige Informationen: den Namen der Datenquelle (Data_Source_Name), den Namen des abhängigen Elements (meist Berichte, Dependent_Item_Name) und den Pfad des abhängigen Elements im Report Server (Dependent_Item_Path). Die Abfrage nutzt mehrere JOIN-Operationen auf der DataSource– und Catalog-Tabelle der ReportServer-Datenbank, um die gewünschten Informationen zu extrahieren.

In diesem Beispiel suche ich alle Elemente die im Namen %DWFa% haben.

SELECT
    C2.Name AS Data_Source_Name,
    C.Name AS Dependent_Item_Name,
    C.Path AS Dependent_Item_Path
FROM
    ReportServer.dbo.DataSource AS DS
        INNER JOIN
    ReportServer.dbo.Catalog AS C
        ON
            DS.ItemID = C.ItemID
                AND
            DS.Link IN (SELECT ItemID FROM ReportServer.dbo.Catalog
                        WHERE Type = 5) --Type 5 identifies data sources
        FULL OUTER JOIN
    ReportServer.dbo.Catalog C2
        ON
            DS.Link = C2.ItemID
WHERE
    C2.Type = 5
      AND C2.Name like '%DWFa%'
ORDER BY
C.Path,
    C2.Name ASC,
    C.Name ASC;

Ermittlung aller Berichte ohne zugeordnete Datenquelle:

SELECT C.Name, C.Path
FROM ReportServer.dbo.Catalog AS C
LEFT JOIN ReportServer.dbo.DataSource AS DS ON C.ItemID = DS.ItemID
WHERE DS.ItemID IS NULL AND C.Type = 2
ORDER BY C.Name;

manueller-check-DatenquellenNatürlich können wir auch manuell im Reporting-Portal unter „Stamm -> Datenquellen -> Unsere Datenquelle“ unter Abhängige Elemente alle Reports anzeigen lassen, die von dieser Quelle abhängig sind.

Wie hat dir der Artikel gefallen?

Vielen Dank für dein Feedback!
About Frank 83 Articles

Ich bin Frank, Data Warehouse und BI-Entwickler mit langjähriger Expertise in diesem Bereich. Ich verfüge über mehr als 20 Jahre Berufserfahrung im DWH Umfeld. Das Analysieren und Interpretieren von Zahlen, Daten und Fakten ist meine große Leidenschaft, aus diesem Grunde ist auch diese Seite hier entstanden.

Be the first to comment

Leave a Reply

Your email address will not be published.


*