Delen via


Azure Cosmos DB-wijzigingenfeed gebruiken om realtime gegevensanalyse te visualiseren

VAN TOEPASSING OP: NoSQL

De Azure Cosmos DB-wijzigingenfeed is een mechanisme om een continue en incrementele feed met records op te halen uit een Azure Cosmos DB-container wanneer deze records worden gemaakt of gewijzigd. Ondersteuning voor wijzigingenfeeds werkt door te luisteren naar de container voor wijzigingen. Als output verschijnt er vervolgens een gesorteerde lijst met gewijzigde documenten op volgorde van wijziging. Zie het artikel Werken met wijzigingenfeed voor meer informatie over wijzigingenfeed.

In dit artikel wordt beschreven hoe een wijzigingenfeed door een e-commercebedrijf kan worden gebruikt om inzicht te hebben in gebruikerspatronen, realtime gegevensanalyse en -visualisatie uit te voeren. U analyseert gebeurtenissen zoals een gebruiker die een artikel bekijkt, een artikel aan zijn winkelwagen toevoegt of een artikel koopt. Wanneer een van deze gebeurtenissen optreedt, wordt er een nieuwe record gemaakt en worden de wijzigingenfeedlogboeken geregistreerd. Wijzigingenfeed activeert vervolgens een reeks stappen die resulteren in visualisatie van metrische gegevens die de bedrijfsprestaties en -activiteit analyseren. Voorbeelden van metrische gegevens die u kunt visualiseren, zijn onder andere omzet, unieke sitebezoekers, de populairste items en de gemiddelde prijs van de items die worden bekeken versus toegevoegd aan een winkelwagen versus gekocht. Deze voorbeeldgegevens kunnen een e-commercebedrijf helpen bij het evalueren van de site-populariteit, het ontwikkelen van reclame- en prijsstrategieën en het nemen van beslissingen met betrekking tot de voorraad waarin moet worden geïnvesteerd.

Oplossingsonderdelen

Het volgende diagram geeft de gegevensstroom en onderdelen weer die betrokken zijn bij de oplossing:

Project-visual

  1. Gegevens genereren: Gegevenssimulator wordt gebruikt om retailgegevens te genereren die gebeurtenissen vertegenwoordigen, zoals een gebruiker die een artikel bekijkt, een artikel aan zijn winkelwagen toevoegt en een artikel koopt. U kunt een grote set voorbeeldgegevens genereren met behulp van de gegevensgenerator. De gegenereerde voorbeeldgegevens bevatten documenten in de volgende indeling:

    {
      "CartID": 2486,
      "Action": "Viewed",
      "Item": "Women's Denim Jacket",
      "Price": 31.99
    }
    
  2. Azure Cosmos DB: De gegenereerde gegevens worden opgeslagen in een Azure Cosmos DB-container.

  3. Wijzigingenfeed: De wijzigingenfeed luistert naar wijzigingen in de Azure Cosmos DB-container. Telkens wanneer een nieuw document wordt toegevoegd aan de verzameling (dit is wanneer een gebruiker een item bekijkt, een item aan zijn winkelwagen toevoegt of een item koopt), wordt een Azure-functie geactiveerd door de wijzigingenfeed.

  4. Azure-functie: De Azure-functie verwerkt de nieuwe gegevens en verzendt deze naar Azure Event Hubs.

  5. Azure Event Hub: De Event Hub slaat deze gebeurtenissen op en verzendt ze naar Azure Stream Analytics om verdere analyses uit te voeren.

  6. Azure Stream Analytics: Azure Stream Analytics definieert query's voor het verwerken van de gebeurtenissen en het uitvoeren van realtime gegevensanalyse. Deze gegevens worden vervolgens verzonden naar Microsoft Power BI.

  7. Power BI: Power BI wordt gebruikt om de gegevens te visualiseren die worden verzonden door Azure Stream Analytics. U kunt een dashboard maken om te zien hoe de metrische gegevens in realtime veranderen.

