Sdílet prostřednictvím


Přehled sémantiky grafu dotazovací jazyk Kusto (KQL)

Sémantika grafu v dotazovací jazyk Kusto (KQL) umožňuje modelovat a dotazovat data jako grafy. Struktura grafu se skládá z uzlů a hran, které je propojují. Oba uzly i hrany můžou mít vlastnosti, které je popisují.

Grafy jsou užitečné pro reprezentaci složitých a dynamických dat, která zahrnují vztahy M:N, hierarchické nebo síťové vztahy, jako jsou sociální sítě, systémy doporučení, propojené prostředky nebo grafy znalostí. Následující graf například znázorňuje sociální síť, která se skládá ze čtyř uzlů a tří hran. Každý uzel má vlastnost pro svůj název, například Bob, a každá hrana má vlastnost pro svůj typ, například reportsTo.

Diagram znázorňující sociální síť jako graf

Grafy ukládají data odlišně od relačních databází, které používají tabulky a potřebují indexy a spojení pro připojení souvisejících dat. V grafech má každý uzel přímý ukazatel na jeho sousedy (sousedství), takže není nutné indexovat ani spojit cokoli, takže je snadné a rychle procházet grafem. Grafové dotazy můžou používat strukturu grafu a význam k provádění složitých a výkonných operací, jako je hledání cest, vzorů, nejkratší vzdáleností, komunit nebo míry centrality.

Grafy můžete vytvářet a dotazovat pomocí sémantiky grafu KQL, která má jednoduchou a intuitivní syntaxi, která dobře funguje s existujícími funkcemi KQL. Grafové dotazy můžete také kombinovat s dalšími funkcemi jazyka KQL, jako jsou časově založené, založené na poloze a dotazy strojového učení, a provádět pokročilejší a výkonnější analýzu dat. Pomocí jazyka KQL s sémantikou grafů získáte rychlost a měřítko dotazů KQL s flexibilitou a výrazností grafů.

Můžete například použít:

  • Dotazy založené na čase, které analyzují vývoj grafu v průběhu času, například jak se mění struktura sítě nebo vlastnosti uzlu
  • Geoprostorové dotazy k analýze prostorového rozdělení nebo blízkosti uzlů a hran, jako je například vliv umístění nebo vzdálenosti na vztah
  • Dotazy strojového učení k použití různých algoritmů nebo modelů na grafová data, jako jsou clustering, klasifikace nebo detekce anomálií

Jak to funguje?

Každý dotaz sémantiky grafu v Kusto vyžaduje vytvoření nové reprezentace grafu. Použijete operátor grafu, který převede tabulkové výrazy pro hrany a volitelně uzly na grafovou reprezentaci dat. Po vytvoření grafu můžete použít různé operace k dalšímu vylepšení nebo prozkoumání dat grafu.

Rozšíření sémantiky grafu používá modul grafů v paměti, který pracuje s daty v paměti clusteru a umožňuje interaktivní a rychlou analýzu grafů. Spotřeba paměti reprezentace grafu je ovlivněna počtem uzlů a hran a jejich odpovídajícími vlastnostmi. Grafový modul používá model grafu vlastností, který podporuje libovolné vlastnosti pro uzly a hrany. Integruje se také se všemi existujícími skalárními operátory jazyka KQL, což uživatelům umožňuje psát výrazné a složité grafové dotazy, které můžou využívat plný výkon a funkce jazyka KQL.

Proč používat sémantiku grafu v KQL?

V KQL existuje několik důvodů, proč použít sémantiku grafu, například následující příklady:

  • KQL nepodporuje rekurzivní spojení, takže musíte explicitně definovat procházení, které chcete spustit (viz Scénář: Přátelé přítele). Pomocí operátoru vytvárování grafu můžete definovat segmenty směrování proměnné délky, což je užitečné, když není pevná vzdálenost relace nebo hloubka. Pomocí tohoto operátoru můžete například najít všechny prostředky připojené v grafu nebo všechna místa, ke kterým se můžete dostat ze zdroje v přepravní síti.

  • Grafy pracující s časem jsou jedinečnou funkcí sémantiky grafu v KQL, které uživatelům umožňují modelovat data grafu jako řadu událostí manipulace s grafy v průběhu času. Uživatelé můžou prozkoumat, jak se graf v průběhu času vyvíjí, například jak se mění síťová struktura grafu nebo vlastnosti uzlu nebo jak se grafové události nebo anomálie stávají. Uživatelé můžou například pomocí dotazů časových řad zjišťovat trendy, vzory nebo odlehlé hodnoty v datech grafu, jako je například způsob změny hustoty sítě, centrality nebo modularity v průběhu času.

  • Funkce IntelliSense editoru dotazů KQL pomáhá uživatelům psát a spouštějí dotazy v dotazovacím jazyce. Poskytuje zvýrazňování syntaxe, automatické dokončování, kontrolu chyb a návrhy. Pomáhá také uživatelům s rozšířením sémantiky grafu tím, že nabízí klíčová slova specifická pro grafy, operátory, funkce a příklady, které uživatele provedou procesem vytváření a dotazování grafu.

Omezení

Tady jsou některé hlavní limity funkce sémantiky grafu v KQL:

  • Můžete vytvářet nebo dotazovat pouze grafy, které se vejdou do paměti jednoho uzlu clusteru.
  • Grafová data se neuchovávají nebo distribuují napříč uzly clusteru a po spuštění dotazu se zahodí.

Proto při použití funkce sémantiky grafu v KQL byste měli zvážit využití paměti a výkonu při vytváření a dotazování velkých nebo hustých grafů. Pokud je to možné, měli byste použít filtry, projekce a agregace, abyste snížili velikost a složitost grafu.