запрос kusto со значением динамического объекта без ключа

#azure-application-insights #azure-data-explorer

#azure-application-insights #azure-data-explorer

Вопрос:

У меня много данных, которые выглядят как

 {"tuesday":"<30, 60>"}  
{"friday":"<0, 5>"} 
{"saturday":"<5, 10>"}  
{"friday":"<0, 5>"} 
{"saturday":"<5, 10>"}  
{"sunday":"0"}  
{"monday":"<0, 5>"}
  

Все, что мне нужно, это значение независимо от ключа.

Мой запрос:

 customEvents
| where name == "eventName"
| extend d = parse_json(tostring(customDimensions.['Properties']))
| project d
| take 7
  

d — это динамический объект, и я могу выполнить d.monday для значения, но я хотел бы получить значение без ключа. Возможно ли это с Kusto?

Спасибо

Ответ №1:

для случая с одним свойством, как вы продемонстрировали выше, могло бы сработать использование parse оператора:

 datatable(d:dynamic)
[
    ,dynamic({"tuesday":"<30, 60>"})
    ,dynamic({"friday":"<0, 5>"})
    ,dynamic({"saturday":"<5, 10>"})
    ,dynamic({"friday":"<0, 5>"})
    ,dynamic({"saturday":"<5, 10>"})
    ,dynamic({"sunday":"0"})
    ,dynamic({"monday":"<0, 5>"})
]
| parse d with * ':"'  value '"' *
| project value
  

Примечания:

  • В случае, если ваши значения не обязательно заключены в двойные кавычки (например, являются цифрами), тогда вы должны иметь возможность указать kind=regex для parse оператора и использовать условное выражение для существования двойных кавычек.

  • В случае, если у вас потенциально более 1 свойства на пакет свойств, использование extract_all() является одним из вариантов.

Соответствующие документы:

Комментарии:

1. Отлично, оператор синтаксического анализа пропустил меня.. Большое спасибо за прилагаемые документы!