Vereisten

  • Microsoft .NET Framework 4.7.1 of hoger

  • Microsoft .NET Core 2.1 (of hoger)

  • Visual Studio met Universeel Windows-platform ontwikkeling, .NET-desktopontwikkeling en workloads voor ASP.NET- en webontwikkeling

  • Microsoft Azure-abonnement

  • Microsoft Power BI-account

  • Download het Azure Cosmos DB-wijzigingenfeedlab van GitHub.

Azure-resources maken

Maak de Azure-resources: Azure Cosmos DB, opslagaccount, Event Hub en Stream Analytics die vereist zijn voor de oplossing. U implementeert deze resources via een Azure Resource Manager-sjabloon. Gebruik de volgende stappen om deze resources te implementeren:

  1. Stel het uitvoeringsbeleid voor Windows PowerShell in op Onbeperkt. Hiervoor opent u Windows PowerShell als beheerder en voert u de volgende opdrachten uit:

    Get-ExecutionPolicy
    Set-ExecutionPolicy Unrestricted 
    
  2. Ga vanuit de GitHub-opslagplaats die u in de vorige stap hebt gedownload naar de map Azure Resource Manager en open het bestand parameters.json.

  3. Geef waarden op voor cosmosdbaccount_nameparameters , eventhubnamespace_name, storageaccount_namezoals aangegeven in het bestand parameters.json . U moet later de namen gebruiken die u aan elk van uw resources opgeeft.

  4. Ga vanuit Windows PowerShell naar de map Azure Resource Manager en voer de volgende opdracht uit:

    .\deploy.ps1
    
  5. Wanneer u hierom wordt gevraagd, voert u uw Azure-abonnements-id, changefeedlab in voor de naam van de resourcegroep en run1 voor de implementatienaam. Zodra de resources zijn geïmplementeerd, kan het tot 10 minuten duren voordat deze is voltooid.

Een database en de verzameling maken

U maakt nu een verzameling voor het opslaan van e-commercesitegebeurtenissen. Wanneer een gebruiker een artikel bekijkt, een artikel aan zijn winkelwagen toevoegt of een artikel koopt, ontvangt de verzameling een record met de actie ('bekeken', 'toegevoegd' of 'gekocht'), de naam van het betrokken item, de prijs van het betrokken artikel en het id-nummer van de betrokken gebruikerswagen.

  1. Ga naar Azure Portal en zoek het Azure Cosmos DB-account dat is gemaakt door de sjabloonimplementatie.

  2. Selecteer nieuwe verzameling in het deelvenster Data Explorer en vul het formulier in met de volgende gegevens:

    • Selecteer voor het veld Database-idde optie Nieuwe maken en voer vervolgens changefeedlabdatabase in. Laat het selectievakje Databasedoorvoer inrichten uitgeschakeld.
    • Voer changefeedlabcollection in voor het veld Verzamelings-id.
    • Voer /Item in voor het veld Partitiesleutel. Dit is hoofdlettergevoelig, dus zorg ervoor dat u het correct invoert.
    • Voer voor het veld Doorvoer10000 in.
    • Selecteer de knop OK.
  3. Maak vervolgens nog een verzameling met de naam leases voor de verwerking van de wijzigingenfeed. De leaseverzameling coördineert de verwerking van de wijzigingenfeed voor meerdere werkrollen. Er wordt een afzonderlijke verzameling gebruikt om de leases op te slaan met één lease per partitie.

  4. Ga terug naar het deelvenster Data Explorer en selecteer Nieuwe verzameling en vul het formulier in met de volgende gegevens:

    • Selecteer voor het veld Database-idde optie Bestaande gebruiken en voer vervolgens changefeedlabdatabase in.
    • Voer voor het veld Verzamelings-idleases in.
    • Bij Opslagcapaciteit selecteert u Vast.
    • Laat het veld Doorvoer ingesteld op de standaardwaarde.
    • Selecteer de knop OK.

De connection string en sleutels ophalen

De Azure Cosmos DB-connection string downloaden

  1. Ga naar Azure Portal en zoek het Azure Cosmos DB-account dat is gemaakt door de sjabloonimplementatie.

  2. Navigeer naar het deelvenster Sleutels , kopieer de PRIMAIRE VERBINDINGSREEKS en kopieer deze naar een Kladblok of een ander document waartoe u in het hele lab toegang hebt. U moet de verbindingsreeks van Azure Cosmos DB labelen. U moet de tekenreeks later naar uw code kopiëren, dus maak een notitie en onthoud waar u deze opslaat.

