Stream Analytics a Power BI: řídicí panel analýzy v reálném čase pro streamovaná dataStream Analytics and Power BI: A real-time analytics dashboard for streaming data

Azure Stream Analytics vám umožní využít jeden z špičkových business intelligence nástrojů, Power BI Microsoftu.Azure Stream Analytics enables you to take advantage of one of the leading business intelligence tools, Microsoft Power BI. V tomto článku se naučíte, jak vytvářet business intelligence nástroje pomocí Power BI jako výstup pro Azure Stream Analytics úlohy.In this article, you learn how create business intelligence tools by using Power BI as an output for your Azure Stream Analytics jobs. Naučíte se také, jak vytvořit a používat řídicí panel v reálném čase, který je průběžně aktualizován úlohou Stream Analytics.You also learn how to create and use a real-time dashboard that is continuously updated by the Stream Analytics job.

Tento článek pokračuje v kurzu Stream Analytics rozpoznávání podvodů v reálném čase .This article continues from the Stream Analytics real-time fraud detection tutorial. Vytvoří se v pracovním postupu vytvořeném v tomto kurzu a přidá výstup Power BI, abyste mohli vizualizovat podvodné telefonní hovory zjištěné úlohou Stream Analytics.It builds on the workflow created in that tutorial and adds a Power BI output so that you can visualize fraudulent phone calls that are detected by a Streaming Analytics job.

Můžete se podívat na video , které znázorňuje tento scénář.You can watch a video that illustrates this scenario.

PožadavkyPrerequisites

Než začnete, ujistěte se, že jste provedli následující akce:Before you start, make sure you have the following:

  • Účet Azure:An Azure account.
  • Účet pro Power BI Pro.An account for Power BI Pro. Můžete použít pracovní účet nebo školní účet.You can use a work account or a school account.
  • Dokončená verze kurzu zjišťování podvodů v reálném čase .A completed version of the real-time fraud detection tutorial. Kurz obsahuje aplikaci, která generuje fiktivní metadata telefonního hovoru.The tutorial includes an app that generates fictitious telephone-call metadata. V tomto kurzu vytvoříte centrum událostí a odešlete data o telefonních hovorech streamování do centra událostí.In the tutorial, you create an event hub and send the streaming phone call data to the event hub. Napíšete dotaz, který detekuje falešná volání (volání ze stejného čísla současně v různých umístěních).You write a query that detects fraudulent calls (calls from the same number at the same time in different locations).

Přidat výstup Power BIAdd Power BI output

V kurzu zjišťování podvodů v reálném čase se výstup pošle do úložiště objektů BLOB v Azure.In the real-time fraud detection tutorial, the output is sent to Azure Blob storage. V této části přidáte výstup, který odesílá informace do Power BI.In this section, you add an output that sends information to Power BI.

  1. V Azure Portal otevřete úlohu Stream Analytics, kterou jste vytvořili dříve.In the Azure portal, open the Streaming Analytics job that you created earlier. Pokud jste použili navrhovaný název, úloha se jmenuje sa_frauddetection_job_demo .If you used the suggested name, the job is named sa_frauddetection_job_demo.

  2. V nabídce vlevo vyberte v části topologie úlohy možnost výstupy .On the left menu, select Outputs under Job topology. Pak vyberte + Přidat a v rozevírací nabídce vyberte Power BI .Then, select + Add and choose Power BI from the dropdown menu.

  3. Vyberte + Přidat > Power BI.Select + Add > Power BI. Pak vyplňte formulář následujícími podrobnostmi a vyberte autorizovat , abyste pro připojení k Power BI používali vlastní identitu uživatele (token je platný po 90 dnech).Then fill the form with the following details and select Authorize to use your own user identity to connect to Power BI (the token is valid for 90 days).

Poznámka

Pro produkční úlohy doporučujeme, abyste se připojili k použití spravované identity k ověření Azure Stream Analytics úlohy Power BI.For production jobs, we recommend to connect to use Managed Identity to authenticate your Azure Stream Analytics job to Power BI.

NastaveníSetting Navrhovaná hodnotaSuggested value
Alias pro výstupOutput alias CallStream-PowerBICallStream-PowerBI
Název datové sadyDataset name SA – datová sadasa-dataset
Název tabulkyTable name podvodné – volánífraudulent-calls

Konfigurace výstupu Stream Analytics

Upozornění

