Tutorial: Visualisieren von Anomalien mithilfe von Batcherkennung und Power BI (univariat)
Wichtig
Ab dem 20. September 2023 können Sie keine neuen Ressourcen für die Anomalieerkennung mehr erstellen. Der Anomalieerkennung-Dienst wird am 1. Oktober 2026 eingestellt.
In diesem Tutorial erfahren Sie, wie Sie Anomalien innerhalb eines Zeitreihendatasets im Batchmodus finden. Sie arbeiten in Power BI Desktop mit einer Excel-Datei, bereiten die Daten für die Anomalieerkennungs-API auf und visualisieren statistische Anomalien in der gesamten Datei.
In diesem Tutorial lernen Sie Folgendes:
- Importieren und Transformieren eines Zeitreihendatasets mithilfe von Power BI Desktop
- Integrieren von Power BI Desktop in die Anomalieerkennungs-API zur Erkennung von Anomalien im Batchmodus
- Visualisieren von Anomalien, die in Ihren Daten gefunden wurden, einschließlich erwarteter und beobachteter Werte, und Bestimmen von Grenzen für die Erkennung von Anomalien
Voraussetzungen
- Ein Azure-Abonnement
- Microsoft Power BI Desktop, kostenlos verfügbar.
- Eine Excel-Datei (.xlsx) mit Datenpunkten in einer Zeitreihe.
- Sobald Sie über Ihr Azure-Abonnement verfügen, können Sie im Azure-Portal eine Anomalieerkennungsressource erstellen , um Ihren Schlüssel und Endpunkt zu erhalten.
- Sie benötigen den Schlüssel und Endpunkt der von Ihnen erstellten Ressource, um Ihre Anwendung mit der Anomalieerkennungs-API zu verbinden. Dies geschieht später in der Schnellstartanleitung.
Hinweis
Damit bei der Verwendung der API für die Anomalieerkennung die besten Ergebnisse erzielt werden, sollten Ihre JSON-formatierten Zeitreihendaten Folgendes enthalten:
- Datenpunkte, die durch dasselbe Intervall getrennt sind, wobei nicht mehr als 10 % der erwarteten Anzahl von Punkten fehlen.
- Mindestens 12 Datenpunkte, wenn Ihre Daten kein eindeutiges saisonales Muster aufweisen.
- Mindestens vier Mustervorkommen, wenn Ihre Daten ein eindeutiges saisonales Muster aufweisen.
Laden und Formatieren der Zeitreihendaten
Öffnen Sie zum Einstieg Power BI Desktop, und laden Sie die Zeitreihendaten, die Sie unter „Voraussetzungen“ heruntergeladen haben. Diese Excel-Datei enthält eine Reihe von Zeitstempel- und Wertepaaren im UTC-Format (Coordinated Universal Time).
Hinweis
Power BI kann Daten aus einer Vielzahl von Quellen verarbeiten, beispielsweise u.a. CSV-Dateien, SQL-Datenbanken und Azure Blob Storage.
Klicken Sie im Hauptfenster von Power BI Desktop auf das Menüband Start. Öffnen Sie in der Gruppe Externe Daten des Menübands das Dropdownmenü Daten abrufen, und wählen Sie Excel aus.
Navigieren Sie im angezeigten Dialogfeld zum Ordner, in den Sie die XLSX-Beispieldatei heruntergeladen haben, und wählen Sie sie aus. Nachdem das Dialogfeld Navigator angezeigt wird, wählen Sie Sheet1 aus und dann Bearbeiten.
Power BI konvertiert die Zeitstempel in der ersten Spalte in den Datentyp Date/Time
. Diese Zeitstempel müssen in Text konvertiert werden, um an die Anomalieerkennungs-API gesendet werden zu können. Wenn der Power Query-Editor nicht automatisch geöffnet wird, wählen Sie auf der Registerkarte „Start“ die Option Abfragen bearbeiten aus.
Wählen Sie im Power Query-Editor das Menüband Transformieren aus. Öffnen Sie in der Gruppe Beliebige Spalte das Dropdownmenü Datentyp: , und wählen Sie Text aus.
Wenn Sie einen Hinweis zum Ändern des Spaltentyps erhalten, wählen Sie Aktuelle ersetzen aus. Wählen Sie anschließend auf dem Menüband Start die Option Schließen und anwenden oder Anwenden aus.
Erstellen einer Funktion zum Senden der Daten und Formatieren der Antwort
Zum Formatieren und Senden der Datendatei an die Anomalieerkennungs-API können Sie eine Abfrage für die oben erstellte Tabelle aufrufen. Öffnen Sie im Power Query-Editor auf dem Menüband Start das Dropdownmenü Neue Quelle, und wählen Sie Leere Abfrage aus.
Stellen Sie sicher, dass Ihre neue Abfrage ausgewählt ist, und wählen Sie dann Erweiterter Editor aus.
Verwenden Sie in „Erweiterter Editor“ den folgende Power Query M-Codeausschnitt, um die Spalten aus der Tabelle zu extrahieren und an die API zu senden. Anschließend erstellt die Abfrage aus der JSON-Antwort eine Tabelle und gibt diese zurück. Ersetzen Sie die Variable apiKey
durch Ihren gültigen Anomalieerkennungs-API-Schlüssel und endpoint
durch Ihren Endpunkt. Nachdem Sie die Abfrage in „Erweiterter Editor“ eingegeben haben, wählen Sie Fertig aus.
(table as table) => let
apikey = "[Placeholder: Your Anomaly Detector resource access key]",
endpoint = "[Placeholder: Your Anomaly Detector resource endpoint]/anomalydetector/v1.0/timeseries/entire/detect",
inputTable = Table.TransformColumnTypes(table,{{"Timestamp", type text},{"Value", type number}}),
jsontext = Text.FromBinary(Json.FromValue(inputTable)),
jsonbody = "{ ""Granularity"": ""daily"", ""Sensitivity"": 95, ""Series"": "& jsontext &" }",
bytesbody = Text.ToBinary(jsonbody),
headers = [#"Content-Type" = "application/json", #"Ocp-Apim-Subscription-Key" = apikey],
bytesresp = Web.Contents(endpoint, [Headers=headers, Content=bytesbody, ManualStatusHandling={400}]),
jsonresp = Json.Document(bytesresp),
respTable = Table.FromColumns({
Table.Column(inputTable, "Timestamp")
,Table.Column(inputTable, "Value")
, Record.Field(jsonresp, "IsAnomaly") as list
, Record.Field(jsonresp, "ExpectedValues") as list
, Record.Field(jsonresp, "UpperMargins")as list
, Record.Field(jsonresp, "LowerMargins") as list
, Record.Field(jsonresp, "IsPositiveAnomaly") as list
, Record.Field(jsonresp, "IsNegativeAnomaly") as list
}, {"Timestamp", "Value", "IsAnomaly", "ExpectedValues", "UpperMargin", "LowerMargin", "IsPositiveAnomaly", "IsNegativeAnomaly"}
),
respTable1 = Table.AddColumn(respTable , "UpperMargins", (row) => row[ExpectedValues] + row[UpperMargin]),
respTable2 = Table.AddColumn(respTable1 , "LowerMargins", (row) => row[ExpectedValues] - row[LowerMargin]),
respTable3 = Table.RemoveColumns(respTable2, "UpperMargin"),
respTable4 = Table.RemoveColumns(respTable3, "LowerMargin"),
results = Table.TransformColumnTypes(
respTable4,
{{"Timestamp", type datetime}, {"Value", type number}, {"IsAnomaly", type logical}, {"IsPositiveAnomaly", type logical}, {"IsNegativeAnomaly", type logical},
{"ExpectedValues", type number}, {"UpperMargins", type number}, {"LowerMargins", type number}}
)
in results
Rufen Sie die Abfrage auf Ihrem Datenblatt durch Auswahl von Sheet1
unter Parameter eingeben auf, und wählen Sie Aufrufen aus.
Wichtig
Denken Sie daran, den Schlüssel aus Ihrem Code zu entfernen, wenn Sie fertig sind, und ihn niemals zu veröffentlichen. Verwenden Sie für die Produktion eine sichere Art der Speicherung und des Zugriffs auf Ihre Anmeldeinformationen wie Azure Key Vault. Weitere Informationen finden Sie im Artikel zur Azure KI Services-Sicherheit.
Datenschutz und Authentifizierung für die Datenquelle
Hinweis
Beachten Sie die Richtlinien Ihres Unternehmens für den Schutz von Daten und den Zugriff darauf. Weitere Informationen finden Sie unter Power BI Desktop – Datenschutzebenen.
Sie erhalten möglicherweise eine Warnmeldung, wenn Sie versuchen, die Abfrage auszuführen, da sie eine externe Datenquelle verwendet.
Um dieses Problem zu beheben, wählen Sie Datei und Optionen und Einstellungen aus. Wählen Sie dann Optionen aus. Wählen Sie unter Aktuelle Datei zunächst Datenschutz und dann Sicherheitsstufen ignorieren und potenziell die Leistung verbessern aus.
Außerdem erhalten Sie möglicherweise eine Meldung, in der Sie aufgefordert werden, anzugeben, wie Sie sich mit der API verbinden möchten.
Um dieses Problem zu beheben, wählen Sie in der Meldung Anmeldeinformationen bearbeiten aus. Wählen Sie im eingeblendeten Dialogfeld Anonym aus, um mit der API eine anonyme Verbindung herzustellen. Wählen Sie dann Verbinden aus.
Wählen Sie anschließend auf dem Menüband Start die Option Schließen und anwenden aus, um die Änderungen anzuwenden.
Visualisieren der Antwort der Anomalieerkennungs-API
Beginnen Sie auf dem Hauptbildschirm von Power BI mit dem Verwenden der oben erstellten Abfragen, um die Daten zu visualisieren. Wählen Sie in Visualisierungen zuerst Liniendiagramm aus. Fügen Sie dann den Zeitstempel der aufgerufenen Funktion zur Achse des Liniendiagramms hinzu. Klicken Sie mit der rechten Maustaste darauf, und wählen Sie Zeitstempel aus.
Fügen Sie die folgenden Felder aus der aufgerufenen Funktion dem Feld Werte des Diagramms hinzu. Erstellen Sie Ihr Diagramm anhand des folgenden Screenshots.
- Wert
- UpperMargins
- LowerMargins
- ExpectedValues
Wählen Sie nach dem Hinzufügen der Felder das Diagramm aus, und ändern Sie dessen Größe so, dass alle Datenpunkte angezeigt werden. Ihr Diagramm sieht etwa wie der folgende Screenshot aus:
Anzeigen anomaler Datenpunkte
Klicken Sie rechts im Power BI-Fenster unter dem Bereich FELDER mit der rechten Maustaste unter der Abfrage „Aufgerufene Funktion“ auf Wert, und wählen Sie dann Neues Quickmeasure aus.
Wählen Sie auf dem eingeblendeten Bildschirm als Berechnung Gefilterter Wert aus. Legen Sie Basiswert auf Sum of Value
fest. Ziehen Sie dann IsAnomaly
aus den Feldern von Aufgerufene Funktion auf Filter. Wählen Sie True
im Dropdownmenü Filter aus.
Nachdem Sie OK ausgewählt haben, sehen Sie unten in der Liste Ihrer Felder ein Value for True
-Feld. Klicken Sie mit der rechten Maustaste darauf, und benennen Sie es in Anomalie um. Fügen Sie es dem Bereich Werte des Diagramms hinzu. Wählen Sie dann das Tool Format aus, und legen Sie den Typ der X-Achse auf Kategorie fest.
Wenden Sie Farben auf Ihr Diagramm an, indem Sie das Tool Format und dann Datenfarben auswählen. Ihr Diagramm sollte etwa wie folgt aussehen: