azureiotazure-iot-hubazure-timeseries-insights

How to bring data from multiple Azure IoT devices with different timestamp properties into same Azure Time Series Insights environment?


I have multiple Azure IoT devices sending telemetry messages to a single IoT hub. Each device has its own timestamp property name. How can I make the data from all these devices go into same TSI environment?

I tried creating multiple event sources for the same IoT hub but with different timestamp property. That makes only one event source's time stamp as the $ts at a time but how do I query respective time series data for a specific device?


Solution

  • Timeseries Insights requires that the incoming messages have the same schema.

    What you can do, is make sure that you transform the incoming messages to a canonical data-format before ingesting them into Timeseries Insights.

    My idea would be that you have an Azure Function that listens on the standard IoT Hub endpoint, and processes all messages that are coming into IoT Hub. The function then makes sure that the messages are transformed to a common model, and puts them on an EventHub.

    That EventHub is then the event-source for Timeseries Insights.