Oktatóanyag: Anomáliák vizualizációja kötegészlelés és Power BI használatával (univariate)
Fontos
2023. szeptember 20-tól nem hozhat létre új anomáliadetektor erőforrásokat. A anomáliadetektor szolgáltatás 2026. október 1-jén megszűnik.
Ebben az oktatóanyagban kötegként kereshet anomáliákat egy idősor adatkészletében. A Power BI desktop használatával egy Excel-fájlt fog készíteni, előkészíti az adatokat a anomáliadetektor API-hoz, és vizualizálja az egész statisztikai anomáliákat.
Az oktatóanyag segítségével megtanulhatja a következőket:
- Idősor-adatkészlet importálása és átalakítása a Power BI Desktop használatával
- A Power BI Desktop integrálása a anomáliadetektor API-val kötegelt anomáliadetektáláshoz
- Vizualizálja az adatokban található anomáliákat, beleértve a várt és a látott értékeket, valamint az anomáliadetektálási határokat.
Előfeltételek
- Azure-előfizetés
- Ingyenesen elérhető Microsoft Power BI Desktop.
- Idősor adatpontokat tartalmazó excel-fájl (.xlsx).
- Miután megkapta az Azure-előfizetését, hozzon létre egy anomáliadetektor erőforrást az Azure Portalon a kulcs és a végpont lekéréséhez.
- Az alkalmazás anomáliadetektor API-hoz való csatlakoztatásához szüksége lesz a létrehozott erőforrás kulcsára és végpontjára. Ezt a rövid útmutató egy későbbi részében teheti meg.
Megjegyzés:
Az anomáliadetektor API használatakor a legjobb eredmény érdekében a JSON-formátumú idősoradatoknak tartalmazniuk kell a következőket:
- azonos intervallummal elválasztott adatpontok, amelyekből a várt számú pont legfeljebb 10%-a hiányzik.
- legalább 12 adatpont, ha az adatok nem rendelkeznek egyértelmű szezonális mintázattal.
- legalább 4 minta előfordulása, ha az adatok egyértelműen szezonális mintázattal rendelkeznek.
Az idősor adatainak betöltése és formázása
Első lépésként nyissa meg a Power BI Desktopot, és töltse be az előfeltételekből letöltött idősoradatokat. Ez az Excel-fájl az egyezményes világidő (UTC) időbélyegét és értékpárjait tartalmazza.
Megjegyzés:
A Power BI számos különböző forrásból származó adatokat használhat, például .csv fájlokat, SQL-adatbázisokat, Azure Blob Storage-t stb.
A Power BI Desktop főablakában válassza ki a Kezdőlap menüszalagot. A menüszalag Külső adatcsoportjában nyissa meg az Adatok lekérése legördülő menüt, és válassza az Excelt.
A párbeszédpanel megjelenése után lépjen arra a mappára, ahová letöltötte a példa .xlsx fájlt, és jelölje ki. A Kezelő párbeszéd megjelenése után válassza a Lap1, majd a Szerkesztés lehetőséget.
A Power BI az első oszlop időbélyegét adattípussá Date/Time
alakítja. Ezeket az időbélyegeket szöveggé kell konvertálni ahhoz, hogy az anomáliadetektor API-ba lehessen küldeni. Ha a Power Query-szerkesztő nem nyílik meg automatikusan, válassza a Lekérdezések szerkesztése lehetőséget a kezdőlapon.
Válassza az Átalakítás menüszalagot a Power Query-szerkesztő. A Bármely oszlop csoportban nyissa meg az Adattípus: legördülő menüt, és válassza a Szöveg lehetőséget.
Amikor értesítést kap az oszloptípus módosításáról, válassza az Aktuális cseréje lehetőséget. Ezután válassza a Kezdőlap menüszalagon a Bezárás és alkalmazás lehetőséget.
Függvény létrehozása az adatok elküldéséhez és a válasz formázásához
Az adatfájl anomáliadetektor API-ba való formázásához és elküldéséhez meghívhat egy lekérdezést a fent létrehozott táblában. A Power Query-szerkesztő a Kezdőlap menüszalagjáról nyissa meg az Új forrás legördülő menüt, és válassza az Üres lekérdezés lehetőséget.
Győződjön meg arról, hogy az új lekérdezés ki van jelölve, majd válassza a Speciális szerkesztő.
A Speciális szerkesztő az alábbi Power Query M-kódrészlet használatával nyerje ki az oszlopokat a táblából, és küldje el az API-nak. Ezt követően a lekérdezés létrehoz egy táblát a JSON-válaszból, és visszaadja. Cserélje le a változót az apiKey
érvényes anomáliadetektor API-kulcsra és endpoint
a végpontra. Miután beírta a lekérdezést a Speciális szerkesztő, válassza a Kész lehetőséget.
(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
Hívja meg a lekérdezést az adatlapon az Enter Paraméter alatt, Sheet1
majd válassza a Meghívás lehetőséget.
Fontos
Ne felejtse el eltávolítani a kulcsot a kódból, amikor elkészült, és soha ne tegye közzé nyilvánosan. Éles környezetben biztonságos módon tárolhatja és érheti el a hitelesítő adatait, például az Azure Key Vaultot. További információkért tekintse meg az Azure AI-szolgáltatások biztonsági cikkét.
Adatforrások adatainak védelme és hitelesítése
Megjegyzés:
Vegye figyelembe a szervezet adatvédelmi és hozzáférési szabályzatait. További információt a Power BI Desktop adatvédelmi szintjeiben talál.
A lekérdezés futtatásakor figyelmeztető üzenet jelenhet meg, mivel az külső adatforrást használ.
A probléma megoldásához válassza a Fájl, valamint a Beállítások és beállítások lehetőséget. Ezután válassza a Beállítások lehetőséget. Az Aktuális fájl alatt válassza az Adatvédelem lehetőséget, és hagyja figyelmen kívül az adatvédelmi szinteket, és javíthatja a teljesítményt.
Emellett kaphat egy üzenetet, amely arra kéri, hogy adja meg, hogyan szeretne csatlakozni az API-hoz.
A probléma megoldásához válassza a Hitelesítő adatok szerkesztése lehetőséget az üzenetben. A párbeszédablak megjelenése után válassza a Névtelen lehetőséget az API-hoz való névtelen csatlakozáshoz. Ezután válassza a Csatlakozás.
Ezután válassza a Bezárás > Alkalmazás lehetőséget a Kezdőlap menüszalagon a módosítások alkalmazásához.
A anomáliadetektor API-válasz vizualizációja
A Power BI fő képernyőjén kezdje el használni a fent létrehozott lekérdezéseket az adatok megjelenítéséhez. Először válassza a Vonaldiagram lehetőséget a Vizualizációkban. Ezután adja hozzá a meghívott függvény időbélyegét a vonaldiagram tengelyéhez. Kattintson rá a jobb gombbal, és válassza az Időbélyeg lehetőséget.
Adja hozzá a következő mezőket a meghívott függvényből a diagram Értékek mezőjéhez. Az alábbi képernyőkép segítségével létrehozhatja a diagramot.
- Érték
- Felsőmargins
- Alsómargins
- ExpectedValues
A mezők hozzáadása után jelölje ki a diagramot, és méretezze át az összes adatpont megjelenítéséhez. A diagram az alábbi képernyőképhez hasonlóan fog kinézni:
Rendellenes adatpontok megjelenítése
A Power BI ablakának jobb oldalán, a MEZŐK panel alatt kattintson a jobb gombbal az Érték elemre a Meghívott függvény lekérdezése alatt, és válassza az Új gyorsmérő lehetőséget.
A megjelenő képernyőn válassza a Szűrt érték lehetőséget számításként. Alapérték beállítása a következőreSum of Value
: . Ezután húzza IsAnomaly
a meghívásos függvény mezőiből a Szűrés gombra. Válassza True
ki a Szűrő legördülő menüt.
Az OK gomb kiválasztása után egy mező jelenik meg Value for True
a mezők listájának alján. Kattintson rá a jobb gombbal, és nevezze át Anomáliára. Adja hozzá a diagram Értékeihez. Ezután válassza a Formátum eszközt, és állítsa az X tengely típusát kategorikusra.
Színek alkalmazása a diagramra a Formátum eszköz és az Adatszínek lehetőség kiválasztásával. A diagramnak a következőhöz hasonlóan kell kinéznie: