Zelfstudie: gegevensanomalieën binnen in realtime naar Azure Event Hubs verzonden gebeurtenissen visualiseren

Met Azure Event Hubs kunt u Azure Stream Analytics gebruiken om de binnenkomende gegevens te controleren en de anomalieën te vinden, die u vervolgens kunt visualiseren in Power BI. Stel dat u duizenden apparaten hebt die constant realtimegegevens naar een Event Hub versturen, wat neerkomt op miljoenen gebeurtenissen per seconde. Hoe controleert u zoveel gegevens op afwijkingen, of fouten, in de gegevens? Wat bijvoorbeeld als de apparaten creditcardtransacties verzenden en u wilt registreren waar u meerdere transacties in meerdere landen/regio's hebt in een interval van 5 seconden? Dit kan gebeuren als iemand creditcards steelt en deze dan gebruikt om tegelijkertijd op verschillende plaatsen ter wereld artikelen te kopen.

In deze zelfstudie simuleert u dit voorbeeld. U voert een toepassing uit die creditcardtransacties maakt en verzendt naar een Event Hub. Vervolgens leest u de gegevensstroom in realtime met Azure Stream Analytics, dat de geldige transacties van de ongeldige transacties scheidt, en vervolgens gebruikt u Power BI om de transacties die als ongeldig zijn gelabeld, visueel te identificeren.

In deze zelfstudie leert u het volgende:

  • Een Event Hubs-naamruimte maken
  • Een Event Hub maken
  • De app uitvoeren die creditcardtransacties verzendt
  • Een Stream Analytics-taak configureren om die transacties te verwerken
  • Een Power BI-visualisatie configureren om de resultaten te tonen

Vereisten

Zorg ervoor dat u de volgende stappen hebt uitgevoerd voordat u begint:

App voor het produceren van testgebeurtenisgegevens uitvoeren

De Event Hubs-voorbeelden op GitHub bevatten een Anomaliedetectie-app die testgegevens voor u produceert. Deze app simuleert het gebruik van creditcards door creditcardtransacties naar de Event Hub te schrijven, inclusief het af en toe schrijven van meerdere transacties voor dezelfde creditcard op meerdere locaties, zodat ze als anomalieën worden getagd. Volg deze stappen voor het uitvoeren van deze app:

  1. Download de Azure Event Hubs-voorbeelden van GitHub en pak het bestand lokaal uit.

  2. Ga naar de map \azure-event-hubs-master\samples\DotNet\ .

  3. Schakel over naar de map Azure.Messaging.EventHubs\AnomalyDetector\ en dubbelklik op AnomalyDetector.sln om de oplossing in Visual Studio te openen.

    Als u de oude versie van het voorbeeld wilt gebruiken, dat gebruikmaakt van het oude pakket Microsoft.Azure.EventHubs, open dan de oplossing uit de map Microsoft.Azure.EventHubs\AnomalyDetector.

  4. Open Program.cs en vervang Event Hubs connection string door de verbindingsreeks die u bij het uitvoeren van het script hebt opgeslagen.

  5. Vervang Event Hub name door de naam van uw Event Hub. Klik op F5 om de toepassing uit te voeren. Deze begint met het verzenden van gebeurtenissen naar uw Event Hub en gaat door totdat er 1000 gebeurtenissen zijn verzonden. Er zijn een paar gevallen waarin u alleen gegevens kunt ophalen als de app actief is. Deze gevallen worden waar nodig aangegeven in de volgende instructies.

Azure Stream Analytics instellen

U kunt nu gegevens streamen naar uw Event Hub. Als u die gegevens in een Power BI-visualisatie wilt gebruiken, begint u met het instellen van een Stream Analytics-taak om de gegevens op te halen, die vervolgens worden ingevoerd in de Power BI-visualisatie.

De Stream Analytics-taak maken

  1. Klik in Azure Portal op Een resource maken. Typ stream analytics in het zoekvak en druk op Enter. Selecteer Stream Analytics Job. Klik op Maken in het taakvenster van Stream Analytics.

  2. Voer de volgende informatie in voor de taak:

    Taaknaam: gebruik contosoEHjob. Dit veld is de naam van de taak en moet globaal uniek zijn.

    Abonnement: Selecteer uw abonnement.

    Resourcegroep: gebruik dezelfde resourcegroep die wordt gebruikt door uw Event Hub (ContosoResourcesEH).

    Locatie: gebruik dezelfde Azure-regio die u eerder hebt gebruikt.

    Schermopname waarin wordt weergegeven hoe u een nieuwe Azure Stream Analytics-taak maakt.

    Accepteer de standaardwaarden voor de rest van de velden. Klik op Create.

