kurz: analýza podvodných dat volání pomocí Stream Analytics a vizualizace výsledků v Power BI řídicím panelu
V tomto kurzu se dozvíte, jak analyzovat data telefonních hovorů pomocí Azure Stream Analytics. Data telefonního hovoru generovaná klientskou aplikací obsahují podvodné hovory, které jsou filtrovány pomocí úlohy Stream Analytics. Techniky z tohoto kurzu můžete použít pro jiné typy odhalování podvodů, jako je podvod kreditních karet nebo krádež identity.
V tomto kurzu se naučíte:
- Vygenerujte ukázková data telefonního hovoru a odešlete je do Azure Event Hubs.
- Vytvoření úlohy Stream Analytics
- Nakonfigurujte vstup a výstup úlohy.
- Definujte dotazy pro filtrování podvodných volání.
- Otestujte a spusťte úlohu.
- Vizualizujte výsledky v Power BI.
Požadavky
Než začnete, ujistěte se, že jste dokončili následující kroky:
- Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet.
- Stáhněte si aplikaci pro generování událostí telefonních hovorů TelcoGenerator.zip z webu Microsoft Download Center. Případně získejte zdrojový kód z GitHubu.
- Budete potřebovat účet Power BI.
Přihlášení k Azure
Přihlaste se k webu Azure Portal.
Vytvoření centra událostí Azure
Než bude Stream Analytics moct analyzovat datový proud podvodných volání, musí se data odeslat do Azure. V tomto kurzu budete data odesílat do Azure pomocí služby Azure Event Hubs.
Pomocí následujícího postupu vytvořte centrum událostí a odešlete do něj data volání:
Přihlaste se k webu Azure Portal.
Vyberte vytvořit prostředek > Internet věcí > Event Hubs.

Vyplňte podokno vytvořit obor názvů s následujícími hodnotami:
Nastavení Navrhovaná hodnota Popis Název asaTutorialEventHub Jedinečný název pro identifikaci oboru názvů centra událostí. Předplatné <Your subscription> Vyberte předplatné Azure, ve kterém chcete vytvořit centrum událostí. Skupina prostředků MyASADemoRG Vyberte Vytvořit nový a zadejte název nové skupiny prostředků pro váš účet. Umístění USA – západ 2 Umístění, kde můžete nasadit obor názvů centra událostí. Pro zbývající nastavení použijte výchozí možnosti a vyberte zkontrolovat + vytvořit. Pak vyberte vytvořit a zahajte nasazení.

Po dokončení nasazení oboru názvů, přejít na všechny prostředky a najít asaTutorialEventHub v seznamu prostředků Azure. Vyberte asaTutorialEventHub a otevřete ji.
Dále vyberte + centrum událostí a zadejte název centra událostí. Nastavte počet oddílů na 2. Ve zbývajících nastaveních použijte výchozí možnosti a vyberte vytvořit. Potom počkejte na úspěšné dokončení nasazení.

Udělení přístupu k centru událostí a získání připojovacího řetězce
Aby mohla aplikace odesílat data do Azure Event Hubs, musí mít centrum událostí zásadu, která umožňuje přístup. Zásady přístupu vytváří připojovací řetězec, který obsahuje informace o autorizaci.
Přejděte do centra událostí, které jste vytvořili v předchozím kroku, a MyEventHub. V části Nastavení vyberte Zásady sdíleného přístupu a pak vyberte + Přidat.
Pojmenujte zásadu MyPolicy a ujistěte se, že je zaškrtnutá možnost Spravovat. Potom vyberte Vytvořit.

Jakmile se zásada vytvoří, vyberte název zásady a otevřete zásadu. Najděte připojovací řetězec – primární klíč. Vyberte tlačítko Kopírovat vedle připojovacího řetězce.

