Как написать запрос Kusto, чтобы получить результаты в одной таблице?
У меня есть 2 запроса KQL, и я хочу объединить их, чтобы отобразить две строки как один результат. Не просто результат первого запроса, а результат второго запроса:
R_CL
| where isnotempty(SrcIP_s)
| project Message
| take 1;
R_CL
| where isempty(SrcIP_s)
| project Message
| take 1
Посмотрите пример R_L ниже. Я хотел бы видеть 2 строки как результат, одна с SrcIP_s не пустая, а вторая с SrcIP_s пустой (в этом случае это всегда будет одна и та же)
let R_CL = datatable ( SrcIP_s:string, Message:string)
["1.1.1.1" ,"one",
"" ,"two",
"2.2.2.2","three",
"3.3.3.3","four"];
R_CL
| project SrcIP_s, Message
3 ответа
Решение
Будет использовать union
оператор даст желаемый результат?
https://docs.microsoft.com/en-us/azure/kusto/query/unionoperator
Простым решением для этого было бы использование оператора объединения следующим образом:
let query1 = R_CL
| where isnotempty(SrcIP_s)
| project Message
| take 1;
let query2 = R_CL
| where isempty(SrcIP_s)
| project Message
| take 1;
query1
| union query2;
Я знаю, что это старый запрос, но вот пример запроса с использованием представлений и объединения для вашего единственного запроса:
Ваши два отдельных запроса...
R_CL
| where isnotempty(SrcIP_s)
| project Message
| take 1;
R_CL
| where isempty(SrcIP_s)
| project Message
| take 1
станет:
let Query1 = view () {
R_CL
| where isnotempty(SrcIP_s)
| project Message
| take 1;
};
let Query2 = view () {
R_CL
| where isempty(SrcIP_s)
| project Message
| take 1
};
union withsource="TempTableName" Query1, Query2