Udostępnij za pośrednictwem


omówienie język zapytań Kusto

Dotyczy: ✅Microsoft Fabric

Język zapytań Kusto (KQL) to zaawansowane narzędzie do badania danych i odnajdywania wzorców, identyfikowania anomalii i wartości odstających, tworzenia modeli statystycznych itd.

KQL to prosty, ale zaawansowany język do wykonywania zapytań dotyczących danych ze strukturą, częściowo ustrukturyzowaną i bez struktury. Język jest ekspresyjny, łatwy do odczytania i zrozumienia intencji zapytań oraz zoptymalizowany pod kątem środowisk tworzenia. Język KQL jest optymalny w przypadku wykonywania zapytań dotyczących danych telemetrycznych, metryk i dzienników z głęboką obsługą wyszukiwania tekstu i analizowania, operatorów szeregów czasowych i funkcji, analizy i agregacji, geoprzestrzennych, wyszukiwań podobieństw wektorów i wielu innych konstrukcji językowych, które zapewniają najbardziej optymalny język do analizy danych. Zapytanie używa jednostek schematu, które są zorganizowane w hierarchii podobnej do SQLs: bazy danych, tabele i kolumny.

Jeśli masz doświadczenie w skryptach lub pracy z bazami danych, większość zawartości tego artykułu powinna być znana. Jeśli nie, nie martw się, ponieważ intuicyjny charakter języka szybko umożliwia rozpoczęcie pisania własnych zapytań i wspieranie wartości dla organizacji.

Ten artykuł zawiera wyjaśnienie języka zapytań i oferuje praktyczne ćwiczenia umożliwiające rozpoczęcie pisania zapytań. Aby uzyskać dostęp do środowiska zapytań, użyj internetowego interfejsu użytkownika usługi Azure Data Explorer. Aby dowiedzieć się, jak używać języka KQL, zobacz samouczek : Learn common operators.

Ten artykuł zawiera wyjaśnienie języka zapytań i oferuje praktyczne ćwiczenia umożliwiające rozpoczęcie pisania zapytań. Aby uzyskać dostęp do środowiska zapytań, użyj zestawu zapytań KQL. Aby dowiedzieć się, jak używać języka KQL, zobacz samouczek : Learn common operators.

Język KQL jest również używany do pracy z danymi w usłudze Microsoft Sentinel i manipulowania nimi. Dzienniki, które są wprowadzane do obszaru roboczego, nie są warte dużej ilości, jeśli nie możesz ich analizować i uzyskiwać ważne informacje ukryte we wszystkich tych danych. KQL ma nie tylko moc i elastyczność uzyskiwania tych informacji, ale także prostotę ułatwiającą szybkie rozpoczęcie pracy.

W tym artykule przedstawiono podstawy języka KQL obejmujące niektóre z najczęściej używanych funkcji i operatorów, które powinny obejmować od 75 do 80 procent zapytań, które użytkownicy piszą dzień do dnia. Jeśli potrzebujesz bardziej szczegółowej lub bardziej zaawansowanych zapytań, możesz skorzystać ze skoroszytu Advanced KQL for Microsoft Sentinel.

Dlaczego KQL dla usługi Microsoft Sentinel?

Usługa Microsoft Sentinel jest oparta na usłudze Azure Monitor i używa obszarów roboczych usługi Log Analytics usługi Azure Monitor do przechowywania wszystkich danych. Te dane obejmują dowolne z następujących elementów:

  • dane pozyskiwane ze źródeł zewnętrznych do wstępnie zdefiniowanych tabel przy użyciu łączników danych usługi Microsoft Sentinel.
  • dane pozyskiwane ze źródeł zewnętrznych do tabel niestandardowych zdefiniowanych przez użytkownika przy użyciu niestandardowych łączników danych i niektórych typów wbudowanych łączników.
  • dane utworzone przez samą usługę Microsoft Sentinel, wynikające z analiz tworzonych i realizowanych — na przykład alertów, zdarzeń i informacji związanych z UEBA.
  • dane przekazane do usługi Microsoft Sentinel w celu ułatwienia wykrywania i analizy — na przykład źródeł danych analizy zagrożeń i list obserwowanych.

Język KQL został opracowany w ramach usługi Azure Data Explorer i dlatego jest zoptymalizowany pod kątem wyszukiwania magazynów danych big data w środowisku chmury. Została zaprojektowana tak, aby ułatwić zagłębienie się w dane i eksplorowanie ukrytych skarbów.

Język KQL jest również używany w usłudze Azure Monitor i obsługuje dodatkowe funkcje usługi Azure Monitor, które umożliwiają pobieranie, wizualizowanie, analizowanie i analizowanie danych w magazynach danych usługi Log Analytics. W usłudze Microsoft Sentinel używasz narzędzi opartych na języku KQL za każdym razem, gdy wizualizujesz i analizujesz dane i wyszukiwanie zagrożeń, niezależnie od tego, czy w istniejących regułach i skoroszytach, czy w tworzeniu własnych.

Ponieważ KQL jest częścią niemal wszystkiego, co robisz w usłudze Microsoft Sentinel, jasne zrozumienie, jak to działa, pomaga uzyskać więcej z rozwiązania SIEM.

