как выбрать json в kusto sql

Я хочу выбрать данные json в базе данных Azure с помощью kusto sql. смотри данные.

введите описание изображения здесь

данные в столбце сущностей. это похоже на тип json. но с [,] я не знаю почему с [,] .... не только с {,} ..

Я хочу выбрать такой тип в общем sql .. (выберите идентификатор, имя хоста, osfamily .... из SecurityAlert)

Итак, я пробовал вот так ...

SecurityAlert
| extend d=parse_json(Entities) 
| extend Entities=d.$id, id=d["$id"]

person Ricky Han    schedule 16.12.2020    source источник


Ответы (1)


Данные находятся в массиве json, поэтому вам необходимо расширить массив, используя оператор mv-expand. После этого вы можете получить к нему доступ, как при помощи точки. обозначение.

Вот пример:

let SecurityAlerts = datatable(Entities:dynamic) [dynamic([{"$id":"4", "hostName":"a2"}, {"$id":"5", "hostName":"a3"}])];
SecurityAlerts 
| mv-expand Entities
| extend id = Entities.['$id'], hostName = Entities.hostName

Результаты:  введите описание изображения здесь

person Avnera    schedule 16.12.2020
comment
Я сделал .. SecurityAlerts | mv-expand Entities | extend id = Entities.['$id'], hostName = Entities.hostName, но я получил ответ от оператора DB 'mvexpand': Не удалось разрешить выражение таблицы или столбца с именем 'SecurityAlerts' 문제 가 계속되는 경우 지원 티켓 을 여 세요. Идентификатор запроса: 12c100da-8156-4b93-9775-0caf2b62c337 - person Ricky Han; 17.12.2020
comment
похоже, вы используете неправильное имя таблицы, разве это не SecurityAlert, а не SecurityAlerts? - person Avnera; 18.12.2020