IoT is considered to be the main driver behind analytics for next few years. Predictions point to billions of devices given rise to new innovative use cases.
What do we need in an IoT analytics platform? Of course, you can take any analytics platform and build on top of it, which happens right now. However, IoT analytics has some special features such as time series nature, geo locations, devices etc., that let us build more out of the box behaviour.
Here is what I think should be done.
Level 1: Single Device Level Analytics.
This is showing the data about a single device in graph, map, and sending an alarm if it is too high.
- When a user selects a device in the UI, show default set of analytics such as showing its location in the map, show how each attribute (e.g. temperature) behaved against time.
- Integrate a Chart (e.g. Bar Chart) generation wizard so that the users can build their own charts and add them against the device. These charts should update automatically as new data arrives at the system.
- Let the user click on a chart and setup alerts from the charts or UI. Those alerts need to deployed in a realtime analytics engine like CEP.
Level 2: Analytics across multiple devices
Let user aggregate data across all, groups, and at different levels of the hierarchy
- Have default aggregated views for location and known attributes. For example, show all devices in the group in a map or show all device values for one attribute in a line chart against time.
- Add support for groups and aggregation in the chart generation wizard integration as well when a user is building his own charts.
- Let users write their custom queries to aggregate data (e.g. using SQL-like language such as SparkSQL) and deploy them in the system.
Level 3: Predictive Analytics
We use predictive analytics to do three things.
- Classification – classify input data as belong to a specific class. For example, classify the device as an energy hungry device. see https://en.wikipedia.org/wiki/Statistical_classification more information.
- Predict the next value – predict the next value in a sequence. For example, predict the electricity demand in the next hour.
- Anomaly detection – find data points in the data that are different from most data points. e.g Detecting Fraud. This should need time series related anomaly detection as well. See https://en.wikipedia.org/wiki/Anomaly_detection.
Users should be able to select a set of data (e.g. select a subset of devices and a time range) and open them in a Machine Learning Wizard to apply algorithms and build models. Users should be able to use these models either within other queries or use it to create alerts. New Machine Learning Wizards like Azure ML and upcoming WSO2 Machine learner product are examples of such a wizard (see http://wso2.com/library/blog-post/2015/07/blog-post-sneak-peek-into-wso2-machine-learner-1.0/)