Co to jest zapytanie Kusto?

Zapytanie Kusto to żądanie tylko do odczytu do przetwarzania danych i zwracania wyników. Żądanie jest określone w postaci zwykłego tekstu przy użyciu modelu przepływu danych, który jest łatwy do odczytania, tworzenia i automatyzowania. Zapytania Kusto składają się z co najmniej jednej instrukcji zapytania.

Zapytanie Kusto nie zapisuje żadnych danych. Zapytania działają na danych zorganizowanych w hierarchię baz danych, tabel i kolumn, podobnie jak w przypadku języka SQL.

Co to jest instrukcja zapytania?

Istnieją trzy rodzaje instrukcji zapytań użytkownika:

  • Instrukcja wyrażenia tabelarycznego
  • Instrukcja let
  • Instrukcja zestawu

Wszystkie instrukcje zapytania są oddzielone ; (średnikiem) i mają wpływ tylko na zapytanie.

Nuta

Aby uzyskać informacje na temat instrukcji zapytań aplikacji, zobacz Instrukcje zapytań aplikacji.

Najczęstszym rodzajem instrukcji zapytania jest wyrażenie tabelaryczne instrukcji, co oznacza, że zarówno jego dane wejściowe, jak i wyjściowe składają się z tabel lub tabelarycznych zestawów danych. Instrukcje tabelaryczne zawierają zero lub więcej operatorów , z których każda zaczyna się od danych wejściowych tabelarycznych i zwraca dane wyjściowe tabelaryczne. Operatory są sekwencjonowane przez | (potok). Przepływy danych lub są przesyłane potokami od jednego operatora do następnego. Dane są filtrowane lub manipulowane w każdym kroku, a następnie przekazywane do poniższego kroku.

Jest to jak lejek, w którym zaczynasz od całej tabeli danych. Za każdym razem, gdy dane przechodzą przez inny operator, są filtrowane, zmieniane lub podsumowywane. Ponieważ potokowanie informacji z jednego operatora do innego jest sekwencyjne, kolejność operatorów zapytań jest ważna i może mieć wpływ zarówno na wyniki, jak i wydajność. Na końcu lejka pozostawiono uściślizowane dane wyjściowe.

Przyjrzyjmy się przykładowej kwerendzie.

Uruchom zapytania

StormEvents
| where StartTime between (datetime(2007-11-01) .. datetime(2007-12-01))
| where State == "FLORIDA"
| count
Hrabia
28

Nuta

KQL jest rozróżniana wielkość liter dla wszystkich — nazwy tabel, nazwy kolumn tabeli, operatory, funkcje itd. Słowa kluczowe mogą być używane jako identyfikatory, umieszczając je w nawiasach kwadratowych i cudzysłowach ([' i '] lub [" i "]). Na przykład ['where']. Aby uzyskać więcej informacji, zobacz reguły nazewnictwa identyfikatorów

To zapytanie ma pojedynczą instrukcję wyrażenia tabelarycznego. Instrukcja rozpoczyna się od odwołania do tabeli o nazwie StormEvents i zawiera kilka operatorów, where i count, każdy oddzielony potokiem. Wiersze danych dla tabeli źródłowej są filtrowane według wartości kolumny StartTime, a następnie filtrowane według wartości kolumny State . W ostatnim wierszu zapytanie zwraca tabelę z jedną kolumną i pojedynczym wierszem zawierającym liczbę pozostałych wierszy.

Aby wypróbować kilka innych zapytań Kusto, zobacz Tutorial: Write Kusto queries(Samouczek: pisanie zapytań Kusto).

Polecenia zarządzania

W przeciwieństwie do zapytań Kusto polecenia zarządzania są żądaniami do usługi Kusto w celu przetwarzania lub modyfikowania danych lub metadanych. Na przykład następujące polecenie zarządzania tworzy nową tabelę Kusto z dwiema kolumnami, Level i Text:

.create table Logs (Level:string, Text:string)

Polecenia zarządzania mają własną składnię, która nie jest częścią składni języka KQL, chociaż te dwa mają wiele pojęć. W szczególności polecenia zarządzania różnią się od zapytań, ponieważ pierwszy znak w tekście polecenia to kropka (.) znak (który nie może uruchomić zapytania). To rozróżnienie zapobiega wielu rodzajom ataków zabezpieczających, po prostu dlatego, że uniemożliwia osadzanie poleceń zarządzania wewnątrz zapytań.

Nie wszystkie polecenia zarządzania modyfikują dane lub metadane. Duża klasa poleceń rozpoczynających się od .showsłuży do wyświetlania metadanych lub danych. Na przykład polecenie .show tables zwraca listę wszystkich tabel w bieżącej bazie danych.

Aby uzyskać więcej informacji na temat poleceń zarządzania, zobacz Management commands overview.

KQL w innych usługach

Język KQL jest używany przez wiele innych usług firmy Microsoft. Aby uzyskać szczegółowe informacje na temat korzystania z języka KQL w tych środowiskach, zapoznaj się z następującymi linkami: