Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
Od 20 września 2023 r. nie będzie można tworzyć nowych zasobów usługi Anomaly Detector. Usługa narzędzia do wykrywania anomalii jest wycofywana 1 października 2026 r. Zalecamy migrację do Microsoft Fabric, który integruje projekt open-source microsoft/anomaly-detector, lub bezpośrednio do projektu open-source narzędzia do wykrywania anomalii.
Ten samouczek umożliwia znajdowanie anomalii w zestawie danych szeregów czasowych w trybie wsadowym. Korzystając z Power BI desktop, użyjesz pliku Excel, przygotujesz dane do Anomaly Detector API 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
- Zintegruj program Power BI Desktop z API wykrywającym anomalie do wykrywania anomalii wsadowych
- Wizualizuj anomalie znalezione w danych, w tym oczekiwane i widoczne wartości oraz granice wykrywania anomalii.
Wymagania wstępne
- Subskrypcja Azure
- Microsoft Power BI Desktop dostępny bezpłatnie.
- Plik programu Excel (.xlsx) zawierający punkty danych szeregów czasowych.
- Po utworzeniu subskrypcji Azure utwórz zasób narzędzia do wykrywania anomalii w portalu Azure, aby uzyskać klucz i punkt końcowy.
- Potrzebny będzie klucz i punkt końcowy z utworzonego zasobu, aby połączyć aplikację z Anomaly Detector API. Tę czynność wykonasz w dalszej części przewodnika Szybki start.
Uwaga
Aby uzyskać najlepsze wyniki, korzystając z Anomaly Detector API, dane szeregów czasowych w formacie JSON powinny zawierać:
- 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
Power BI może używać danych z wielu różnych źródeł, takich jak pliki .csv, bazy danych SQL, Azure Blob Storage i inne.
W głównym oknie Power BI Desktop wybierz wstążkę Home. W grupie danych External na wstążce otwórz grupę Pobierz dane i wybierz 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.
Power BI przekonwertuje znaczniki czasu w pierwszej kolumnie na typ danych Date/Time. Te znaczniki czasu należy przekonwertować na tekst w celu wysłania ich do Anomaly Detector API. Jeśli edytor Power Query nie otwiera się automatycznie, wybierz pozycję Edytuj zapytania na karcie Narzędzia główne.
Wybierz wstążkę Transform na 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 Zastąp bieżący. Następnie wybierz Zamknij i zastosuj lub Zastosuj na wstążce Strona główna.
Tworzenie funkcji w celu wysyłania danych i formatowania odpowiedzi
Aby sformatować i wysłać plik danych do Anomaly Detector API, możesz wywołać zapytanie w tabeli utworzonej powyżej. W Edytorze Power Query, na wstążce Home, otwórz menu rozwijane Nowe źródło i wybierz pozycję Pusta kwerenda.
Upewnij się, że wybrano nowe zapytanie, a następnie wybierz pozycję Edytor zaawansowany.
W Edytor zaawansowany użyj następującego fragmentu kodu Power Query M, aby wyodrębnić kolumny z tabeli i wysłać ją do interfejsu API. Następnie zapytanie utworzy tabelę na podstawie odpowiedzi JSON i zwróci ją. Zastąp zmienną apiKey swoim prawidłowym kluczem API Anomaly Detector, a zmienną endpoint adresem końcowym. Po wprowadzeniu zapytania do Edytor zaawansowany wybierz pozycję Done.
(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 środowisku produkcyjnym użyj bezpiecznego sposobu przechowywania i uzyskiwania dostępu do poświadczeń, takich jak Azure Key Vault. Aby uzyskać więcej informacji, zobacz artykuł Zabezpieczenia usługi 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 Power BI Poziomy prywatności aplikacji 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 Anomaly Detector API
Na głównym ekranie Power BI zacznij używać zapytań utworzonych powyżej 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 Sygnaturę 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ść
- Górne marginesy
- Dolne marginesy
- OczekiwaneWartości
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 Power BI, poniżej okienka FIELDS kliknij prawym przyciskiem myszy Value w obszarze Wwołana kwerenda funkcji i wybierz 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: