Omówienie języka KQL (Kusto Query Language)
Dotyczy: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Kusto Query Language (KQL) to zaawansowane narzędzie do eksplorowania danych i odnajdywania wzorców, identyfikowania anomalii i wartości odstających, tworzenia modelowania statystycznego i nie tylko. 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 zapytań Kusto 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.
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.
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.
Co to jest instrukcja zapytania?
Istnieją trzy rodzaje instrukcji zapytań użytkownika:
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
Aby wypróbować kilka innych zapytań Kusto, zobacz
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 zapytań Kusto, 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 .show
sł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:
- Zapytania dziennika w usłudze Azure Monitor
- język zapytań Kusto w usłudze Microsoft Sentinel
- Omówienie języka zapytań usługi Azure Resource Graph
- proaktywne wyszukiwanie zagrożeń za pomocą zaawansowanego wyszukiwania zagrożeń w usłudze Microsoft 365 Defender
- zapytań cmpivot
Powiązana zawartość
- samouczek : poznaj typowe operatory
- samouczek : korzystanie z funkcji agregacji
- szybkiego dokumentacji języka KQL
- ściągawka języka SQL to Kusto Query Language
- Najlepsze rozwiązania dotyczące zapytań