Een invoer aan de Stream Analytics-taak toevoegen

Als u zich niet in het deelvenster Stream Analytics-taak in de portal bevindt, kunt u teruggaan naar uw Stream Analytics-taak door op Resourcegroepen in de portal te klikken en vervolgens uw resourcegroep te selecteren (ContosoResourcesEH). Deze actie toont alle resources in de groep, waarna u uw stroomanalysetaak kunt selecteren.

De invoer voor de Stream Analytics-taak zijn de creditcardtransacties van de Event Hub.

  1. Selecteer invoer in de sectie Taaktopologie in het menu links.

  2. Klik in het deelvenster Invoer op Stroominvoer toevoegen en selecteer Event Hubs. Vul de volgende velden in op het scherm dat wordt weergegeven:

    Invoeralias: Gebruik contosoinputs. Dit veld is de naam van de invoerstroom die wordt gebruikt bij het definiëren van de query voor de gegevens.

    Abonnement: Selecteer uw Azure-abonnement.

    Event Hubs: selecteer uw Event Hub-naamruimte.

    Event Hub-naam: klik op Bestaande gebruiken en selecteer uw Event Hub.

    Event Hubs-consumentengroep: laat dit veld leeg als u de standaardconsumentengroep wilt gebruiken.

    Accepteer de standaardwaarden voor de rest van de velden.

    Schermopname waarin wordt weergegeven hoe u een invoerstroom kunt toevoegen aan de Stream Analytics-taak.

  3. Klik op Opslaan.

Een uitvoer aan de Stream Analytics-taak toevoegen

  1. Selecteer uitvoer in het linkermenu in de sectie Taaktopologie. Dit veld is de naam van de uitvoerstroom die wordt gebruikt bij het definiëren van de query voor de gegevens.

  2. Klik in het deelvenster Uitvoer op Toevoegen en selecteer Power BI. Vul de volgende velden in op het scherm dat wordt weergegeven:

    Uitvoeralias: gebruik contosooutputs. Dit veld is de unieke alias voor de uitvoer.

    Naam van gegevensset: gebruik contosoehdataset. Dit veld is de naam van de gegevensset die moet worden gebruikt in Power BI.

    Tabelnaam: gebruik contosoehtable. Dit veld is de naam van de gegevensset die moet worden gebruikt in Power BI.

    Accepteer de standaardwaarden voor de rest van de velden.

    Schermopname waarin wordt weergegeven hoe u de uitvoerwaarden voor een Stream Analytics-taak kunt instellen.

  3. Klik op Autoriseren en meld u aan bij uw Power BI-account.

  4. Accepteer de standaardwaarden voor de rest van de velden.

  5. Klik op Opslaan.

De query van de Stream Analytics-taak configureren