De sleutel en connection string van het opslagaccount ophalen

Met Azure Storage-accounts kunnen gebruikers gegevens opslaan. In dit lab gebruikt u een opslagaccount om gegevens op te slaan die worden gebruikt door de Azure-functie. De Azure-functie wordt geactiveerd wanneer er een wijziging wordt aangebracht in de verzameling.

  1. Ga terug naar de resourcegroep en open het opslagaccount dat u eerder hebt gemaakt

  2. Selecteer Toegangstoetsen in het menu aan de linkerkant.

  3. Kopieer de waarden onder toets 1 naar een Kladblok of een ander document waartoe u in het hele lab toegang hebt. U moet de sleutel labelen als Opslagsleutel en de verbindingsreeks als Opslagverbindingsreeks. U moet deze tekenreeksen later naar uw code kopiëren, dus maak een notitie en onthoud waar u ze opslaat.

De Event Hub-naamruimte ophalen connection string

Een Azure Event Hub ontvangt de gebeurtenisgegevens, slaat de gegevens op, verwerkt en stuurt deze door. In dit lab ontvangt de Event Hub een document telkens wanneer een nieuwe gebeurtenis plaatsvindt (wanneer een item wordt bekeken door een gebruiker, wordt toegevoegd aan het winkelwagentje van een gebruiker of is gekocht door een gebruiker) en wordt dat document vervolgens doorgestuurd naar Azure Stream Analytics.

  1. Ga terug naar uw resourcegroep en open de Event Hubs-naamruimte die u in het prelab hebt gemaakt en benoemd.

  2. Selecteer Beleid voor gedeelde toegang in het menu aan de linkerkant.

  3. selecteer RootManageSharedAccessKey. Kopieer de verbindingsreeks-primaire sleutel naar een Kladblok of een ander document waartoe u in het hele lab toegang hebt. U moet het label Event Hub-naamruimte connection string. U moet de tekenreeks later naar uw code kopiëren, dus maak een notitie en onthoud waar u deze opslaat.

Azure Function instellen om de wijzigingenfeed te lezen

Wanneer een nieuw document wordt gemaakt of een huidig document wordt gewijzigd in een Azure Cosmos DB-container, voegt de wijzigingenfeed dat gewijzigde document automatisch toe aan de geschiedenis van verzamelingswijzigingen. U gaat nu een Azure-functie bouwen en uitvoeren waarmee de wijzigingenfeed wordt verwerkt. Wanneer een document wordt gemaakt of gewijzigd in de verzameling die u hebt gemaakt, wordt de Azure-functie geactiveerd door de wijzigingenfeed. Vervolgens verzendt de Azure-functie het gewijzigde document naar de Event Hub.

  1. Ga terug naar de opslagplaats die u op uw apparaat hebt gekloond.

  2. Klik met de rechtermuisknop op het bestand met de naam ChangeFeedLabSolution.sln en selecteer Openen met Visual Studio.

  3. Navigeer naar local.settings.json in Visual Studio. Gebruik vervolgens de waarden die u eerder hebt vastgelegd om de lege waarden in te vullen.

  4. Navigeer naar ChangeFeedProcessor.cs. Voer in de parameters voor de functie Uitvoeren de volgende acties uit:

    • Vervang de tekst YOUR COLLECTION NAME HERE door de naam van uw verzameling. Als u eerdere instructies hebt gevolgd, is de naam van uw verzameling changefeedlabcollection.
    • Vervang de tekst YOUR LEASES COLLECTION NAME HERE door de naam van uw leaseverzameling. Als u eerdere instructies hebt gevolgd, is de naam van uw leaseverzameling leases.
    • Zorg ervoor dat bovenaan Visual Studio in het vak Opstartproject links van de groene pijl ChangeFeedFunction wordt weergegeven.
    • Selecteer Start bovenaan de pagina om het programma uit te voeren
    • U kunt controleren of de functie wordt uitgevoerd wanneer de console-app 'Taakhost gestart' zegt.

