Как расширить значения массива, хранящиеся как свойства в Kusto - PullRequest
0 голосов
/ 15 февраля 2020

У меня есть сумка свойств (json объект), которая, к сожалению, имеет массив объектов с динамически именованными свойствами, а не фактический массив. В сумке есть и другие свойства. Например:

{
  "something": "whatever",
  "another": "doesn't matter",
  "thing1": "value1",
  "thing2": "value2",
  "thing3": "value3"
}

В конечном итоге я хотел бы иметь по одной строке на thing:

value1
value2
value3

Я знаю, что могу использовать mv-expand для преобразования массива или пакета свойств в несколько строк, но я не уверен, как

  1. Сохранять только те свойства, где ключ начинается с "вещи"
  2. Сбросить ключ, сохраняя только значение

В случае, если это важно, количество вещей в сумке с недвижимостью сильно варьируется Обычно это только один, но иногда это 10-20 и редко это может быть 100 или больше.

1 Ответ

2 голосов
/ 15 февраля 2020

вы можете попробовать использовать mv-apply для этого:

datatable(d:dynamic)
[
    dynamic({"something":"whatever","another":"doesn'tmatter","thing1":"value1","thing2":"value2","thing3":"value3"}),
    dynamic({"somethingelse":"whatever2","another":"doesn'tmatter2","thing1":"value12","thing2":"value22","thing3":"value32"}),
]
| mv-apply d on (
    extend key = tostring(bag_keys(d)[0])
    | where key startswith "thing"
    | project value = d[key]
)

, что возвращает:

| value   |
|---------|
| value1  |
| value2  |
| value3  |
| value12 |
| value22 |
| value32 |
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...