This week we launched the specification for weighted values. This spec allows you to model data using weights. The spec is great for creating data distributions such as a bell curve. To illustrate this feature, we use a simplified example of a solar panel that emits energy production data hourly.
The graph below is live! It is connected to a stream generator that outputs data every second (every hour would make it a boring chart!).
Assume we are an energy IoT company. We want to generate data to test our energy monitoring mobile application. Here are a few questions we want to address:
We can prototype, validate and demo all of these features using Overseed. Ultimately, we will design the data and connect to a stream that generates real-time data based on that design.
First, we define the attributes along with the product, engineering, and data science teams.
Second, we list the behavior of the data we want:
Third, we can build the first version of our schema!
In the above schema we defined weights for the applicable hours. For example, "12": [7, 10] indicates to use a weight between 7 and 10 when our timestamp is at noon. Subsequently the value for kwatt_hours will be equal to that weight multiplied by the scalar value of 30 we defined under the kwatt_hrs spec or 240 kWh.
You can learn more about this specification in the doc.
Lastly, we create a generator using our schema to produce records at a chosen rate (in the graph example, we set it to 1 second). Then we connect the application to our Overseed data generator using WebSockets.
We can now test our display with extreme values, check the suggested user actions we provide and connect many streams to stress test the application. Further, the data science team can use the schema to download a large batch of data to prototype learning features.
Using Overseed's weighted values specification, we simulated a device that outputs solar energy production and used it to prototype, validate and test our application. In Addition, we can update the schema as we add more features or find new edge-cases.
We look forward to how you use this feature and any feedback you have!
The code for the embedded chart can be found in this GitHub repository.