Gegevens invoegen in Azure Cosmos DB

Als u wilt zien hoe wijzigingenfeed nieuwe acties op een e-commercesite verwerkt, moet u gegevens simuleren die gebruikers vertegenwoordigen die items uit de productcatalogus bekijken, deze items toevoegen aan hun winkelwagens en de artikelen in hun winkelwagentjes kopen. Deze gegevens zijn willekeurig en worden gebruikt voor het repliceren van de gegevens op een e-commercesite.

  1. Ga terug naar de opslagplaats in Bestandenverkenner en klik met de rechtermuisknop op ChangeFeedFunction.sln om deze opnieuw te openen in een nieuw Visual Studio-venster.

  2. Navigeer naar het App.config-bestand . Voeg in het <appSettings> blok het eindpunt en de unieke PRIMAIRE SLEUTEL toe die van uw Azure Cosmos DB-account dat u eerder hebt opgehaald.

  3. Voeg de namen van de verzameling en database toe. (Deze namen moeten changefeedlabcollection en changefeedlabdatabase zijn, tenzij u ervoor kiest om de uwe een andere naam te geven.)

    Verbindingsreeksen bijwerken

  4. Sla de wijzigingen in alle bewerkte bestanden op.

  5. Zorg ervoor dat boven in Visual Studio het vak Opstartproject links van de groene pijl DataGenerator wordt weergegeven. Selecteer vervolgens Start bovenaan de pagina om het programma uit te voeren.

  6. Wacht tot het programma wordt uitgevoerd. De sterren betekenen dat er gegevens binnenkomen! Houd het programma actief. Het is belangrijk dat er veel gegevens worden verzameld.

  7. Als u naar Azure Portal navigeert, gaat u vervolgens naar het Azure Cosmos DB-account in uw resourcegroep. Vervolgens ziet u om te Data Explorer de gerandomiseerde gegevens die zijn geïmporteerd in uw changefeedlabcollection.

    Gegevens die worden gegenereerd in de portal

Een Stream Analytics-taak instellen

Azure Stream Analytics is een volledig beheerde cloudservice voor realtime verwerking van streaminggegevens. In dit lab gebruikt u Stream Analytics om nieuwe gebeurtenissen van de Event Hub te verwerken (wanneer een item wordt bekeken, toegevoegd aan een winkelwagen of aangeschaft), deze gebeurtenissen op te nemen in realtime gegevensanalyse en ze naar Power BI te verzenden voor visualisatie.

  1. Navigeer vanuit de Azure Portal naar uw resourcegroep en vervolgens naar streamjob1 (de Stream Analytics-taak die u in het prelab hebt gemaakt).

  2. Selecteer Invoer zoals hieronder wordt weergegeven.

    Invoer maken

  3. Selecteer + Stroominvoer toevoegen. Selecteer vervolgens Event Hub in de vervolgkeuzelijst.

  4. Vul in het nieuwe invoerformulier de volgende gegevens in:

    • Voer invoer in het veld Invoeralias in.
    • Selecteer de optie Event Hub selecteren in uw abonnementen.
    • Stel het veld Abonnement in op uw abonnement.
    • Voer in het veld Event Hubs-naamruimte de naam in van uw Event Hub-naamruimte die u tijdens de prelab hebt gemaakt.
    • Selecteer in het veld Event Hub-naam de optie Bestaande gebruiken en kies event-hub1 in de vervolgkeuzelijst.
    • Laat het veld Event Hub-beleidsnaam ingesteld op de standaardwaarde.
    • Laat de indeling voor serialisatie van gebeurtenissenop JSON staan.
    • Laat het veld Encoding ingesteld op UTF-8.
    • Laat het veld Type gebeurteniscompressie ingesteld op Geen.
    • Selecteer de knop Opslaan.
  5. Ga terug naar de stream analytics-taakpagina en selecteer Uitvoer.

  6. Selecteer + Toevoegen. Selecteer vervolgens Power BI in de vervolgkeuzelijst.

  7. Voer de volgende acties uit om een nieuwe Power BI-uitvoer te maken om de gemiddelde prijs te visualiseren:

    • Voer in het veld UitvoeraliasaveragePriceOutput in.
    • Laat het veld Groepswerkruimte ingesteld op Verbinding autoriseren om werkruimten te laden.
    • Voer averagePrice in het veld Naam van gegevensset in.
    • Voer averagePrice in het veld Tabelnaam in.
    • Selecteer de knop Autoriseren en volg de instructies voor het autoriseren van de verbinding met Power BI.
    • Selecteer de knop Opslaan.
  8. Ga vervolgens terug naar streamjob1 en selecteer Query bewerken.

    Query bewerken

  9. Plak de volgende query in het queryvenster. De query GEMIDDELDE PRIJS berekent de gemiddelde prijs van alle items die door gebruikers worden bekeken, de gemiddelde prijs van alle items die worden toegevoegd aan de winkelwagens van gebruikers en de gemiddelde prijs van alle artikelen die door gebruikers zijn gekocht. Deze metrische gegevens kunnen e-commercebedrijven helpen bepalen tegen welke prijzen artikelen moeten worden verkocht en in welke voorraad ze moeten investeren. Als de gemiddelde prijs van bekeken artikelen bijvoorbeeld veel hoger is dan de gemiddelde prijs van gekochte artikelen, kan een bedrijf ervoor kiezen om minder dure artikelen aan de voorraad toe te voegen.

    /*AVERAGE PRICE*/      
    SELECT System.TimeStamp AS Time, Action, AVG(Price)  
     INTO averagePriceOutput  
     FROM input  
     GROUP BY Action, TumblingWindow(second,5) 
    
  10. Selecteer vervolgens Opslaan in de linkerbovenhoek.

  11. Ga nu terug naar streamjob1 en selecteer de knop Start bovenaan de pagina. Het kan enkele minuten duren voordat Azure Stream Analytics is opgestart, maar uiteindelijk ziet u dat het wordt gewijzigd van 'Starten' in 'Actief'.

