“TimescaleDB excels in operation stability, scalability, and feature density. These are core competencies for a successful time-series database.”
- Andreas Nigg, CTO, SenseforceSenseforce provides an Industrial IoT (IIoT) solution for thousands of small and medium-sized enterprises (SMEs) that make up the backbone of the European machine manufacturing industry. Their offering is different from other solutions because they want to empower machine experts to work with data and create value for the organization (no advanced IT know-how required).
As a result, they’ve built a product that makes data easily accessible, usable, and flexible — so everyone can act as a data scientist. This low code and highly streamlined approach drastically reduces integration efforts and setup costs compared to the similar solutions. They’ve won several awards for their innovative IIoT offering such as the Austrian State Price for Deep Tech and the Innovation Award of the Austrian Maintenance and Plant Management Association (ÖVIA).
Senseforce plans to scale their business as the need for a high-performance and flexible IIoT solution continues to grow. Subsequently, the Senseforce team realized early on that they needed a time-series database that was able to scale with them in the future. After evaluating all the options, Senseforce chose TimescaleDB.
Initially, Senseforce was using CrateDB to store their time-series data. As the amount of data began to grow, Senseforce required a more robust and complete database to handle the increasing demands in operational efforts.
Senseforce began to look for other solutions and came across a Timescale blog post on using a relational database (specifically Postgres + TimescaleDB) for IoT workloads. The blog directly addressed several issues for Senseforce's development and operations team. After learning about how TimescaleDB is built on the highly trusted PostgreSQL core technology, and has enticing built-in time-series features like
time_bucketand
time_bucket_gapfill, the team was ready to get started.
As a result, Senseforce initiated a benchmarking and testing project which resulted in a high degree of satisfaction for TimescaleDB. Here’s an overview of the results.
The initial tests clearly showed TimescaleDB’s potential to power huge datasets with a single node. Senseforce benchmarked eight 8-core, 32GB RAM D8s_v2 Azure CrateDB instances (previous production-like setup) with one 16-core, 64GB RAM D16s_v2 TimescaleDB instance.
TimescaleDB met and even exceeded all of Senseforce's query speed requirements. Senseforce reported that the main advantage of TimescaleDB was observed when watching the CPU utilization. A single query on CrateDB would max out all 64 cores of the benchmarking setup, whereas single TimescaleDB queries only require 1-6 cores.
The latter finding clearly demonstrated to Senseforce that they could scale with TimescaleDB. Each Senseforce customer onboards about 20-150 users so the low CPU demand for single queries was a main requirement for their scaling needs.
“TimescaleDB excels in supporting and building its community.
TimescaleDB excels in supporting and building its community. When we first set up our architecture, we asked several questions via the public Slack channel and got very quick, technical responses. I've not seen this type of activity from any other database solutions out there. Timescale’s active community of developers is yet another reason for why you'd want to use this solution.”
- Andreas Nigg, CTO, SenseforceIn addition to providing the performance and stability they needed, it was important to Senseforce that TimescaleDB had analytic capabilities for working with time-series data. Senseforce was impressed with Timescale’s product roadmap and the frequency with which Timescale ships new functionality. They set out to immediately take advantage of these features.
Senseforce makes heavy use of several TimescaleDB features that are particularly useful for an IIoT use case. For example, they use data reordering, continuous aggregations, and data tiering to reduce operational complexity and total cost of ownership (TCO).
Senceforce’s solution allows its customers to compare and analyze a variety of different data points (i.e., operational statistics compared to axis speeds). Since they offer this capability, data is often not sampled at the exact same timestamp. They use time_bucket and time_bucket_gapfill to allow for a new analytical feature set with their low-code offering.
For example, the image below shows a Senseforce user’s dataset which was created using the Senseforce “point and click” query editor. In order to obtain this view, a SQL statement was generated in the background and sent to TimescaleDB. When the column “Speed Axis 1” changes on the machine, an update is immediately sent to the cloud. However, “Speed Axis 2” does not change at the same time, so an update is not sent the exact same timestamp, resulting in “no data”.
Making sense out of this irregular data was very cumbersome for many use cases and Senseforce customers need to manually write scripts instead of using the “point and click” low-code editor. With
time_bucket_gapfillfunctionality however, Senseforce can simply fill the “no data” gaps and make analytics much easier for their users.
Senseforce also plans to continue to take advantage of TimescaleDB continuous aggregates. Their customers like to analyze raw machine data over the course of a month, but only want to see the aggregate values. They believe that continuous aggregates will help dramatically reduce costs internally and speed up their customers’ query performance.
Since TimescaleDB is built on top of Postgres, Senseforce felt confident in the database’s infrastructure when it came to reliability and stability. And since anything that works with PostgreSQL works with TimescaleDB, Senseforce is able to use pgAdmin as their management tool of choice.
In order to make their machine data actionable, Senseforce connects TimescaleDB to two places: their core microservice platform and their award winning analytics/action framework frontend. Senseforce’s devices connect to a HiveMQ broker which they connect with a decoupling plugin to TimescaleDB.
“Query speed is always important, but for us, the biggest advantage to using TimescaleDB is its operational stability and query scalability.”
- Andreas Nigg, CTO, SenseforceSenseforce remarked that replacing existing technologies with new ones isn’t always an easy task. However, the Timescale Community made it easier for them by offering support every step of the way. By powering their IIoT technology stack with TimescaleDB, Senseforce feels confident that their database will be able to scale with their growing business.