Deze query wordt gebruikt om de gegevens op te halen die uiteindelijk naar de Power BI-visualisatie worden verzonden. In de query wordt gebruikgemaakt van contosoinputs en contosooutputs, die u eerder hebt gedefinieerd bij het instellen van de taak. Met deze query worden de creditcardtransacties opgehaald die frauduleus lijken te zijn; dit zijn transacties waarbij hetzelfde creditcardnummer meerdere transacties heeft op verschillende locaties binnen hetzelfde interval van vijf seconden.

  1. Klik onder Taaktopologie op Query.

  2. Vervang de query door de volgende:

    /* 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. Klik op Opslaan.

De query voor de Stream Analytics-taak testen

  1. Voer de app Anomaly Detector uit om gegevens naar de Event Hub te verzenden terwijl u de test instelt en uitvoert.

  2. Klik in het deelvenster Query op de puntjes naast de invoer contosoinputs en selecteer vervolgens Steekproef nemen van gegevens uit de invoer.

  3. Geef aan dat u drie minuten aan gegevens wilt en klik vervolgens op OK. Wacht tot u een melding krijgt dat de gegevens zijn verzameld.

  4. Klik op Test en controleer of u resultaten krijgt. De resultaten worden weergegeven in het gedeelte Resultaten van het onderste deelvenster rechts onder de query.

  5. Sluit het deelvenster Query.

De Stream Analytics-taak uitvoeren

Klik in de Stream Analytics-taak op Start, vervolgens op Nu en daarna op Start. Zodra de taak kan worden gestart, wordt de taakstatus veranderd van Gestopt naar In uitvoering.

De Power BI-visualisaties instellen

  1. Voer de app Anomaly Detector uit om gegevens naar de Event Hub te verzenden terwijl u de Power BI-visualisatie instelt. U moet de app mogelijk meerdere keren uitvoeren, omdat er slechts 1000 transacties worden gegenereerd wanneer deze wordt uitgevoerd.

  2. Meld u aan bij uw Power BI-account.

  3. Ga naar Mijn werkruimte.

  4. Klik op Gegevenssets.

    U zou de gegevensset moeten zien die u hebt opgegeven toen u de uitvoer voor de Stream Analytics-taak hebt gemaakt (contosoehdataset). Het kan de eerste keer 5–10 minuten duren voordat de gegevensset wordt weergegeven.

  5. Klik op Dashboards, klik vervolgens op Maken en selecteer Dashboard.

    Schermafbeelding van de knoppen Dashboards en Maken.

  6. Geef de naam van het dashboard op en klik op Maken. Gebruik Credit Card Anomalies.

    Schermopname van het opgeven van de dashboardnaam.

  7. Klik op de dashboardpagina op Tegel toevoegen, selecteer Aangepaste streaminggegevens in het gedeelte REALTIMEGEGEVENS en klik op Volgende.

    Schermafbeelding van het opgeven van de bron voor een tegel.

  8. Selecteer uw gegevensset (contosoehdataset) en klik op Volgende.

    Schermafbeelding van het opgeven van een gegevensset.

  9. Selecteer Kaart als visualisatietype. Klik onder Velden op Waarde toevoegen en selecteer vervolgens fraudulentuses .

    Schermafbeelding van het opgeven van visualisatietype en velden.

    Klik op Volgende.

  10. Stel de titel in op Fraudulent uses (frauduleus gebruik) en de subtitel op Sum in last few minutes (totaal in de afgelopen paar minuten). Klik op Toepassen. De tegel wordt opgeslagen op uw dashboard.

    Schermafbeelding van het opgeven van de titel en subtitel voor een dashboardtegel.

    Belangrijk

    Wanneer u de voorbeeldtoepassing uitvoert en gegevens naar de hub van het evenement streamt, verandert het nummer op deze tegel snel (elke seconde). Dat komt doordat de Stream Analytics-query de waarde elke seconde bijwerkt. Update de query naar een tumblingvenster van 3 minuten om het totaal van de laatste minuten te zien.

  11. Voeg nog een visualisatie toe. Herhaal de eerste paar stappen:

    • Klik op Tegel toevoegen.
    • Selecteer Aangepaste streaminggegevens.
    • Klik op Volgende.
    • Selecteer uw gegevensset en klik op Volgende.
  12. Selecteer onder Type visualisatie de optie Lijndiagram.

  13. Klik onder As op Waarde toevoegen en selecteer windowend .

  14. Klik onder Waarden op Waarde toevoegen en selecteer fraudulentuses .

  15. Selecteer onder Tijdvenster voor weergave de laatste vijf minuten. Klik op Volgende.

  16. Geef Show fraudulent uses over time (frauduleus gebruik in de loop der tijd weergeven) op als de titel en laat de subtitel van de tegel leeg; klik op Toepassen. U keert terug naar het dashboard.

  17. Voer de app Anomaly Detector nogmaals uit om gegevens naar de Event Hub te verzenden. U ziet dat de tegel Fraudulent uses verandert terwijl de gegevens worden geanalyseerd, en het lijndiagram toont gegevens.

    Schermopname van Power BI-resultaten

Resources opschonen

Als u alle resources die u hebt gemaakt, wilt verwijderen, verwijdert u de visualisatiegegevens van Power BI, en vervolgens de resourcegroep. Als u de resourcegroep verwijdert, worden alle resources verwijderd die deze groep bevat. In dit geval worden de Event Hub, de Event Hub-naamruimte, de stroommanalysetaak en de resourcegroep zelf verwijderd.

Resources in de Power BI-visualisatie opschonen

Meld u aan bij uw Power BI-account. Ga naar Mijn werkruimte. Klik op de regel met uw dashboardnaam op het prullenbakpictogram. Ga vervolgens naar Gegevenssets en klik op het prullenbakpictogram om de gegevensset (contosoehdataset) te verwijderen.

Resources opschonen

Verwijder de resourcegroep die alle resources bevat die u hebt gemaakt als onderdeel van deze zelfstudie.

Volgende stappen

In deze zelfstudie hebt u het volgende geleerd:

  • Een Event Hubs-naamruimte maken
  • Een Event Hub maken
  • De app uitvoeren die gebeurtenissen simuleert en naar de Event Hub verzendt
  • Een Stream Analytics-taak configureren om naar de hub verzonden gebeurtenissen te verwerken
  • Een Power BI-visualisatie configureren om de resultaten te tonen

Ga naar het volgende artikel voor meer informatie over Azure Event Hubs.