Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wichtig
Ab dem 20. September 2023 können Sie keine neuen Anomaliedetektorressourcen erstellen. Der Anomaliedetektordienst wird am 1. Oktober 2026 eingestellt. Es wird empfohlen, zu Microsoft Fabric zu migrieren, das das Open-Source-Projekt microsoft/anomaly-detector integriert, oder direkt zum Open-Source-Anomaly-Detektorprojekt zu wechseln.
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:
- Verwenden von Power BI Desktop zum Importieren und Transformieren eines Datensatzes für Zeitreihen
- Integrieren Sie Power BI Desktop mit der API Anomaly Detector für die Anomalieerkennung im Batch-Betrieb
- 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 zur Verfügung.
- Eine Excel-Datei (.xlsx) mit Datenpunkten in einer Zeitreihe.
- Sobald Sie Ihr Azure-Abonnement haben, erstellen Sie eine Anomaliedetektorressource im Azure Portal, um Ihren Schlüssel und Endpunkt abzurufen.
- Sie benötigen den Schlüssel und endpunkt aus der Ressource, die Sie erstellen, um Ihre Anwendung mit dem Anomalieerkennungs-API zu verbinden. Dies geschieht später in der Schnellstartanleitung.
Hinweis
Bei besten Ergebnissen bei der Verwendung der Anomalieerkennungs-API 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 zunächst Power BI Desktop und laden Sie die Zeitreihendaten, die Sie aus den vorherigen Schritten heruntergeladen haben. Diese Excel-Datei enthält eine Reihe von Zeitstempel- und Wertepaaren im UTC-Format (Coordinated Universal Time).
Hinweis
Power BI können Daten aus einer Vielzahl von Quellen verwenden, z. B. .csv Dateien, SQL-Datenbanken, Azure BLOB-Speicher und vieles mehr.
Wählen Sie im Hauptfenster Power BI Desktop das Menüband Home aus. Öffnen Sie in der Gruppe External data des Menübands das Dropdownmenü Get Data 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 einen datentyp Date/Time. Diese Zeitstempel müssen in Text konvertiert werden, um an die Anomalieerkennungs-API gesendet zu werden. Wenn der Power Query-Editor nicht automatisch geöffnet wird, wählen Sie auf der Registerkarte "Start" Edit Queries aus.
Wählen Sie im Power Query-Editor das Menüband Transform 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 im Menüband Home das Neue Quelle Dropdownmenü, und wählen Sie Blank Query aus.
Stellen Sie sicher, dass Ihre neue Abfrage ausgewählt ist, und wählen Sie dann Erweiterter Editor aus.
Verwenden Sie im Erweiterter Editor den folgenden 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 die Erweiterter Editor eingegeben haben, wählen Sie Done 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 Möglichkeit zum Speichern und Zugreifen auf Ihre Anmeldeinformationen wie Azure Key Vault. Weitere Informationen finden Sie im Artikel Azure KI Services security.
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-Datenschutzstufen.
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 Anomalieerkennungs-API Antwort
Beginnen Sie im Hauptbildschirm Power BI mit der Verwendung 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
- Obere Ränder
- LowerMargins
- Erwartete Werte
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
Rechts im fenster Power BI unterhalb des Bereichs FIELDS, Klicken Sie mit der rechten Maustaste auf Value unter der Abfrage Invoked Function, und wählen Sie Neue Schnellmessung 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: