Пользовательские выходные данные Azure stream analytics с инструкцией обращения

#azure-stream-analytics #stream-analytics

#azure-stream-analytics #поток-аналитика

Вопрос:

У меня проблема с подсчетом пользователей каждой зоны, каждый пользователь отправляет их на сервер. Может кто-нибудь помочь мне добиться этого, спасибо. Аналитика выходного потока должна быть такой:

 {
   "sessionId": "sessionId1", -->group by sessionId
   "data": {
        "North America": 0,
        "South America": 0,
        "Europe": 0,
        "Russia": 1,
        "Africa": 2,
        "India": 0,
        "China": 2,
        "Oceania": 0, 
   }
},
{
   "sessionId": "sessionId2", -->group by sessionId
   "data": {
        "North America": 0,
        "South America": 0,
        "Europe": 0,
        "Russia": 0,
        "Africa": 1,
        "India": 0,
        "China": 0,
        "Oceania": 0, 
   }
}
  

входные данные:

 [{"sessionId":"Session1","deviceId":"deviceTest1","locale":"Russia"},{"sessionId":"Session1","deviceId":"deviceTest2","locale":"China"},{"sessionId":"Session1","deviceId":"deviceTest3","locale":"China"},{"sessionId":"Session1","deviceId":"deviceTest4","locale":"Africa"},{"sessionId":"Session1","deviceId":"deviceTest5","locale":"Africa"},{"sessionId":"Session2","deviceId":"deviceTest6","locale":"Africa"}]
  

Ответ №1:

Я пробовал запрос serval SQL, но не могу выполнить ваше требование. Я думаю, что это невозможно, потому что вам нужна group by sessionId , но агрегатные функции не могут получить этот формат.

 "data": {
        "North America": 0,
        "South America": 0,
        "Europe": 0,
        "Russia": 0,
        "Africa": 1,
        "India": 0,
        "China": 0,
        "Oceania": 0, 
   }
  

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

1. Привет, Стив, я нашел решение для этого, я использую функции UDA (определяемые пользователем агрегированные функции) для достижения моего формата данных.