Kurz: Vizualizace datových anomálií v událostech v reálném čase odesílaných do služby Azure Event Hubs

V případě služby Azure Event Hubs můžete pomocí Azure Stream Analytics kontrolovat příchozí data a vytahovat anomálie, které pak můžete vizualizovat v Power BI. Řekněme, že máte tisíce zařízení, která neustále odesílají data v reálném čase do centra událostí a tato data představují až miliony událostí za sekundu. Jak v takovém množství dat kontrolovat anomálie nebo chyby? Co když například zařízení odesílají transakce platební karty a potřebujete zachytit libovolné místo, kde máte více transakcí v několika zemích nebo oblastech v rámci 5sekundového časového intervalu? K tomu může dojít, když někdo krade platební karty a pak je používá k nákupu věcí po celém světě ve stejnou dobu.

V tomto kurzu budete tento příklad simulovat. Spustíte aplikaci, která vytváří transakce provedené platebními kartami a odesílá je do centra událostí. Pak si přečtete datový proud v reálném čase pomocí Azure Stream Analytics, který odděluje platné transakce od neplatných transakcí, a pak pomocí Power BI vizuálně identifikovat transakce, které jsou označené jako neplatné.

V tomto kurzu se naučíte:

  • Vytvoření oboru názvů služby Event Hubs
  • Vytvoření centra událostí
  • Spuštění aplikace, která odesílá transakce provedené platebními kartami
  • Konfigurace úlohy Stream Analytics pro zpracování těchto transakcí
  • Konfigurace vizualizace Power BI pro zobrazení výsledků

Požadavky

Než začnete, ujistěte se, že jste dokončili následující kroky:

Spuštění aplikace a vygenerování testovacích dat událostí

Ukázky služby Event Hubs na GitHub zahrnují Detektor anomálií aplikaci, která za vás vytváří testovací data. Simuluje používání platebních karet tím, že do centra událostí zapisuje transakce provedené platebními kartami. Zároveň občas pro jednu platební kartu zapíše několik transakcí v několika oblastech, aby se označily jako anomálie. Pokud chcete tuto aplikaci spustit, postupujte následovně:

  1. Z GitHubu si stáhněte ukázky pro službu Azure Event Hubs a místně je rozbalte.

  2. Přejděte do složky \azure-event-hubs-master\samples\DotNet\ .

  3. Přepněte do složky Azure.Messaging.EventHubs\AnomalyDetector\ a poklikáním otevřete řešení v Visual Studio.

    Pokud chcete použít starou verzi ukázky, která používá starý balíček Microsoft.Azure.EventHubs, otevřete řešení ze složky Microsoft.Azure.EventHubs\AnomalyDetector .

  4. Otevřete soubor Program.cs a nahraďte Event Hubs connection string připojovacím řetězcem, který jste si uložili při spuštění skriptu.

  5. Nahraďte Event Hub name názvem vašeho centra událostí. Stisknutím klávesy F5 spusťte aplikaci. Aplikace začne odesílat události do vašeho centra událostí a pokračuje, dokud neodešle 1 000 událostí. Existuje několik případů, kdy aplikace musí být spuštěná, abyste mohli načíst data. V následujících pokynech jsou tyto případy na příslušných místech uvedené.

Nastavení služby Azure Stream Analytics

Teď můžete streamovat data do svého centra událostí. Pokud chcete tato data využít ve vizualizaci Power BI, začněte nastavením úlohy Stream Analytics pro příjem dat, která se pak předají do vizualizace Power BI.

Vytvoření úlohy služby Stream Analytics

  1. Na portálu Azure Portal klikněte na Vytvořit prostředek. Do vyhledávacího pole zadejte stream analytics a stiskněte Enter. Vyberte Úloha Stream Analytics. Na panelu úloh Stream Analytics klikněte na Vytvořit.

  2. Zadejte o úloze následující informace:

    Název úlohy: Použijte contosoEHjob. Toto pole obsahuje název úlohy, který musí být globálně jedinečný.

    Předplatné: Vyberte předplatné.

    Skupina prostředků: Použijte stejnou skupinu prostředků jako pro centrum událostí (ContosoResourcesEH).

    Umístění: Použijte stejnou oblast Azure, kterou jste použili dříve.

    Screenshot showing how to create a new Azure Stream Analytics job.

    Pro zbývající pole můžete použít výchozí hodnoty. Klikněte na Vytvořit.

Přidání vstupu úlohy Stream Analytics

Pokud na portálu nejste v podokně Úloha Stream Analytics, můžete se ke své úloze Stream Analytics vrátit kliknutím na Skupiny prostředků a výběrem vaší skupiny prostředků (ContosoResourcesEH). Tato akce zobrazí všechny prostředky ve skupině a vy můžete vybrat svou úlohu Stream Analytics.