Verbinding maken met Power BI

Power BI is een pakket business analytics-hulpprogramma's waarmee u gegevens kunt analyseren en inzichten kunt delen. Het is een goed voorbeeld van hoe u de geanalyseerde gegevens strategisch kunt visualiseren.

  1. Meld u aan bij Power BI en navigeer naar Mijn werkruimte door het menu aan de linkerkant van de pagina te openen.

  2. Selecteer + Maken in de rechterbovenhoek en selecteer vervolgens Dashboard om een dashboard te maken.

  3. Selecteer + Tegel toevoegen in de rechterbovenhoek.

  4. Selecteer Aangepaste streaminggegevens en selecteer vervolgens de knop Volgende .

  5. Selecteer averagePrice in UW GEGEVENSSETS en selecteer vervolgens Volgende.

  6. Kies in het veld Visualisatietypede optie Gegroepeerd staafdiagram in de vervolgkeuzelijst. Voeg onder As de actie toe. Legenda overslaan zonder iets toe te voegen. Voeg vervolgens onder de volgende sectie met de naam Waarde gem toe. Selecteer Volgende, geef de grafiek een titel en selecteer Toepassen. Als het goed is, ziet u een nieuwe grafiek op uw dashboard.

  7. Als u nu meer metrische gegevens wilt visualiseren, kunt u teruggaan naar streamjob1 en nog drie uitvoerwaarden maken met de volgende velden.

    a. Uitvoeralias: incomingRevenueOutput, Naam van gegevensset: incomingRevenue, Tabelnaam: incomingRevenue
    b. Uitvoeralias: top5Uitvoer, Gegevenssetnaam: top5, Tabelnaam: top5
    c. Uitvoeralias: uniqueVisitorCountOutput, Naam van gegevensset: uniqueVisitorCount, Tabelnaam: uniqueVisitorCount

    Selecteer vervolgens Query bewerken en plak de volgende query's boven de query die u al hebt geschreven.

     /*TOP 5*/
     WITH Counter AS
     (
     SELECT Item, Price, Action, COUNT(*) AS countEvents
     FROM input
     WHERE Action = 'Purchased'
     GROUP BY Item, Price, Action, TumblingWindow(second,30)
     ), 
     top5 AS
     (
     SELECT DISTINCT
     CollectTop(5)  OVER (ORDER BY countEvents) AS topEvent
     FROM Counter
     GROUP BY TumblingWindow(second,30)
     ), 
     arrayselect AS 
     (
     SELECT arrayElement.ArrayValue
     FROM top5
     CROSS APPLY GetArrayElements(top5.topevent) AS arrayElement
     ) 
     SELECT arrayvalue.value.item, arrayvalue.value.price,   arrayvalue.value.countEvents
     INTO top5Output
     FROM arrayselect
    
     /*REVENUE*/
     SELECT System.TimeStamp AS Time, SUM(Price)
     INTO incomingRevenueOutput
     FROM input
     WHERE Action = 'Purchased'
     GROUP BY TumblingWindow(hour, 1)
    
     /*UNIQUE VISITORS*/
     SELECT System.TimeStamp AS Time, COUNT(DISTINCT CartID) as uniqueVisitors
     INTO uniqueVisitorCountOutput
     FROM input
     GROUP BY TumblingWindow(second, 5)
    

    De top 5-query berekent de vijf belangrijkste items, gerangschikt op het aantal keren dat ze zijn gekocht. Deze metrische gegevens kunnen e-commercebedrijven helpen te evalueren welke artikelen het populairst zijn en kunnen de reclame-, prijs- en voorraadbeslissingen van het bedrijf beïnvloeden.

    De REVENUE-query berekent de omzet door de prijzen van alle artikelen die elke minuut worden gekocht, bij elkaar op te sommen. Deze metrische gegevens kunnen e-commercebedrijven helpen hun financiële prestaties te evalueren en ook te begrijpen op welke tijdstippen van de dag bijdragen aan de meeste omzet. Dit kan van invloed zijn op de algehele bedrijfsstrategie, met name marketing.

    De query UNIEKE BEZOEKERS berekent elke vijf seconden hoeveel unieke bezoekers op de site zijn door unieke winkelwagen-id's te detecteren. Met deze metrische gegevens kunnen e-commercebedrijven hun siteactiviteit evalueren en strategieën bepalen hoe ze meer klanten kunnen werven.

  8. U kunt nu ook tegels voor deze gegevenssets toevoegen.

    • Voor Top 5 is het zinvol om een gegroepeerd kolomdiagram uit te voeren met de items als de as en het aantal als de waarde.
    • Voor Omzet is het zinvol om een lijndiagram te maken met tijd als de as en de som van de prijzen als de waarde. Het tijdvenster dat moet worden weergegeven, moet zo groot mogelijk zijn om zoveel mogelijk informatie te kunnen leveren.
    • Voor Unieke bezoekers is het zinvol om een kaartvisualisatie uit te voeren met het aantal unieke bezoekers als waarde.

    Dit is hoe een voorbeelddashboard eruitziet met deze grafieken:

    Schermopname van een voorbeelddashboard met grafieken met de namen Gemiddelde prijs van items per actie, unieke bezoekers, omzet en top 5 gekochte items.

