Как обрабатывать данные на основе ключа раздела, используя Azure Stream Analytics? - PullRequest
0 голосов
/ 03 октября 2019

Я отправляю пакетные данные в концентратор событий из веб-заданий, написанных на узле js, и я могу получить данные в поточной аналитике Azure. Но я не могу видеть ключ раздела в ASA. Я использую следующий код для отправки данных в концентратор событий.

const {EventHubClient} = require("@azure/event-hubs");
var axios = require('axios');
const connectionString = "Endpoint=connectionstring";
const eventHubsName = "eventhubname";
async function main(){
    const client = EventHubClient.createFromConnectionString(connectionString,eventHubsName);
    var axios = require('axios');
    var response = await axios.get('https://nseindia.com/live_market/dynaContent/live_watch/stock_watch/nifty500StockWatch.json');
    var response1 = await axios.get('https://www.nseindia.com/live_market/dynaContent/live_analysis/gainers/niftyGainers1.json');
    var eventData = [{body:response1['data']['data'],partitionKey:"pk12346"},{body:response['data']['data'],partitionKey:"pk12345"}];
    console.log(eventData);
    console.log("begin send...");
    await client.sendBatch(eventData);
    await client.close();
}
main().catch(err =>{
    console.log("Error occurred: ",err);
});

данные внутри response1 ['data'] ['data'] и response1 ['data'] ['data']массив данных объектанапример [{key1: значение1, ключ2: значение2}, {{ключ1: значение1, ключ2: значение2}}]

Если я не могу увидеть раздел в ASA (при получении данных извход) как можно использовать, где условие для ключа раздела и применить trnsformation.

1 Ответ

0 голосов
/ 09 октября 2019

Вам нужно написать запрос, который извлекает данные массива. Ниже приведен пример одного из моих POC:

with deviceAndMessage as (Select IoTHub.ConnectionDeviceId as deviceId, * from inputData),
 unpackedmessages as (Select deviceAndMessage.Deviceid, message.ArrayValue.DisplayName, message.ArrayValue.Value.Value, message.ArrayValue.Value.SourceTimestamp from deviceAndMessage CROSS APPLY GetArrayElements(deviceAndMessage.message) AS message),
 inputWeatherData as (select deviceId, unpackedmessages.DisplayName, unpackedmessages.Value, unpackedmessages.SourceTimestamp from unpackedmessages),
 humidity as (select * from inputWeatherData where DisplayName = 'Humidity')

Структура моего сообщения была

{
    "message" : [
       {
           "DisplayName" : "Test",
           "Value" : {
               "SourceTimestamp" : "whatever",
               "Value" : 1
           }
       },
       {
           "DisplayName" : "Test",
           "Value" : {
               "SourceTimestamp" : "whatever",
               "Value" : 1
           }
       }
    ]
}

Возможно, вы можете использовать этот пример и настроить его для своей структуры данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...