Vstupy pro úlohu Stream Analytics jsou transakce provedené platebními kartami z centra událostí.

  1. V nabídce vlevo vyberte Vstupy v části Topologie úlohy .

  2. V podokně Vstupy klikněte na Přidat vstup streamu a vyberte Event Hubs. Na obrazovce, která se zobrazí, vyplňte následující pole:

    Alias pro vstup: Použijte contosoinputs. Toto pole obsahuje název vstupního datového proudu, který se používá při definování dotazu na data.

    Předplatné: Vyberte své předplatné Azure.

    Obor názvů služby Event Hubs: Vyberte obor názvů centra událostí.

    Název centra událostí: Klikněte na Použít existující a vyberte centrum událostí.

    Skupina příjemců služby Event Hubs: Toto pole ponechte prázdné, aby se použila výchozí skupina příjemců.

    U zbývajících polí přijměte výchozí hodnoty.

    Screenshot showing how to add an input stream to the Stream Analytics job.

  3. Klikněte na Uložit.

Přidání vstupu úlohy Stream Analytics

  1. V nabídce vlevo vyberte Výstupy v části Topologie úlohy . Toto pole obsahuje název výstupního datového proudu, který se používá při definování dotazu na data.

  2. V podokně Výstupy klikněte na Přidat a potom vyberte Power BI. Na obrazovce, která se zobrazí, vyplňte následující pole:

    Alias pro výstup: Použijte contosooutputs. Toto pole obsahuje jedinečný alias pro výstup.

    Název datové sady: Použijte contosoehdataset. Toto pole obsahuje název datové sady, kterou chcete v Power BI použít.

    Název tabulky: Použijte contosoehtable. Toto pole obsahuje název tabulky, kterou chcete v Power BI použít.

    Pro zbývající pole můžete použít výchozí hodnoty.

    Screenshot showing how to set up the output for a Stream Analytics job.

  3. Klikněte na Autorizovat a přihlaste se ke svému účtu Power BI.

  4. Pro zbývající pole můžete použít výchozí hodnoty.

  5. Klikněte na Uložit.

Konfigurace dotazu pro úlohu Stream Analytics

Tento dotaz slouží k načtení dat, která se nakonec odešlou do vizualizace Power BI. Používá vstup contosoinputs a výstup contosooutputs, které jste definovali dříve při nastavování úlohy. Tento dotaz načte transakce provedené platebními kartami, které považuje za podvodné, tedy transakce, ve kterých se stejné číslo platební karty použilo během pěti sekund k několika transakcím v různých oblastech.

  1. V části Topologie úlohy klikněte na Dotaz.

  2. Nahraďte dotaz následujícím dotazem:

    /* criteria for fraud:
       credit card purchases with the same card
       in different locations within 5 seconds
    */
    SELECT System.Timestamp AS WindowEnd, 
      COUNT(*) as FraudulentUses      
    INTO contosooutputs
    FROM contosoinputs CS1 TIMESTAMP BY [Timestamp]
        JOIN contosoinputs CS2 TIMESTAMP BY [Timestamp]
        /* where the credit card # is the same */
        ON CS1.CreditCardId = CS2.CreditCardId
        /* and time between the two is between 0 and 5 seconds */
        AND DATEDIFF(second, CS1, CS2) BETWEEN 0 AND 5
        /* where the location is different */
    WHERE CS1.Location != CS2.Location
    GROUP BY TumblingWindow(Duration(second, 1))
    
  3. Klikněte na Uložit.

Test dotazu pro úlohu Stream Analytics

  1. Spusťte aplikaci detektoru anomálií, která bude do centra událostí odesílat data, zatímco nastavujete a spouštíte test.

  2. V podokně Dotaz klikněte na tečky vedle vstupu contosoinputs a pak vyberte Ukázková data ze vstupu.

  3. Zadejte, že chcete data za tři minuty, a klikněte na OK. Počkejte, dokud se nezobrazí oznámení o dokončeném vzorkování dat.

  4. Klikněte na Test a ujistěte se, že získáváte výsledky. Výsledky se zobrazí v části Výsledky v dolním podokně napravo pod dotazem.

  5. Zavřete podokno dotazu.

Spuštění úlohy Stream Analytics

V úloze Stream Analytics klikněte na Spustit, pak na Nyní a pak na Spustit. Jakmile se úloha úspěšně spustí, stav úlohy se změní ze Zastaveno na Spuštěno.