Optioneel: Visualiseren met een e-commercesite

U ziet nu hoe u uw nieuwe hulpprogramma voor gegevensanalyse kunt gebruiken om verbinding te maken met een echte e-commercesite. Als u de e-commercesite wilt bouwen, gebruikt u een Azure Cosmos DB-database om de lijst met productcategorieën, de productcatalogus en een lijst met de populairste items op te slaan.

  1. Ga terug naar de Azure Portal, vervolgens naar uw Azure Cosmos DB-account en vervolgens naar Data Explorer.

    Voeg twee verzamelingen toe onder changefeedlabdatabase-producten - en -categorieën met vaste opslagcapaciteit.

    Voeg een andere verzameling toe onder changefeedlabdatabase met de naam topItems en /Item als de partitiesleutel.

  2. Selecteer de verzameling topItems en stel onder Schalen en instellingen de Time to Live in op30 seconden , zodat topItems elke 30 seconden worden bijgewerkt.

    Time To Live

  3. Als u de verzameling topItems wilt vullen met de meest gekochte items, gaat u terug naar streamjob1 en voegt u een nieuwe Uitvoer toe. Selecteer Azure Cosmos DB.

  4. Vul de vereiste velden in zoals hieronder wordt weergegeven.

    Azure Cosmos DB-uitvoer

  5. Als u de optionele TOP 5-query hebt toegevoegd in het vorige deel van het lab, gaat u verder met deel 5a. Zo niet, ga dan verder met deel 5b.

    5a. Selecteer in streamjob1Query bewerken en plak de volgende query in uw Azure Stream Analytics-queryeditor onder de TOP 5-query maar boven de rest van de query's.

    SELECT arrayvalue.value.item AS Item, arrayvalue.value.price, arrayvalue.value.countEvents
    INTO topItems
    FROM arrayselect
    

    5b. Selecteer in streamjob1Query bewerken en plak de volgende query in uw Azure Stream Analytics-queryeditor boven alle andere query's.

    /*TOP 5*/
    WITH Counter AS
    (
    SELECT Item, Price, Action, COUNT(*) AS countEvents
    FROM input
    WHERE Action = 'Purchased'
    GROUP BY Item, Price, Action, TumblingWindow(second,30)
    ), 
    top5 AS
    (
    SELECT DISTINCT
    CollectTop(5)  OVER (ORDER BY countEvents) AS topEvent
    FROM Counter
    GROUP BY TumblingWindow(second,30)
    ), 
    arrayselect AS 
    (
    SELECT arrayElement.ArrayValue
    FROM top5
    CROSS APPLY GetArrayElements(top5.topevent) AS arrayElement
    ) 
    SELECT arrayvalue.value.item AS Item, arrayvalue.value.price, arrayvalue.value.countEvents
    INTO topItems
    FROM arrayselect
    
  6. Open EcommerceWebApp.sln en navigeer naar het Web.config-bestand in de Solution Explorer.

  7. Voeg in het <appSettings> blok de URI en PRIMAIRE SLEUTEL toe die u eerder hebt opgeslagen, waarbij hier uw URI en uw primaire sleutel hier staat. Voeg vervolgens de naam van uw database en de naam van de verzameling toe zoals aangegeven. (Deze namen moeten changefeedlabdatabase en changefeedlabcollection zijn, tenzij u ervoor hebt gekozen om uw naam anders te noemen.)

    Vul de naam van de productverzameling, de naam van de categorieënverzameling en de naam van de verzameling van de belangrijkste items in zoals aangegeven. (Deze namen moeten producten, categorieën en topItems zijn, tenzij u ervoor hebt gekozen om uw naam anders te noemen.)

  8. Navigeer naar en open de map Checkout in EcommerceWebApp.sln. Open vervolgens het Web.config-bestand in die map.

  9. Voeg in het <appSettings> blok de URI en PRIMAIRE SLEUTEL toe die u eerder hebt opgeslagen, waar aangegeven. Voeg vervolgens de naam van uw database en de naam van de verzameling toe zoals aangegeven. (Deze namen moeten changefeedlabdatabase en changefeedlabcollection zijn, tenzij u ervoor hebt gekozen om uw naam anders te noemen.)

  10. Druk boven aan de pagina op Start om het programma uit te voeren.

  11. U kunt nu experimenteren op de e-commercesite. Wanneer u een artikel bekijkt, een artikel toevoegt aan uw winkelwagen, de hoeveelheid van een artikel in uw winkelwagen wijzigt of een artikel koopt, worden deze gebeurtenissen via de Azure Cosmos DB-wijzigingenfeed doorgegeven aan Event Hub, Stream Analytics en vervolgens Power BI. We raden u aan DataGenerator te blijven uitvoeren om aanzienlijke gegevens over webverkeer te genereren en een realistische set 'Hot Products' op de e-commercesite te bieden.

De resources verwijderen

Als u de resources wilt verwijderen die u tijdens dit lab hebt gemaakt, gaat u naar de resourcegroep op Azure Portal, selecteert u resourcegroep verwijderen in het menu bovenaan de pagina en volgt u de instructies.

Volgende stappen