I denna artikeln tar vi en titt på KQL och dess styrker. Vi jämför även med SQL och tar upp exempel där KQL både förenklar och är mer kraftfullt än SQL.
Azure Data Explorer, som är en snabb och högt skalbar datatjänst för att analysera stora mängder data, var den första plattformen som använde KQL. Syftet med att skapa KQL var att ge användare ett kraftfullt verktyg för att söka, analysera och visualisera stora datamängder.
Sedan dess har KQL integrerats i flera andra Microsoft-tjänster och har blivit ett viktigt verktyg för realtidsdataanalys inom Microsofts molntjänster.
Här är några av de plattformar och tjänster som har stöd för KQL:
- Azure Data Explorer
- Azure Monitor
- Log Analytics
- Azure Sentinel
- Microsoft Defender for Cloud
- Application Insights
- Microsoft Fabric
- Power BI (via Azure Data Explorer)
Här är några av de viktigaste faktorerna som gör KQL kraftfullt:
- Snabbhet och skalbarhet: KQL är utformad för att hantera och bearbeta stora mängder data mycket snabbt. Det är optimerat för realtidsanalys och kan utföra komplexa frågor på miljontals poster på bara några sekunder.
- Flexibilitet:KQL erbjuder en bred uppsättning funktioner och operators som gör det möjligt att skapa komplexa och anpassade frågor. Du kan filtrera, sortera, aggregera och transformera data på många olika sätt, vilket ger stor flexibilitet i analysen.
- Stark integration med Microsofts ekosystem: KQL är djupt integrerat i Microsofts molntjänster som Azure Monitor, Azure Sentinel och Azure Data Explorer, vilket gör det till ett naturligt val för datainsamling och analys i dessa miljöer. Det möjliggör smidiga arbetsflöden och analys av data från flera källor inom samma ekosystem.
- Specialiserat för logganalys: KQL är särskilt kraftfullt för logganalys, vilket är ett kritiskt inom många verksamheter. Det kan användas för att snabbt hitta och analysera mönster, fel, och säkerhetshot i stora loggdatabaser.
- Enkelt att lära sig och använda: Syntaxen i KQL är relativt enkel och lätt att förstå, särskilt för de som redan är bekanta med SQL. Detta gör det enkelt att komma igång med och använda för att utföra avancerade analyser.
- Visualisering och interaktiva analyser: Med integrationen till verktyg som Power BI och Azure Monitor kan KQL användas för att skapa interaktiva rapporter och dashboards som ger användare möjlighet att utforska data visuellt.
QKL vs SQL
Hur står sig KQL i jämförelse med SQL?
Azure Data Explorer har som bekant stöd för SQL, men KQL kan vara både enklare och mer kraftfullt, särskilt när det gäller analys av stora mängder logg- och tidsseriedata.
Här är några konkreta exempel:
1. Tidsbaserad dataanalys
SQL: För att utföra tidsbaserad analys, som att räkna antalet händelser per tidsintervall, behöver du vanligtvis en kombination av GROUP BY, DATEPART eller liknande funktioner. Detta kan bli komplext om du vill ha flexibla tidsintervall eller jämföra data mellan olika tidsperioder.
SELECT DATEPART(hour, timestamp) as Hour, COUNT(*) as EventCount
FROM EventLog
WHERE timestamp BETWEEN '2023-08-21' AND '2023-08-22'
GROUP BY DATEPART(hour, timestamp)
ORDER BY Hour;
KQL: I KQL är tidsbaserad analys betydligt enklare och mer intuitiv. Du kan använda summarize-operatorn tillsammans med bin() för att gruppera data i tidsintervall. Detta gör det enkelt att utföra aggregeringar över tid utan att behöva manipulera tidsobjektet.
EventLog
| where timestamp between(datetime(2023-08-21) .. datetime(2023-08-22))
| summarize EventCount = count() by bin(timestamp, 1h)
| order by timestamp asc
2. Logghantering och sökning
SQL: Att söka efter specifika ord i loggar med SQL kan vara tungrott, speciellt om du ska hantera stora datamängder. Du använder ofta LIKE med wildcards, vilket kan vara ineffektivt för stora datamängder.
SELECT * FROM EventLog
WHERE Message LIKE '%error%' AND Message LIKE '%timeout%'
KQL: I KQL kan du använda "has" som är optimerad för snabb textmatchning. Detta gör att du kan utföra komplexa sökningar i stora loggar med bättre prestanda och enklare syntax.
EventLog
| where Message has "error" and Message has "timeout"
3. Aggregering och pivotering
SQL: Att pivotera data eller utföra komplexa aggregeringar kan kräva flera CASE-satser eller användning av PIVOT, vilket kan göra syntaxen svårläst.
SELECT
COUNT(CASE WHEN severity = 'High' THEN 1 END) as HighSeverity,
COUNT(CASE WHEN severity = 'Low' THEN 1 END) as LowSeverity
FROM EventLog
KQL: I KQL är pivotering och aggregering simplare och mer intuitivt. Med hjälp av summarize kan du snabbt och enkelt aggregera data på flera dimensioner, och extend-operatorn gör det enkelt att skapa nya beräknade kolumner.
EventLog
| summarize HighSeverity = countif(severity == "High"), LowSeverity =
countif(severity == "Low")
Slutsats
KQL är ofta enklare att använda för scenarier som involverar stora mängder data, särskilt loggar och tidsserier. Dess syntax är designad för att vara direkt och kraftfull, vilket gör att komplexa frågor kan skrivas med mindre kod än vad som är möjligt med SQL, samtidigt som prestandan är optimerad för snabba analyser.

Skriven av
Markus Lundberg
Läs mer om Data & Integrations

Azure Integration Services, nyckeln till moderna integrationer
Många företag står med ena benet i äldre system och det andra i moln- och AI-världen. Hur bygger man en sömlös bro mellan dessa två utan att fastna i komplexa integrationsprojekt? I denna artikeln om Azure Integration Services visar vi hur Microsofts integrerade verktygslåda ger dig kraften att automatisera processer, exponera API:er och skapa eventstyrda flöden med robust säkerhet och skalbarhet.
Läs mer
Azure Events, hur man tar kontroll över sin Azure-miljö.
Vill du ha bättre koll på vad som händer i din Azure-miljö, i realtid? Läs om hur du kan få bättre kontroll på ändringar i din miljö. Vem skapar nya resurser? Finns det något certifikat som snart är expired, etc? Med Azure Events kan du dessutom automatiskt ta actions på när saker händer!
Läs mer
Nyheterna i C# 14 och .NET 10
I november släpps .NET 10 tillsammans med C# 14. En LTS release som kommer med en del roliga nyheter. I denna artikeln går vi igenom vad som är nytt och bra att veta.
Läs mer