Как написать запрос 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
Другие вопросы по тегам