Samouczek: wizualizowanie anomalii przy użyciu funkcji wykrywania wsadowego i usługi Power BI (bez zmian)
Ważne
Od 20 września 2023 r. nie będzie można tworzyć nowych zasobów Narzędzie do wykrywania anomalii. Usługa Narzędzie do wykrywania anomalii jest wycofywana 1 października 2026 r.
Ten samouczek umożliwia znajdowanie anomalii w zestawie danych szeregów czasowych jako partii. Za pomocą programu Power BI Desktop pobierzesz plik programu Excel, przygotujesz dane dla interfejsu API Narzędzie do wykrywania anomalii i zwizualizujesz w nim anomalie statystyczne.
Z tego samouczka dowiesz się, jak wykonywać następujące czynności:
- Importowanie i przekształcanie zestawu danych szeregów czasowych przy użyciu programu Power BI Desktop
- Integrowanie programu Power BI Desktop z interfejsem API Narzędzie do wykrywania anomalii na potrzeby wykrywania anomalii wsadowych
- Wizualizuj anomalie znalezione w danych, w tym oczekiwane i widoczne wartości oraz granice wykrywania anomalii.
Wymagania wstępne
- Subskrypcja platformy Azure
- Program Microsoft Power BI Desktop jest dostępny bezpłatnie.
- Plik programu Excel (.xlsx) zawierający punkty danych szeregów czasowych.
- Po utworzeniu subskrypcji platformy Azure utwórz zasób Narzędzie do wykrywania anomalii w witrynie Azure Portal, aby uzyskać klucz i punkt końcowy.
- Potrzebny będzie klucz i punkt końcowy z utworzonego zasobu, aby połączyć aplikację z interfejsem API Narzędzie do wykrywania anomalii. Tę czynność wykonasz w dalszej części przewodnika Szybki start.
Uwaga
Aby uzyskać najlepsze wyniki podczas korzystania z interfejsu API Narzędzie do wykrywania anomalii, dane szeregów czasowych w formacie JSON powinny obejmować następujące elementy:
- punkty danych oddzielone tym samym interwałem, bez większej niż 10% oczekiwanej liczby brakujących punktów.
- co najmniej 12 punktów danych, jeśli dane nie mają wyraźnego wzorca sezonowego.
- co najmniej 4 wystąpienia wzorca, jeśli dane mają jasny wzorzec sezonowy.
Ładowanie i formatowanie danych szeregów czasowych
Aby rozpocząć, otwórz program Power BI Desktop i załaduj dane szeregów czasowych pobranych z wymagań wstępnych. Ten plik programu Excel zawiera szereg par sygnatur czasowych i wartości czasu koordynowanego (UTC).
Uwaga
Usługa Power BI może używać danych z wielu różnych źródeł, takich jak pliki .csv, bazy danych SQL, magazyn obiektów blob platformy Azure i inne.
W głównym oknie aplikacji Power BI Desktop wybierz wstążkę Narzędzia główne. W grupie Dane zewnętrzne na wstążce otwórz menu rozwijane Pobierz dane i wybierz pozycję Excel.
Po wyświetleniu okna dialogowego przejdź do folderu, w którym pobrano przykładowy plik .xlsx i wybierz go. Po pojawieniu się okna dialogowego Nawigator wybierz pozycję Arkusz1, a następnie pozycję Edytuj.
Usługa Power BI przekonwertuje znaczniki czasu w pierwszej kolumnie na Date/Time
typ danych. Te znaczniki czasu należy przekonwertować na tekst w celu wysłania ich do interfejsu API Narzędzie do wykrywania anomalii. Jeśli edytor Power Query nie otworzy się automatycznie, wybierz pozycję Edytuj zapytania na karcie Narzędzia główne.
Wybierz wstążkę Przekształć w Edytor Power Query. W grupie Dowolna kolumna otwórz menu rozwijane Typ danych: i wybierz pozycję Tekst.
Po otrzymaniu powiadomienia o zmianie typu kolumny wybierz pozycję Zamień bieżący. Następnie wybierz pozycję Zamknij i zastosuj lub Zastosuj na wstążce Narzędzia główne.
Tworzenie funkcji w celu wysyłania danych i formatowania odpowiedzi
Aby sformatować i wysłać plik danych do interfejsu API Narzędzie do wykrywania anomalii, możesz wywołać zapytanie w tabeli utworzonej powyżej. W Edytor Power Query na wstążce Narzędzia główne otwórz menu rozwijane Nowe źródło i wybierz pozycję Puste zapytanie.
Upewnij się, że wybrano nowe zapytanie, a następnie wybierz pozycję Edytor zaawansowany.
W Edytor zaawansowany użyj następującego fragmentu kodu języka Power Query M, aby wyodrębnić kolumny z tabeli i wysłać go do interfejsu API. Następnie zapytanie utworzy tabelę na podstawie odpowiedzi JSON i zwróci ją. Zastąp zmienną prawidłowym kluczem interfejsu apiKey
API Narzędzie do wykrywania anomalii i endpoint
punktem końcowym. Po wprowadzeniu zapytania do Edytor zaawansowany wybierz pozycję Gotowe.
(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
Wywołaj zapytanie w arkuszu danych, wybierając Sheet1
poniższe polecenie Wprowadź parametr, a następnie wybierz pozycję Wywołaj.
Ważne
Pamiętaj, aby usunąć klucz z kodu po zakończeniu i nigdy nie publikować go publicznie. W przypadku środowiska produkcyjnego użyj bezpiecznego sposobu przechowywania i uzyskiwania dostępu do poświadczeń, takich jak usługa Azure Key Vault. Aby uzyskać więcej informacji, zobacz artykuł Dotyczący zabezpieczeń usług Azure AI.
Prywatność i uwierzytelnianie źródła danych
Uwaga
Należy pamiętać o zasadach organizacji dotyczących prywatności i dostępu do danych. Aby uzyskać więcej informacji, zobacz Poziomy prywatności programu Power BI Desktop.
Podczas próby uruchomienia zapytania może zostać wyświetlony komunikat ostrzegawczy, ponieważ korzysta z zewnętrznego źródła danych.
Aby rozwiązać ten problem, wybierz pozycję Plik i Opcje i ustawienia. Następnie wybierz pozycję Opcje. Poniżej bieżącego pliku wybierz pozycję Prywatność i Zignoruj poziomy prywatności i potencjalnie zwiększ wydajność.
Ponadto może zostać wyświetlony komunikat z prośbą o określenie sposobu nawiązywania połączenia z interfejsem API.
Aby rozwiązać ten problem, wybierz pozycję Edytuj poświadczenia w komunikacie. Po pojawieniu się okna dialogowego wybierz pozycję Anonimowe , aby anonimowo nawiązać połączenie z interfejsem API. Następnie wybierz pozycję Połącz.
Następnie wybierz pozycję Zamknij i zastosuj na wstążce Narzędzia główne , aby zastosować zmiany.
Wizualizowanie odpowiedzi interfejsu API Narzędzie do wykrywania anomalii
Na głównym ekranie usługi Power BI rozpocznij korzystanie z powyższych zapytań w celu wizualizacji danych. Najpierw wybierz pozycję Wykres liniowy w obszarze Wizualizacje. Następnie dodaj znacznik czasu z wywoływanej funkcji do osi wykresu liniowego. Kliknij go prawym przyciskiem myszy i wybierz pozycję Znacznik czasu.
Dodaj następujące pola z wywołanej funkcji do pola Wartości wykresu. Użyj poniższego zrzutu ekranu, aby ułatwić tworzenie wykresu.
- Wartość
- UpperMargins
- LowerMargins
- ExpectedValues
Po dodaniu pól wybierz wykres i zmień jego rozmiar, aby wyświetlić wszystkie punkty danych. Wykres będzie wyglądać podobnie do poniższego zrzutu ekranu:
Wyświetlanie punktów danych anomalii
Po prawej stronie okna usługi Power BI pod okienkem POLA kliknij prawym przyciskiem myszy pozycję Wartość w zapytaniu Wywołana funkcja, a następnie wybierz pozycję Nowa szybka miara.
Na wyświetlonym ekranie wybierz pozycję Filtrowana wartość jako obliczenie. Ustaw wartość podstawową na Sum of Value
. Następnie przeciągnij IsAnomaly
z pól Wywołana funkcja do filtru. Wybierz True
z menu rozwijanego Filtr .
Po wybraniu pozycji Ok będziesz mieć Value for True
pole w dolnej części listy pól. Kliknij go prawym przyciskiem myszy i zmień jego nazwę na Anomaly. Dodaj go do wartości wykresu. Następnie wybierz narzędzie Format i ustaw typ osi X na kategorialny.
Zastosuj kolory do wykresu, wybierając narzędzie Format i Kolory danych. Wykres powinien wyglądać podobnie do następującego: