Inleiding

In de huidige snelle bedrijfsomgeving, de mogelijkheid om gegevens te analyseren als het aankomt niet uren later kan betekenen het verschil tussen het grijpen van een kans en het missen van het geheel. Real-time analytics dashboards bieden operationele teams, leidinggevenden en data analisten met voortdurend bijgewerkte inzichten in metrics zoals systeemgezondheid, klantgedrag, IoT-sensor lezingen, en financiële transacties. Het bouwen van een dergelijk dashboard vereist een backend die hoge snelheid gegevens kan opnemen, efficiënt opslaan, en antwoord complexe vragen binnen enkele seconden.

Azure Data Explorer (ADX) komt naar voren als een toonaangevende oplossing die specifiek voor deze eisen is ontworpen. Het biedt beheerde inname pijpleidingen, kolomopslag geoptimaliseerd voor tijd-serie en loggegevens, en de krachtige Kusto Query Language (KQL) om ruwe gebeurtenissen om te zetten in actieve visualisaties. Dit artikel biedt een praktische, hands-on gids voor het bouwen van een productie-grade real-time analytics dashboard met behulp van Azure Data Explorer en het integreren met Power BI voor interactieve rapportage. Je leert hoe je een ADX cluster kunt opzetten, data kunt streamen uit bronnen zoals Event Hubs, efficiënte KQL queries schrijven, verbinding maken met Power BI, en de hele pijpleiding optimaliseren voor low-latency updates.

Wat is Azure Data Explorer?

Azure Data Explorer is een volledig beheerde, hoog presterende big data analytics service die uitblinkt in interactieve analyse van grote volumes gestructureerde en semi-gestructureerde gegevens. Het is speciaal gebouwd voor scenario's zoals application monitoring, IoT telemetrie, security log analyse[, en ]business intelligence[ waar gegevens continu binnenkomen en vragen in seconden of zelfs milliseconden moeten terugkeren.

Belangrijkste functies die ADX ideaal maken voor real-time dashboards zijn:

  • Streaming inname: Ingestruineert gegevens van Azure Event Hubs, IoT Hub, Kafka en andere streaming bronnen met latencies zo laag als een paar seconden.
  • Columbaropslag en -indexering: Gegevens worden gecomprimeerd en geïndexeerd met behulp van omgekeerde en B-boomindexen, waardoor snel scannen en filteren mogelijk is.
  • Kusto Query Language (KQL): Een alleen-lezen, SQL-achtige taal met ingebouwde operators voor tijd-serie analyse, statistische functies, joys, en aggregaties.
  • Native Power BI integratie: DirectQuery modus en import modus laat dashboards automatisch of bijna-real-time te vernieuwen.
  • Auto-schaling en kostenbeheer: Clusters kunnen zelfstandig berekenen en opslaan, en u kunt een cachebeleid instellen om hete data in het geheugen te houden voor snelle vragen.