Pokud Power BI obsahuje datovou sadu a tabulku, které mají stejné názvy jako ty, které zadáte v úloze Stream Analytics, existující objekty se přepíší.If Power BI has a dataset and table that have the same names as the ones that you specify in the Stream Analytics job, the existing ones are overwritten. Doporučujeme, abyste tuto datovou sadu a tabulku nevytvořili explicitně v účtu Power BI.We recommend that you do not explicitly create this dataset and table in your Power BI account. Automaticky se vytvoří při spuštění úlohy Stream Analytics a úloha začne vyčerpat výstup do Power BI.They are automatically created when you start your Stream Analytics job and the job starts pumping output into Power BI. Pokud dotaz na úlohu nevrátí žádné výsledky, datová sada a tabulka se nevytvoří.If your job query doesn't return any results, the dataset and table are not created.

  1. Když vyberete Autorizovat, otevře se místní okno s výzvou k zadání přihlašovacích údajů kvůli ověření vašeho účtu Power BI.When you select Authorize, a pop-up window opens and you are asked to provide credentials to authenticate to your Power BI account. Po úspěšné autorizaci uložte nastavení výběrem možnosti Uložit.Once the authorization is successful, Save the settings.

  2. Klikněte na Vytvořit.Click Create.

Datová sada je vytvořena s následujícími nastaveními:The dataset is created with the following settings:

  • defaultRetentionPolicy: BasicFIFO -data jsou FIFO s maximálně 200 000 řádky.defaultRetentionPolicy: BasicFIFO - Data is FIFO, with a maximum of 200,000 rows.
  • defaultMode: Hybrid – datová sada podporuje jak dlaždice streamování (označované také jako push), tak i tradiční vizuály založené na sestavách.defaultMode: hybrid - The dataset supports both streaming tiles (also known as push) and traditional report-based visuals. V případě nabízeného obsahu se data průběžně aktualizují z úlohy Stream Analytics v tomto případě bez nutnosti naplánování aktualizace ze strany Power BI.For the push content, the data is continuously updated from the stream analytics job in this case, with no need to schedule refresh from the Power BI side.

V současné době nemůžete vytvořit datové sady s jinými příznaky.Currently, you can't create datasets with other flags.

Další informace o Power BI datových sadách naleznete v tématu Power BI REST API reference.For more information about Power BI datasets, see the Power BI REST API reference.

Zapsat dotazWrite the query

  1. Zavřete okno výstupy a vraťte se do okna úlohy.Close the Outputs blade and return to the job blade.

  2. Klikněte na pole dotazu .Click the Query box.

  3. Zadejte následující dotaz.Enter the following query. Tento dotaz je podobný dotazu, který jste vytvořili v kurzu pro detekci podvodů.This query is similar to the self-join query you created in the fraud-detection tutorial. Rozdílem je, že tento dotaz odesílá výsledky do nového výstupu, který jste vytvořili ( CallStream-PowerBI ).The difference is that this query sends results to the new output you created (CallStream-PowerBI).

    Poznámka

    Pokud jste nezaznamenali vstup CallStream v kurzu pro detekci podvodů, nahraďte své jméno CallStream v klauzulích from a Join v dotazu.If you did not name the input CallStream in the fraud-detection tutorial, substitute your name for CallStream in the FROM and JOIN clauses in the query.

    /* Our criteria for fraud:
    Calls made from the same caller to two phone switches in different locations (for example, Australia and Europe) within five seconds */
    
    SELECT System.Timestamp AS WindowEnd, COUNT(*) AS FraudulentCalls
    INTO "CallStream-PowerBI"
    FROM "CallStream" CS1 TIMESTAMP BY CallRecTime
    JOIN "CallStream" CS2 TIMESTAMP BY CallRecTime
    
    /* Where the caller is the same, as indicated by IMSI (International Mobile Subscriber Identity) */
    ON CS1.CallingIMSI = CS2.CallingIMSI
    
    /* ...and date between CS1 and CS2 is between one and five seconds */
    AND DATEDIFF(ss, CS1, CS2) BETWEEN 1 AND 5
    
    /* Where the switch location is different */
    WHERE CS1.SwitchNum != CS2.SwitchNum
    GROUP BY TumblingWindow(Duration(second, 1))
    
  4. Klikněte na Uložit.Click Save.

Testování dotazuTest the query