Vložte připojovací řetězec do textového editoru. Tento připojovací řetězec budete potřebovat v další části.
Připojovací řetězec vypadá takto:
Endpoint=sb://<Your event hub namespace>.servicebus.windows.net/;SharedAccessKeyName=<Your shared access policy name>;SharedAccessKey=<generated key>;EntityPath=<Your event hub name>Všimněte si, že připojovací řetězec obsahuje více párů klíč-hodnota oddělené středníky: Endpoint, SharedAccessKeyName, SharedAccessKey a EntityPath.
Spuštění aplikace generátoru událostí
Před spuštěním aplikace TelcoGenerator byste ji měli nakonfigurovat tak, aby odesílala data do služby Azure Event Hubs, kterou jste vytvořili dříve.
Extrahujte obsah souboru TelcoGenerator.zip.
Otevřete
TelcoGenerator\TelcoGenerator\telcodatagen.exe.configsoubor v textovém editoru podle vašeho výběru, kde je více než jeden.configsoubor, a ujistěte se, že jste otevřeli ten správný.Aktualizujte element
<appSettings>v konfiguračním souboru následujícím způsobem:- Nastavte hodnotu klíče EventHubName na hodnotu EntityPath v připojovacím řetězci.
- Nastavte hodnotu klíče Microsoft.ServiceBus.ConnectionString na připojovací řetězec bez hodnoty EntityPath. Nezapomeňte odebrat středník, který předchází hodnotu EntityPath.
Soubor uložte.
Dále otevřete příkazové okno a přejděte do složky, do které jste extrahovali aplikaci TelcoGenerator. Potom zadejte následující příkaz:
.\telcodatagen.exe 1000 0.2 2Tento příkaz má následující parametry:
- Počet záznamů dat volání za hodinu.
- Procento pravděpodobnosti podvodů – to znamená, jak často by měla aplikace simulovat podvodné volání. Hodnota 0,2 znamená, že přibližně 20 % záznamů volání bude falešných.
- Doba v hodinách – počet hodin, po které by aplikace měla být spuštěná. Aplikaci můžete kdykoli zastavit ukončením procesu (CTRL + C) na příkazovém řádku.
Po několika sekundách aplikace začne zobrazovat záznamy telefonních hovorů na obrazovce, když je odešle do centra událostí. Data telefonních hovorů obsahují následující pole:
Záznam Definition CallrecTime Časové razítko pro počáteční čas volání. SwitchNum Telefonní ústředna použitá pro spojení volání. V tomto příkladu jsou přepínače řetězce reprezentující zemi nebo oblast původu (USA, Čína, Spojené království, Německo nebo Austrálie). CallingNum Telefonní číslo volajícího. CallingIMSI IMSI (International Mobile Subscriber Identity). Jedinečný identifikátor volajícího. CalledNum Telefonní číslo příjemce volání. CalledIMSI IMSI (International Mobile Subscriber Identity). Jedinečný identifikátor příjemce volání.
Vytvoření úlohy Stream Analytics
Teď, když máte stream událostí volání, můžete vytvořit úlohu Stream Analytics, která načte data z centra událostí.
Pokud chcete vytvořit úlohu Stream Analytics, přejděte na web Azure Portal.
Vyberte Vytvořit prostředek a vyhledejte Stream Analytics úlohy. Vyberte dlaždici Stream Analytics úlohy a vyberte Vytvořit.
Vyplňte formulář Stream Analytics úlohy následujícími hodnotami:
Nastavení Navrhovaná hodnota Popis Název úlohy ASATutorial Jedinečný název pro identifikaci oboru názvů centra událostí. Předplatné <Your subscription> Vyberte předplatné Azure, ve kterém chcete vytvořit úlohu. Skupina prostředků MyASADemoRG Vyberte Použít existující a zadejte název nové skupiny prostředků pro váš účet. Umístění USA – západ 2 Umístění, kde můžete nasadit úlohu. Doporučuje se umístit úlohu a centrum událostí do stejné oblasti, abyste dosáhli nejlepšího výkonu a abyste neplatili za přenos dat mezi oblastmi. Hostitelské prostředí Cloud Úlohy Stream Analytics můžete nasadit do cloudu nebo do hraničního zařízení. Cloud umožňuje nasazení do cloudu Azure a Edge umožňuje nasazení do IoT Edge zařízení. Jednotky streamování 1 Jednotky streamování představují výpočetní prostředky nutné k provedení úlohy. Ve výchozím nastavení je tato hodnota nastavená na 1. Podrobnosti o škálování jednotek streamování najdete v článku věnovaném principům a úpravám jednotek streamování. U zbývajících nastavení použijte výchozí možnosti, vyberte Vytvořit a počkejte na úspěšné nasazení.