ADX wordt vaak vergeleken met traditionele data-opslagruimtes zoals Azure Synapse of Amazon Redshift, maar het is geoptimaliseerd voor hoge kardinaliteit (bijv. miljoenen unieke apparaten) en ]toepassen-alleen workloads[] typisch voor logs en tijdreeksen. Voor een dieper begrip, verwijzen naar de officiële Azure Data Explorer documentatie[.

Milieu

Een Azure Data Explorer Cluster aanmaken

Om te beginnen, log in op de Azuurportal en maak een nieuwe bron van het type "Azuur Data Explorer Cluster." Kies een abonnement, resource groep, en regio die uitlijnt met uw gegevensbronnen (bij voorkeur dezelfde regio om latentie te minimaliseren). Selecteer een berekening SKU gebaseerd op uw verwachte inname en query concurrency:

  • Dev/Test: Dev(Standard D13 v2) of Standard D14 v2 voor kleine werkbelasting.
  • Productie: Standard L8s v2, Standard L16s v2, of de nieuwere SKU familie met lokale NVMe SSD's (bijv. Standard L8s v3) voor hoge doorvoer.
  • Hoge concurrency: Clusters met meerdere instanties die automatisch kunnen schalen op basis van CPU of innamebelasting.

Nadat het cluster is ingezet, maak er een database in. Gebruik in eerste instantie het standaard bewaar- en cachebeleid. Voor realtime dashboards, kunt u een cachebeleid [ van meerdere dagen (of weken) instellen zodat alle recente gegevens uit het geheugen worden geserveerd. Het retentiebeleid[] moet lang genoeg zijn om uw rapportagebehoeften te dekken (bijv. 30

Gegevens-ingestiebronnen instellen

Real-time dashboards zijn afhankelijk van streaming data. ADX ondersteunt verschillende ingestie benaderingen:

  • Event Hubs: Meest voorkomende voor logs en telemetrie. Maak een Event Hubs namespace en een hub, configureer dan een dataverbinding in ADX die de JSON- of Avro-evenementen in kaart brengt naar een tabelschema.
  • IoT-hub: Voor IoT-apparaten biedt IoT-hub apparaatauthenticatie en berichtrouting direct naar ADX.
  • Kafka: Gebruik de ADX Kafka-connector om stromen van Apache Kafka of Confluent te brengen.
  • Blobopslag/datalake: Voor batch- of bijna-real-time inname van parket/CSV-bestanden die zijn opgeslagen in Azure Blob of ADLS Gen2.

Zorg er bij het instellen van Event Hubs voor dat het aantal partitie's overeenkomt met uw verwerkingsbehoefte. ADX kan gegevens van meerdere partities tegelijkertijd opnemen. Voor elke dataverbinding zal je een tabel en een mapping definiëren die JSON-velden transformeert in ADX- kolommen. De mapping kan ook gegevenstypeconversies verwerken (bijv., tijdstempels tot datum).

Realtime gegevens worden geïnstitutionaliseerd

Tabellen en kaarten aanmaken

Voordat u de bestemmingstabel in uw ADX-database in neemt, met KQL. Bijvoorbeeld, een tabel voor toepassingsfout logs zou er kunnen uitzien als:

.create table AppLogs (Timestamp: datetime, Level: string, Service: string, Message: string, CorrelationId: string)

Maak dan een ingestie-mapping voor het formaat dat uw streamingbron gebruikt. Voor JSON van Event Hubs is het commando:

.create table AppLogs ingestion json mapping 'AppLogsJsonMapping' '[{"column":"Timestamp","datatype":"datetime","properties":{"path":"$.timestamp"}},{"column":"Level","datatype":"string","properties":{"path":"$.level"}},{"column":"Service","datatype":"string","properties":{"path":"$.service"}},{"column":"Message","datatype":"string","properties":{"path":"$.message"}},{"column":"CorrelationId","datatype":"string","properties":{"path":"$.correlationId"}}]'

Deze mappings vertellen ADX hoe velden uit elk evenement te halen.

De verbinding met de activiteitshubs instellen

In het Azure-portaal kunt u navigeren naar uw ADX-database, "dataverbindingen" selecteren en een Event Hubs-verbinding toevoegen. Geef de Event Hubs-naamruimte, hubnaam, consumentengroep (gebruik een speciale consumentengroep voor ADX om conflicten te voorkomen), en de tabelnaam. Geef de mappingreferentie die u hebt gemaakt. ADX zal automatisch gebeurtenissen consumeren en deze binnen enkele seconden beschikbaar maken voor vragen.

Voor hoge doorvoer scenario's, overwegen het gebruik van streaming inname (ingeschakeld op de cluster) in plaats van batch inname. Streaming inname schrijft gegevens rechtstreeks in de kolomar maten zonder tussenliggende enscenering, het verstrekken van latencies onder 10 seconden. Voor de meeste real-time dashboards, dit is de voorkeur modus. Batch inname (standaard) verzamelt gegevens voor een paar minuten voor het afronden van de maten, die 2

Vragen met Kusto Query Language (KQL)

Het hart van elk ADX dashboard is de KQL queries die gegevens in real time samenvoegen en filteren. Hieronder staan patronen die u vaak zult gebruiken.

Basisfiltering en samenvoegen

Om foutmeldingen per dienst te tellen gedurende het laatste uur in een-minuten bakken:

AppLogs
| where Timestamp > ago(1h)
| where Level == "Error"
| summarize ErrorCount = count() by Service, bin(Timestamp, 1m)
| order by Timestamp asc

Dit geeft een tijdreeks terug klaar voor een lijndiagram.

Percentielberekeningen

Voor latency metrics, je zou kunnen willen P50, P95 en P99:

ServiceLatency
| where Timestamp > ago(30m)
| summarize P50 = percentile(LatencyMs, 50), P95 = percentile(LatencyMs, 95), P99 = percentile(LatencyMs, 99) by Service

Samenvoegen met referentiegegevens

Vaak moeten dashboards gebeurtenissen verrijken met statische opzoekgegevens (bv. apparaatlocaties). ADX ondersteunt lichtgewicht aansluitingen. Zo kunt u bijvoorbeeld de telemetriestroom verbinden met een tabel met apparaten:

Telemetry
| where Timestamp > ago(15m)
| lookup Devices on DeviceId
| project Timestamp, DeviceId, Region, MetricValue

Voor grote referentietabellen, overwegen materialiseren ze met behulp van gematerialiseerde weergaven of ze opslaan in een aparte cluster met een passend cachebeleid.

Functies van de tijdreeks

ADX omvat krachtige tijdreeksbewerkingen zoals voor anomaliedetectie, voor seizoensgebondenheid, en voor frequentieanalyse. Voorbeeld: detectie van afwijkingen in HTTP-fouttellingen:

AppLogs
| where Timestamp > ago(2h)
| make-series ErrorCount = count() on Timestamp step 1m
| extend anomalies = series_decompose(ErrorCount, -1, 2.0, 'ok')
| mv-expand Timestamp, ErrorCount, anomalies
| where anomalies[2] < 0 or anomalies[2] > 0

Dergelijke vragen zijn geavanceerde, maar kan voeden alert dashboards direct.

Zie voor een volledige verwijzing de Kusto Query Taaldocumentatie.

Bouwen van het Power BI Dashboard

Vermogen BI verbinden met ADX

Azure Data Explorer integreert met Power BI via de Azure Data Explorer (Kusto) connector. Om aan te sluiten:

  1. Open Power BI Desktop, klik op "Get Data" > "Meer..."
  2. Zoek naar "Azure Data Explorer" en selecteer de connector.
  3. Voer uw cluster-URL in (bijv. ) en de databasenaam.
  4. Kies tussen Import (gegevens worden in Power BI getrokken en periodiek vernieuwd) of DirectQuery (vragen worden naar ADX gestuurd bij elke interactie). Voor real-time dashboards, gebruik DirectQuery. Dit zorgt ervoor dat elke filter, snijmachine en visuele triggers een KQL-query tegen de nieuwste gegevens.

KQL-vragen in Power BI schrijven

In het dialoogvenster van de connector kunt u een KQL query direct typen. Houd de query's gefocust en zorg ervoor dat ze tabelgegevens teruggeven die Power BI kan modelleren. Bijvoorbeeld om een dataset te maken met fouttellingen per dienst per minuut gedurende het laatste uur:

AppLogs
| where Timestamp > ago(1h)
| summarize ErrorCount = count() by Service, bin(Timestamp, 1m)

Na het laden van de query, gebruik Power BI's modeling om maatregelen, hiërarchieën en relaties te definiëren als u meerdere vragen. Vermijd het laden van ruwe volledige logs .

Realtime verversen wordt geconfigureerd

In DirectQuery modus, de visuals automatisch opnieuw navragen ADX wanneer gebruikers interactie met het rapport (bijvoorbeeld, het veranderen van een datum snijder). Echter, om het dashboard automatisch te vernieuwen zonder gebruikersinteractie, moet u de auto-pagina refresh functie in de Power BI dienst:

  1. Publiceer het rapport aan een App werkruimte met Premium capaciteit (of PPU).
  2. In de rapportageinstellingen, onder "Gepland vernieuwen," stelt u het DirectQuery refresh interval in voor real-time dashboards, gebruik 1 of 2 minuten.
  3. Als alternatief, gebruik de functie Auto-refresh (preview) die de pagina met een vast interval (bijvoorbeeld elke 30 seconden) ververst.

Houd er rekening mee dat elke auto-refresh alle KQL-queries die aan de visuals ten grondslag liggen, zal uitvoeren. Optimaliseer uw vragen om snel (minder dan 5 seconden) terug te keren om te voorkomen dat de gebruiker wacht en overmatige clusterbelasting.

Visualisatie Beste praktijken

  • Gebruik kaartvisuals voor KPI's (bijvoorbeeld totale fouten in de laatste 5 minuten).
  • Line charts voor trends in de tijdreeks.
  • Bar-diagrammen voor top-N-uitbredingen (bv. top-Failing services).
  • Geospatiale kaarten als je locatiegegevens hebt.
  • Gauges om vooruitgang te tonen in de richting van drempels.

Omdat DirectQuery vragen stuurt over elke interactie, vermijd het gebruik van aangepaste visuals die veel vragen genereren. Breng ook filters zo vroeg mogelijk in KQL aan om het datavolume te verminderen.

Optimaliseren van prestaties voor real-time vragen

Clustering en indextunen

ADX creëert en mergets (data shards) automatisch na verloop van tijd. U kunt echter de prestaties beïnvloeden door:

  • Kiezen van een clusterbeleid dat hoge opname-doorvoer balanceert met query concurrency. Voor real-time dashboards met veel visuele vragen, uitschalen (toevoegen instanties) in plaats van opschalen.
  • Het juiste cachebeleid instellen in de database of tabellen. Bijvoorbeeld om de laatste 7 dagen in hot cache te bewaren:
  • Gebruikmakend van gematerialiseerde weergaven voor vooraf geaggregeerde resultaten die incrementele updates. Een gematerialiseerde weergave kan per uur of dagelijks samenvattingen berekenen, die dan direct hoog niveau dashboards dienen.

Optimalisatietips zoeken

  • Voer vroeg in: Gebruik clausules op de tijdstempelkolom en de hoge-cardinaliteitsafmetingen om gescande gegevens te verminderen.
  • Minimaliseert sluit zich aan: Indien mogelijk, denormaliseren gegevens tijdens inname zodat referentiegegevens al ingebed zijn in gebeurtenissen.
  • Vermijd in projecten: Expliciete lijst van benodigde kolommen om bandbreedte en geheugen te verminderen.
  • Gebruik voor grote operaties om aggregatie over knooppunten te verdelen.
  • Verminder resultaten: Gebruik altijd , , of ] in ontwikkelingsvragen. In Power BI hebben de visuals meestal hun eigen top-N filters, maar voeg ze ook toe in KQL.

Monitoring van de gezondheid van clusters

Azure Data Explorer biedt ingebouwde kenmerkende logs en metrics via Azure Monitor. Belangrijkste metrics om te kijken:

  • Ingestielatentie: Gemiddelde tijd van het aanmaken van gebeurtenissen tot het opvragen.
  • Query latency: P50 en P99 executietijden.
  • CPU en geheugengebruik: Indien consistent hoog, overwegen schaalvergroting.
  • Ingestiesnelheid: Zorg ervoor dat u niet knoeit; split streams in meer partities indien nodig.

Stel waarschuwingen in in Azure Monitor in voor wanneer query latencies een drempel overschrijden (bijv. P99 > 10 seconden) zodat u proactief kunt afstellen.

Realtime Alerting en Automatisering

Een real-time dashboard is het krachtigst als het gekoppeld wordt aan geautomatiseerde reacties. Azure Data Explorer biedt verschillende integratiepunten:

Azure Monitor Alerts van ADX

U kunt geregelde queries aanmaken in ADX die op een schema lopen (bijv. elke 5 minuten) en resultaten naar Azure Monitor sturen. Definieer dan alert regels die branden wanneer aan de voorwaarden wordt voldaan (bijv. foutmelding > 100 in een 5 minuten durende venster). Dit maakt acties mogelijk zoals:

  • Een e-mail of sms versturen via actiegroepen.
  • Azure Logic Apps wordt geactiveerd om workflows uit te voeren (bijv., een service opnieuw opstarten, een incidentticket maken).
  • Webhooks oproepen om externe systemen te waarschuwen.

Azure Logic Apps en Microsoft Power Automatiseren

Gebruik Logic Apps met de "Execute Kusto Query" connector om gegevens van ADX op te halen en vervolgens actie te ondernemen. Bijvoorbeeld, als een query een piek in CPU-gebruik in VMs detecteert, kan een Logic App een Azure Automation runbook activeren om de VMSS te schalen. Dit sluit de lus tussen monitoring en herstel.

Stream Analytics en ADX als zink

Voor zelfs lagere latency waarschuwingen, route streaming data via Azure Stream Analytics, die tijdelijke vensters kunnen toepassen en duw alert gebeurtenissen gelijktijdig naar ADX (voor historische analyse) en naar een Event Hubs abonnee voor onmiddellijke waarschuwing.

Gebruik cases en voorbeelden van de werkelijkheid

  • DevOps Observability Dashboard: Geaggregeerde logs, metrics en sporen van microservices in Kubernetes clusters. ADX innames van Fluentd/Logstash Azure Event Hubs, en het Power BI dashboard toont aanvraagsnelheden, foutresponsen en staartlaten.
  • IoT Fleet Monitoring: IoT Hub verbinden met ADX voor voertuigtelemetrie (locatie, snelheid, batterijstatus). Een realtime kaart visueel in Power BI updates als voertuigen melden.
  • Financiële fraudedetectie: Stroomtransacties via Event Hubs naar ADX. Dashboards tonen transactievolumes per regio en anomaliescores; waarschuwingen trigger blocklists wanneer drempels worden overschreden.
  • Clickstream Analysis: Gebruikersactiviteit van websites wordt opgenomen in ADX. Het dashboard volgt actieve gebruikers, paginaweergaven per seconde, en conversietrechters bijgewerkt elke minuut.

Conclusie

Het bouwen van een realtime analytics dashboard met Azure Data Explorer en Power BI is een robuuste, schaalbare aanpak die voldoet aan de groeiende vraag naar directe inzichten. Door ADX's streaming inslikken, de krachtige tijd-serie mogelijkheden van KQL en DirectQuery verbindingen in Power BI te benutten, kunt u dashboards maken die elke paar seconden verfrissen en terabytes van binnenkomende gegevens verwerken. De sleutel tot succes ligt in zorgvuldige capaciteitsplanning, doordachte query ontwerp en continue monitoring van prestaties.

Start klein met een enkele telemetriestroom, itereer op vragen en breidt zich geleidelijk uit naar meer gegevensbronnen. Naarmate de real-time behoeften van uw organisatie groeien, zorgt de elasticiteit van ADX ervoor dat uw dashboardschaal zonder de snelheid te verminderen. Voor meer informatie, ontdek de ADX Event Hubs innamegids en de Power BI naar Azure Data Explorer connector documentatie.