Tato část je volitelná, ale doporučuje se.This section is optional, but recommended.

  1. Pokud aplikace TelcoStreaming aktuálně není spuštěná, spusťte ji pomocí následujících kroků:If the TelcoStreaming app is not currently running, start it by following these steps:

    • Otevřete příkazový řádek.Open Command Prompt.

    • Přejde do složky, kde jsou telcogenerator.exe a změněné soubory telcodatagen.exe.config.Go to the folder where the telcogenerator.exe and modified telcodatagen.exe.config files are.

    • Spusťte následující příkaz:Run the following command:

      telcodatagen.exe 1000 .2 2

  2. Na stránce s dotazem pro vaši úlohu Stream Analytics klikněte na tečky vedle CallStream vstupu a pak vyberte vzorová data ze vstupu.On the Query page for your Stream Analytics job, click the dots next to the CallStream input and then select Sample data from input.

  3. Zadejte, že chcete mít data pro tři minuty a klikněte na OK.Specify that you want three minutes' worth of data and click OK. Počkejte, dokud se nezobrazí oznámení o dokončeném vzorkování dat.Wait until you're notified that the data has been sampled.

  4. Klikněte na test a Prohlédněte si výsledky.Click Test and review the results.

Spuštění úlohyRun the job

  1. Ujistěte se, že je aplikace TelcoStreaming spuštěná.Make sure the TelcoStreaming app is running.

  2. Přejděte na stránku Přehled pro vaši úlohu Stream Analytics a vyberte Spustit.Navigate to the Overview page for your Stream Analytics job and select Start.

    Spustit úlohu Stream Analytics

Vaše úloha Stream Analytics začne hledat falešná volání v příchozím datovém proudu.Your Streaming Analytics job starts looking for fraudulent calls in the incoming stream. Úloha také vytvoří datovou sadu a tabulku v Power BI a začne odesílat data o podvodných voláních.The job also creates the dataset and table in Power BI and starts sending data about the fraudulent calls to them.

Vytvoření řídicího panelu v Power BICreate the dashboard in Power BI

  1. Přejít na PowerBI.com a přihlaste se pomocí svého pracovního nebo školního účtu.Go to Powerbi.com and sign in with your work or school account. Pokud dotaz Stream Analytics úlohy vypíše výsledky, vidíte, že vaše datová sada je už vytvořená:If the Stream Analytics job query outputs results, you see that your dataset is already created:

    Umístění datové sady streamování v Power BI

  2. V pracovním prostoru klikněte na +   vytvořit.In your workspace, click + Create.

    Tlačítko vytvořit v pracovním prostoru Power BI

  3. Vytvořte nový řídicí panel a pojmenujte ho Fraudulent Calls .Create a new dashboard and name it Fraudulent Calls.

    Vytvořte řídicí panel a pojmenujte ho v Power BI pracovním prostoru.

  4. V horní části okna klikněte na Přidat dlaždici, vyberte vlastní streamovaná data a pak klikněte na Další.At the top of the window, click Add tile, select CUSTOM STREAMING DATA, and then click Next.

    Dlaždice vlastní datové sady streamování v Power BI

  5. V části DATSETS vyberte datovou sadu a klikněte na Další.Under YOUR DATSETS, select your dataset and then click Next.

    Datová sada streamování v Power BI

  6. V části typ vizualizace vyberte karta a potom v seznamu pole vyberte podvodnávolání.Under Visualization Type, select Card, and then in the Fields list, select fraudulentcalls.

    Podrobnosti vizualizace pro novou dlaždici

  7. Klikněte na Next (Další).Click Next.

  8. Vyplňte podrobnosti dlaždice jako název a podnadpis.Fill in tile details like a title and subtitle.

    Nadpis a podnadpis pro novou dlaždici

  9. Klikněte na Použít.Click Apply.

    Nyní máte počítadlo podvodů.Now you have a fraud counter!

    Čítač podvodů v Power BIovém řídicím panelu

  10. Pomocí kroků znovu přidejte dlaždici (počínaje krokem 4).Follow the steps again to add a tile (starting with step 4). Tentokrát postupujte následovně:This time, do the following:

    • Po zobrazení typu vizualizace vyberte Spojnicový graf.When you get to Visualization Type, select Line chart.

    • Přidejte osu a vyberte windowend.Add an axis and select windowend.

    • Přidejte hodnotu a vyberte podvodnávolání.Add a value and select fraudulentcalls.

    • Jako časové okno pro zobrazení vyberte posledních 10 minut.For Time window to display, select the last 10 minutes.

      Vytvořit dlaždici pro spojnicový graf v Power BI

  11. Klikněte na Další, přidejte název a podnadpis a klikněte na použít.Click Next, add a title and subtitle, and click Apply.

    Řídicí panel Power BI nyní poskytuje dvě zobrazení dat o podvodných voláních, která byla zjištěna v datech streamování.The Power BI dashboard now gives you two views of data about fraudulent calls as detected in the streaming data.

    Dokončený Power BI řídicí panel ukazující dvě dlaždice pro podvodné hovory