Konfigurace vstupu úlohy
Dalším krokem je definování vstupního zdroje, ze kterého bude úloha číst data pomocí centra událostí, které jste vytvořili v předchozí části.
Na Azure Portal otevřete stránku Všechny prostředky a vyhledejte úlohu asatutorial Stream Analytics prostředků.
V části Topologie úlohy v Stream Analytics úlohy vyberte Vstupy.
Vyberte + Přidat vstup streamu a Centrum událostí. Vyplňte vstupní formulář následujícími hodnotami:
Nastavení Navrhovaná hodnota Popis Alias vstupu CallStream Zadejte popisný název, který bude identifikovat váš vstup. Vstupní alias může obsahovat jenom alfanumerické znaky, spojovníky a podtržítka a musí být dlouhý 3 až 63 znaků. Předplatné <Your subscription> Vyberte předplatné Azure, ve kterém jste vytvořili centrum událostí. Centrum událostí může být ve stejném předplatném jako úloha Stream Analytics, ale i v jiném. Obor názvů centra událostí asaTutorialEventHub Vyberte obor názvů centra událostí, který jste vytvořili v předchozí části. Všechny obory názvů centra událostí dostupné v aktuálním předplatném jsou uvedeny v rozevírací nabídce. Název centra událostí MyEventHub Vyberte centrum událostí, které jste vytvořili v předchozí části. Všechna centra událostí dostupná v aktuálním předplatném jsou uvedena v rozevírací nabídce. Název zásad centra událostí MyPolicy Vyberte zásady sdíleného přístupu k centru událostí, které jste vytvořili v předchozí části. Všechny zásady centra událostí dostupné v aktuálním předplatném jsou uvedeny v rozevírací nabídce. Pro zbývající nastavení použijte výchozí možnosti a vyberte Uložit.