Nastavení vizualizací Power BI

  1. Spusťte aplikaci detektoru anomálií, která bude do centra událostí odesílat data, zatímco nastavujete vizualizaci Power BI. Možná ji budete muset spustit několikrát, protože při každém spuštění vygeneruje pouze 1 000 transakcí.

  2. Přihlaste se ke svému účtu Power BI.

  3. Přejděte do části Můj pracovní prostor.

  4. Klikněte na Datové sady.

    Měla by se zobrazit datová sada, kterou jste určili při vytváření výstupu pro úlohu Stream Analytics (contosoehdataset). Zobrazení datové sady může na začátku 5 až 10 minut trvat.

  5. Klikněte na Řídicí panely, pak na Vytvořit a vyberte Řídicí panel.

    Screenshot of the Dashboards and Create buttons.

  6. Zadejte název řídicího panelu a pak klikněte na Vytvořit. Použijte název Anomálie platebních karet.

    Screenshot of specifying dashboard name.

  7. Na stránce Řídicí panel klikněte na Přidat dlaždici, v části Data v reálném čase vyberte Vlastní streamovaná data a potom klikněte na Další.

    Screenshot specifying source for tile.

  8. Vyberte vaši datovou sadu (contosoehdataset) a klikněte na Další.

    Screenshot specifying dataset.

  9. Jako typ vizualizace vyberte Karta. V části Pole klepněte na tlačítko Přidat hodnotu a pak vyberte fraudulentuses.

    Screenshot specifying visualization type and fields.

    Klikněte na Next (Další).

  10. Nastavte nadpis na Podvodná použití a podnadpis na Součet za posledních několik minut. Klikněte na Použít. Dlaždice se uloží na váš řídicí panel.

    Screenshot specifying title and subtitle for dashboard tile.

    Důležité

    Když spustíte ukázkovou aplikaci a streamujete data do centra událostí, číslo na této dlaždici se rychle změní (každou sekundu). Je to proto, že dotaz Stream Analytics ve skutečnosti aktualizuje hodnotu každou sekundu. Aktualizujte dotaz na 3minutové přeskakující okno, abyste viděli součet za posledních pár minut.

  11. Přidejte další vizualizaci. Zopakujte prvních několik kroků:

    • Klikněte na Add Tile (Přidat dlaždici).
    • Vyberte Vlastní streamovaná data.
    • Klikněte na Next (Další).
    • Vyberte vaši datovou sadu a klikněte na Další.
  12. V části Typ vizualizace vyberte Spojnicový graf.

  13. V části Osa klikněte na Přidat hodnotu a vyberte windowend.

  14. V části Hodnoty klepněte na tlačítko Přidat hodnotu a vyberte fraudulentuses.

  15. V části Časové okno k zobrazení vyberte posledních pět minut. Klikněte na Next (Další).

  16. Jako nadpis zadejte Zobrazení podvodných použití v průběhu času, podnadpis dlaždice ponechte prázdný a klikněte na Použít. Vrátíte se na váš řídicí panel.

  17. Znovu spusťte aplikaci detektoru anomálií, která do centra událostí odešle nějaká data. Uvidíte, jak se dlaždice Podvodná použití mění s tím, jak data analyzuje, a data se zobrazí ve spojnicovém grafu.

    Screenshot showing the Power BI results

Vyčištění prostředků

Pokud chcete odebrat všechny prostředky, které jste vytvořili, odeberte data vizualizací Power BI a pak odstraňte skupinu prostředků. Odstraněním skupiny prostředků se odstraní všechny prostředky, které tato skupina obsahuje. V tomto případě se odebere centrum událostí, obor názvů služby Event Hubs, úloha Stream Analytics a samotná skupina prostředků.

Vyčištění prostředků ve vizualizaci Power BI

Přihlaste se ke svému účtu Power BI. Přejděte do části Můj pracovní prostor. Na řádku s názvem vašeho řídicího panelu klikněte na ikonu koše. Pak přejděte do části Datové sady a kliknutím na ikonu koše odstraňte příslušnou datovou sadu (contosoehdataset).

Vyčištění prostředků

Odstraňte skupinu prostředků obsahující všechny prostředky, které jste vytvořili v rámci tohoto kurzu.

Další kroky

V tomto kurzu jste se naučili:

  • Vytvoření oboru názvů služby Event Hubs
  • Vytvoření centra událostí
  • Spuštění aplikace, která simuluje události a odesílá je do centra událostí
  • Konfigurace úlohy Stream Analytics pro zpracování událostí odeslaných do centra
  • Konfigurace vizualizace Power BI pro zobrazení výsledků

Přejděte k dalšímu článku, kde najdete další informace o službě Azure Event Hubs.