Další informace o omezeních a osvědčených postupechLearn about limitations and best practices

V současné době je možné Power BI volat zhruba jednou za sekundu.Currently, Power BI can be called roughly once per second. Vizuály streamování podporují pakety o 15 KB.Streaming visuals support packets of 15 KB. Kromě toho se vizuály streamování nezdaří (ale i nadále funguje).Beyond that, streaming visuals fail (but push continues to work). Z důvodu těchto omezení Power BI sami přirozeně zapůjčení do případů, kdy Azure Stream Analytics významným omezením zatížení dat.Because of these limitations, Power BI lends itself most naturally to cases where Azure Stream Analytics does a significant data load reduction. Doporučujeme použít bubnové okno nebo skákající okno, aby bylo zajištěno, že nabízení dat je nejvýše jedna nabízená oznámení za sekundu a že váš dotaz je v rámci požadavků na propustnost.We recommend using a Tumbling window or Hopping window to ensure that data push is at most one push per second, and that your query lands within the throughput requirements.

Pomocí následující rovnice můžete vypočítat hodnotu a poskytnout tak oknu během několika sekund:You can use the following equation to compute the value to give your window in seconds:

Rovnice k výpočtu hodnoty za účelem poskytnutí okna v sekundách

Například:For example:

  • Máte 1 000 zařízení odesílajících data v sekundách za sekundu.You have 1,000 devices sending data at one-second intervals.
  • Používáte Power BI Pro SKU, který podporuje 1 000 000 řádků za hodinu.You are using the Power BI Pro SKU that supports 1,000,000 rows per hour.
  • Chcete publikovat množství průměrných dat na zařízení Power BI.You want to publish the amount of average data per device to Power BI.

Výsledkem je, že se rovnice bude:As a result, the equation becomes:

Rovnice založená na ukázkových kritériích

Tato konfigurace umožňuje změnit původní dotaz na následující:Given this configuration, you can change the original query to the following:

    SELECT
        MAX(hmdt) AS hmdt,
        MAX(temp) AS temp,
        System.TimeStamp AS time,
        dspl
    INTO "CallStream-PowerBI"
    FROM
        Input TIMESTAMP BY time
    GROUP BY
        TUMBLINGWINDOW(ss,4),
        dspl

Obnovit autorizaciRenew authorization

Pokud se heslo od vytvoření nebo posledního ověření úlohy změnilo, budete muset účet Power BI znovu ověřit.If the password has changed since your job was created or last authenticated, you need to reauthenticate your Power BI account. Pokud je v tenantovi Azure Active Directory (Azure AD) nakonfigurovaná služba Azure AD Multi-Factor Authentication, musíte také obnovit Power BI autorizaci každé dva týdny.If Azure AD Multi-Factor Authentication is configured on your Azure Active Directory (Azure AD) tenant, you also need to renew Power BI authorization every two weeks. Pokud obnovení neprovedete, můžete se podívat na příznaky, jako je například nedostatek výstupu úlohy nebo Authenticate user error v protokolech operací.If you don't renew, you could see symptoms such as a lack of job output or an Authenticate user error in the operation logs.

Podobně platí, že pokud se úloha spustí po vypršení platnosti tokenu, dojde k chybě a úloha se nezdařila.Similarly, if a job starts after the token has expired, an error occurs and the job fails. Pokud chcete tento problém vyřešit, zastavte úlohu, která běží, a přejít na výstup Power BI.To resolve this issue, stop the job that's running and go to your Power BI output. Aby nedošlo ke ztrátě dat, vyberte odkaz obnovit autorizaci a potom restartujte úlohu z posledního pozastaveného času.To avoid data loss, select the Renew authorization link, and then restart your job from the Last Stopped Time.

Po obnovení autorizace pomocí Power BI se v oblasti autorizace zobrazí Zelená výstraha, která odráží, že byl problém vyřešen.After the authorization has been refreshed with Power BI, a green alert appears in the authorization area to reflect that the issue has been resolved.

Další krokyNext steps