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:
- Als u nog geen abonnement op Azure hebt, maak dan een gratis account aan voordat u begint.
- Maak een Event Hubs-naamruimte en een Event Hub.
- Volg de instructies in Een Event Hubs connection string. Noteer de connection string de Event Hubs naamruimte en de naam van de Event Hub.
- Installeer Visual Studio. U gebruikt een Visual Studio om een app uit te voeren voor het produceren en verzenden van testgebeurtenisgegevens naar de Event Hub.
- U hebt een Power BI-account nodig om de uitvoer van een Stream Analytics-taak te analyseren. U kunt Power BI gratis uitproberen.
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:
Download de Azure Event Hubs-voorbeelden van GitHub en pak het bestand lokaal uit.
Ga naar de map \azure-event-hubs-master\samples\DotNet\ .
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.
Open Program.cs en vervang Event Hubs connection string door de verbindingsreeks die u bij het uitvoeren van het script hebt opgeslagen.
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
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.
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.

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.
Selecteer invoer in de sectie Taaktopologie in het menu links.
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.

Klik op Opslaan.
Een uitvoer aan de Stream Analytics-taak toevoegen
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.
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.

Klik op Autoriseren en meld u aan bij uw Power BI-account.
Accepteer de standaardwaarden voor de rest van de velden.
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.
Klik onder Taaktopologie op Query.
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))Klik op Opslaan.
De query voor de Stream Analytics-taak testen
Voer de app Anomaly Detector uit om gegevens naar de Event Hub te verzenden terwijl u de test instelt en uitvoert.
Klik in het deelvenster Query op de puntjes naast de invoer contosoinputs en selecteer vervolgens Steekproef nemen van gegevens uit de invoer.
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.
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.
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
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.
Meld u aan bij uw Power BI-account.
Ga naar Mijn werkruimte.
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.
Klik op Dashboards, klik vervolgens op Maken en selecteer Dashboard.

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

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

Selecteer uw gegevensset (contosoehdataset) en klik op Volgende.

Selecteer Kaart als visualisatietype. Klik onder Velden op Waarde toevoegen en selecteer vervolgens
fraudulentuses.
Klik op Volgende.
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.

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.
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.
Selecteer onder Type visualisatie de optie Lijndiagram.
Klik onder As op Waarde toevoegen en selecteer
windowend.Klik onder Waarden op Waarde toevoegen en selecteer
fraudulentuses.Selecteer onder Tijdvenster voor weergave de laatste vijf minuten. Klik op Volgende.
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.
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.

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.