Konfigurace výstupu úlohy
Posledním krokem je definování výstupní jímky, do které může úloha zapisovat transformovaná data. V tomto kurzu data vypíšete a vizualizujete pomocí Power BI.
V Azure Portal otevřete Všechny prostředky a vyberte úlohu asatutorial Stream Analytics.
V části Topologie úlohy úlohy Stream Analytics vyberte možnost Výstupy.
Vyberte + Přidat > Power BI. Pak vyberte Autorizovat a podle pokynů proveďte ověření Power BI.
Do výstupního formuláře zadejte následující podrobnosti a vyberte Uložit:
Nastavení Navrhovaná hodnota Alias pro výstup MyPBIoutput Pracovní prostor skupiny Můj pracovní prostor Název datové sady ASAdataset Název tabulky ASATable Režim ověřování Token uživatele 
V tomto kurzu se používá režim ověřování pomocí tokenu uživatele. Pokud chcete použít spravovanou identitu, podívejte se na použití spravované identity k ověření Azure Stream Analytics úlohy Power BI.
Vytváření dotazů pro transformaci dat v reálném čase
V tuto chvíli máte úlohu Stream Analytics nastavenou pro čtení příchozího datového streamu. Dalším krokem je vytvoření dotazu, který analyzuje data v reálném čase. Dotazy používají jazyk SQL, který má některá rozšíření specifická pro Stream Analytics.
V této části kurzu vytvoříte a otestujte několik dotazů, abyste se dozvěděli několik způsobů, jak transformovat vstupní datový proud pro analýzu.
Dotazy, které tady vytvoříte, jenom zobrazí transformovaná data na obrazovce. V pozdější části napíšete transformovaná data do Power BI.
Další informace o jazyce najdete v referenčních Azure Stream Analytics dotazovací jazyk.
Testování pomocí předávkového dotazu
Pokud chcete archivovat každou událost, můžete použít předávkovací dotaz ke čtení všech polí v datové části události.
V okně Stream Analytics přejděte ke své Azure Portal úlohy a v části Topologie úlohy vyberte Dotaz.
V okně dotazu zadejte tento dotaz:
SELECT * FROM CallStreamPoznámka
Stejně jako u SQL se u klíčových slov rozlišují malá a velká písmena a prázdné znaky nejsou důležité.
V tomto dotazu
CallStreamje alias, který jste zadali při vytváření vstupu. Pokud jste použili jiný alias, použijte místo toho tento název.Vyberte Test query (Testovací dotaz).
Úloha Stream Analytics spustí dotaz na ukázková data ze vstupu a zobrazí výstup v dolní části okna. Výsledky značí, že centrum událostí a úloha Stream Analytics jsou správně nakonfigurované.
Přesný počet záznamů, které uvidíte, bude záviset na tom, kolik záznamů bylo zachyceno v ukázce.
Snížení počtu polí pomocí projekce sloupce
V mnoha případech vaše analýza nepotřebuje všechny sloupce ze vstupního datového proudu. Dotaz můžete použít k projektování menší sady vrácených polí než v předávkovací dotazu.
Spusťte následující dotaz a všimněte si výstupu.
SELECT CallRecTime, SwitchNum, CallingIMSI, CallingNumCalledNum
FROM
CallStream
Počet příchozích volání podle oblasti: Protákací okno s agregací
Předpokládejme, že chcete spočítat počet příchozích volání na oblast. Pokud chcete u streamovaných dat provádět agregační funkce, jako je počítání, musíte datový proud segmentovat do dočasných jednotek, protože samotný datový proud je v podstatě nekonečný. K tomu slouží funkce okna Streaming Analytics. S daty v tomto okně pak můžete pracovat jako s jednotkou.
Pro tuto transformaci chcete sekvenci dočasných oken, která se nepřekrývají – každé okno bude mít samostatnou sadu dat, která můžete seskupit a agregovat. Tento typ okna se označuje jako proskakující okno. V tomto okně můžete získat počet příchozích volání seskupených podle , který představuje zemi nebo oblast, ze SwitchNum které volání pochází.
Do editoru dotazů vložte následující dotaz:
SELECT System.Timestamp as WindowEnd, SwitchNum, COUNT(*) as CallCount FROM CallStream TIMESTAMP BY CallRecTime GROUP BY TUMBLINGWINDOW(s, 5), SwitchNumTento dotaz používá klíčové slovo v klauzuli k určení pole časového razítka ve vstupním datovém proudu, které se má použít k definování
Timestamp ByFROMpromískací okno. V tomto případě okno rozdělí data do segmentů podleCallRecTimepole v každém záznamu. (Pokud není zadané žádné pole, operace práce s okny použije čas, kdy každá událost dorazí do centra událostí. Viz "Čas příletu vs. čas aplikace" v referenčních Stream Analytics dotazovací jazyk.Projekce zahrnuje
System.Timestamp, které vrátí časové razítko pro konec každého okna.Pokud chcete určit, že chcete použít proskakující okno, použijte funkci TUMBLINGWINDOW v
GROUP BYklauzuli . Ve funkci zadáte časovou jednotku (od mikrosekundy po den) a velikost okna (kolik jednotek). V tomto příkladu se proskakací okno skládá z 5sekundových intervalů, takže získáte počet podle země nebo oblasti za každých 5 sekund volání.Vyberte Test query (Testovací dotaz). Ve výsledcích si všimněte, že časová razítka v části WindowEnd jsou v přírůstcích po 5 sekundách.
Rozpoznání podvodu SIM pomocí připojení k sobě sama
V tomto příkladu se podvodné použití považuje za volání, která pocházejí od stejného uživatele, ale v různých umístěních do 5 sekund od druhého. Například stejný uživatel nemůže legitimně uskutečnit volání z USA a Austrálie současně.
Pokud chcete tyto případy zkontrolovat, můžete použít vlastní spojení streamovaných dat a připojit stream k sobě na základě CallRecTime hodnoty. Pak můžete hledat záznamy volání, ve kterých je hodnota (původní číslo) stejná, ale hodnota CallingIMSI SwitchNum (země/oblast původu) není stejná.
Pokud použijete spojení se streamovacími daty, musí spojení poskytnout některá omezení, jak daleko je možné odpovídající řádky v čase oddělit. Jak jsme uvedli dříve, streamovaná data jsou v podstatě nekonečná. Časové meze relace jsou určeny uvnitř ON klauzule spojení pomocí DATEDIFF funkce . V tomto případě je spojení založené na 5sekunových intervalech dat volání.
Do editoru dotazů vložte následující dotaz:
SELECT System.Timestamp AS WindowEnd, COUNT(*) AS FraudulentCalls INTO "MyPBIoutput" FROM "CallStream" CS1 TIMESTAMP BY CallRecTime JOIN "CallStream" CS2 TIMESTAMP BY CallRecTime ON CS1.CallingIMSI = CS2.CallingIMSI AND DATEDIFF(ss, CS1, CS2) BETWEEN 1 AND 5 WHERE CS1.SwitchNum != CS2.SwitchNum GROUP BY TumblingWindow(Duration(second, 1))Tento dotaz je jako SQL spojení s výjimkou
DATEDIFFfunkce v join. Tato verze jeDATEDIFFspecifická pro Streaming Analytics a musí se objevit vON...BETWEENklauzuli . Parametry jsou časová jednotka (v tomto příkladu sekund) a aliasy dvou zdrojů pro spojení. To se liší od standardní funkceDATEDIFFSQL.Klauzule
WHEREobsahuje podmínku, která podvodné volání označí příznakem: původní přepínače nejsou stejné.Vyberte Test query (Testovací dotaz). Zkontrolujte výstup a pak vyberte Uložit dotaz.
Spuštění úlohy a vizualizace výstupu
Pokud chcete úlohu spustit, přejděte na úlohu Přehled a vyberte Spustit.
Vyberte Nyní pro čas spuštění výstupu úlohy a vyberte Spustit. Stav úlohy můžete sledovat v oznamovacím pruhu.
Po úspěšném provedení úlohy přejděte do Power BI a přihlaste se pomocí svého pracovního nebo školního účtu. Pokud dotaz úlohy Stream Analytics vypisuje výsledky, na kartě Datové sady se zobrazí existující datová sada ASAdataset, kterou jste vytvořili.
V pracovním prostoru Power BI vyberte + Vytvořit a vytvořte nový řídicí panel Podvodná volání.
V horní části okna vyberte Upravit a přidat dlaždici. Potom vyberte Vlastní streamovaná data a Další. V části Vaše datové sady zvolte ASAdataset. V rozevíracím seznamu Typ vizualizace vyberte Karta a do pole přidejte podvodná volání. Vyberte Další, zadejte název dlaždice a pak výběrem možnosti Použít dlaždici vytvořte.

Zopakujte krok 5 s následujícími možnostmi:
- Jako typ vizualizace vyberte spojnicový graf.
- Přidejte osu a vyberte windowend.
- Přidejte hodnotu a vyberte podvodnávolání.
- Jako časové okno pro zobrazení vyberte posledních 10 minut.
Po přidání obou dlaždic by váš řídicí panel měl vypadat jako v následujícím příkladu. Všimněte si, že pokud je vaše aplikace odesílatele centra událostí a aplikace Streaming Analytics spuštěná, váš řídicí panel Power BI se pravidelně aktualizuje při příchodu nových dat.

Vložení řídicího panelu Power BI do webové aplikace
V této části kurzu použijete k vložení řídicího panelu ukázkovou ASP.NET aplikaci vytvořenou týmem týmu Power BI dat. Další informace o vkládání řídicích panelů najdete v tématu Vkládání pomocí Power BI.
Pokud chcete nastavit aplikaci, přejděte do úložiště PowerBI-Developer-Samples GitHub a postupujte podle pokynů v části User Owns Data (použijte adresy URL pro přesměrování a domovskou stránku v podsekci integrate-web-app). Vzhledem k tomu, že používáme příklad řídicího panelu, použijte ukázkový kód integrate-web-app umístěný v GitHub úložiště. Jakmile aplikace běží v prohlížeči, postupujte podle těchto kroků a vložte do webové stránky řídicí panel, který jste vytvořili dříve:
Vyberte Přihlásit se k Power BI, který aplikaci udělí přístup k řídicím panelům ve vašem Power BI účtu.
Vyberte tlačítko Získat řídicí panely, které zobrazí tabulku s přehledem řídicích panelů ve vašem účtu. Vyhledejte název řídicího panelu powerbi-embedded-dashboard, který jste vytvořili dříve, a zkopírujte odpovídající hodnotu EmbedUrl.
Nakonec vložte hodnotu EmbedUrl do odpovídajícího textového pole a vyberte Vložit řídicí panel. Nyní můžete vidět stejný řídicí panel vložený do webové aplikace.
Další kroky
V tomto kurzu jste vytvořili jednoduchou úlohu Stream Analytics, analyzovali jste příchozí data a zobrazili výsledky na řídicím panelu Power BI. Další informace o úlohách Stream Analytics získáte v dalším kurzu: