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

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.

An image of the

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.

An image of the data source

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.

An image of the data type drop down

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ő.

An image of the

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.

An image of the invoke function

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.

An image showing a warning created by Power BI

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.

An image showing a request to specify access credentials

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.

Right-clicking the Timestamp value

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

An image of the chart settings

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:

An image of the chart visualization

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.

An image of the new quick measure screen

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.

A second image of the new quick measure screen

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.

An image of the format x axis

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:

An image of the final chart