Udostępnij za pośrednictwem


semantyka grafu język zapytań Kusto (KQL) — omówienie

Semantyka grafu w języku język zapytań Kusto (KQL) umożliwia modelowanie i wykonywanie zapytań o dane jako grafy. Struktura grafu składa się z węzłów i krawędzi łączących je. Oba węzły i krawędzie mogą mieć właściwości, które je opisują.

Wykresy są przydatne do reprezentowania złożonych i dynamicznych danych obejmujących relacje wiele-do-wielu, hierarchiczne lub sieciowe, takie jak sieci społecznościowe, systemy rekomendacji, połączone zasoby lub wykresy wiedzy. Na przykład na poniższym wykresie przedstawiono sieć społecznościową składającą się z czterech węzłów i trzech krawędzi. Każdy węzeł ma właściwość dla swojej nazwy, takiej jak Bob, a każda krawędź ma właściwość dla jego typu, taką jak reportsTo.

Diagram przedstawiający sieć społecznościową jako wykres.

Grafy przechowują dane inaczej niż relacyjne bazy danych, które używają tabel i wymagają indeksów i sprzężeń w celu połączenia powiązanych danych. W grafach każdy węzeł ma bezpośredni wskaźnik do sąsiadów (przyleganie), więc nie ma potrzeby indeksowania ani sprzężenia niczego, co ułatwia przechodzenie przez graf. Zapytania grafu mogą używać struktury grafu i znaczenia do wykonywania złożonych i zaawansowanych operacji, takich jak znajdowanie ścieżek, wzorców, najkrótszych odległości, społeczności lub miar centralności.

Grafy można tworzyć i wykonywać zapytania przy użyciu semantyki grafów KQL, która ma prostą i intuicyjną składnię, która dobrze współpracuje z istniejącymi funkcjami języka KQL. Możesz również mieszać zapytania grafu z innymi funkcjami języka KQL, takimi jak zapytania oparte na czasie, oparte na lokalizacji i uczenia maszynowego, aby wykonywać bardziej zaawansowaną i zaawansowaną analizę danych. Korzystając z języka KQL z semantykami grafu, uzyskujesz szybkość i skalę zapytań KQL z elastycznością i ekspresyjnością wykresów.

Można na przykład użyć następujących funkcji:

  • Zapytania oparte na czasie do analizowania ewolucji grafu w czasie, takie jak zmiana struktury sieci lub właściwości węzła
  • Zapytania geoprzestrzenne do analizowania rozkładu przestrzennego lub zbliżenia węzłów i krawędzi, takich jak wpływ lokalizacji lub odległości na relację
  • Zapytania uczenia maszynowego dotyczące stosowania różnych algorytmów lub modeli do danych grafu, takich jak klastrowanie, klasyfikacja lub wykrywanie anomalii

Jak to działa?

Każde zapytanie semantyki grafu w usłudze Kusto wymaga utworzenia nowej reprezentacji grafu. Używasz operatora grafu, który konwertuje wyrażenia tabelaryczne dla krawędzi i opcjonalnie węzłów na grafową reprezentację danych. Po utworzeniu grafu można zastosować różne operacje, aby jeszcze bardziej ulepszyć lub zbadać dane grafu.

Rozszerzenie semantyki grafu używa aparatu grafu w pamięci, który działa na danych w pamięci klastra, dzięki czemu analiza grafu jest interaktywna i szybka. Użycie pamięci reprezentacji grafu ma wpływ na liczbę węzłów i krawędzi oraz ich właściwości. Aparat grafu używa modelu grafu właściwości, który obsługuje dowolne właściwości dla węzłów i krawędzi. Integruje się również ze wszystkimi istniejącymi operatorami skalarnymi KQL, co daje użytkownikom możliwość pisania ekspresowych i złożonych zapytań grafu, które mogą korzystać z pełnej mocy i funkcjonalności języka KQL.

Dlaczego warto używać semantyki grafu w języku KQL?

Istnieje kilka powodów używania semantyki grafu w języku KQL, takich jak następujące przykłady:

  • Język KQL nie obsługuje cyklicznych sprzężeń, dlatego musisz jawnie zdefiniować przechodzenie, które chcesz uruchomić (zobacz Scenariusz: Przyjaciele znajomego). Możesz użyć operatora make-graph, aby zdefiniować przeskoki o zmiennej długości, co jest przydatne, gdy odległość lub głębokość relacji nie jest stała. Na przykład możesz użyć tego operatora, aby znaleźć wszystkie zasoby połączone na grafie lub wszystkie miejsca, do których można dotrzeć ze źródła w sieci transportowej.

  • Wykresy obsługujące czas to unikatowa funkcja semantyki grafu w języku KQL, która umożliwia użytkownikom modelowanie danych grafu jako serii zdarzeń manipulowania grafami w czasie. Użytkownicy mogą sprawdzić, jak wykres ewoluuje wraz z upływem czasu, na przykład jak zmienia się struktura sieci grafu lub właściwości węzła albo jak występują zdarzenia grafu lub anomalie. Na przykład użytkownicy mogą używać zapytań szeregów czasowych do odnajdywania trendów, wzorców lub wartości odstających w danych grafu, takich jak zmiana gęstości sieci, centralności lub modułowości w czasie

  • Funkcja intellisense edytora zapytań języka KQL ułatwia użytkownikom pisanie i wykonywanie zapytań w języku zapytań. Zapewnia wyróżnianie składni, autouzupełnianie, sprawdzanie błędów i sugestie. Pomaga również użytkownikom w rozszerzeniu semantyki grafu, oferując słowa kluczowe specyficzne dla grafu, operatory, funkcje i przykłady, aby kierować użytkowników przez proces tworzenia grafu i wykonywania zapytań.

Limity

Poniżej przedstawiono niektóre główne limity funkcji semantyki grafu w języku KQL:

  • Można tworzyć wykresy lub wykonywać zapytania, które mieszczą się w pamięci jednego węzła klastra.
  • Dane grafu nie są utrwalane ani dystrybuowane między węzłami klastra i są odrzucane po wykonaniu zapytania.

W związku z tym w przypadku korzystania z funkcji semantyki grafu w języku KQL należy wziąć pod uwagę zużycie pamięci i wpływ na wydajność tworzenia i wykonywania zapytań względem dużych lub gęstych grafów. Jeśli to możliwe, należy użyć filtrów, projekcji i agregacji, aby zmniejszyć rozmiar i złożoność grafu.