cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Ask the Expert: Making Time Series in ThingWorx More Powerful with InfluxData

Level 10

Ask the Expert: Making Time Series in ThingWorx More Powerful with InfluxData

Hi, ThingWorx users!


We’re excited to share that we have partnered with InfluxData to make time series analysis in ThingWorx even easier. InfluxDB is a database by InfluxData that is “built specifically for metrics and events that empower developers to build next-generation IIoT, analytics and monitoring applications.”

 

Why InfluxData? 

Today, application developers expect robust querying capabilities, fast response time, easy ways of aggregating and pivoting on data and leveraging results for reporting and visualization. IT and devops administrators also expect cost-effective storage and easy ways of aging data through archiving and the ability to keep large amounts of historical data to satisfy analysis requirements.

 

That’s why we’ve partnered with InfluxData to make it easier for developers to store, analyze and act on IIoT data in real-time. With InfluxData, developers can build connected IIoT applications more quickly while still incorporating the following capabilities:

  • monitoring
  • real-time alerting
  • predictive maintenance
  • streaming data
  • anomaly and event detection
  • visual and report-based analysis

 

We considered a few technologies for the purpose of improving ThingWorx time series analysis. Here are a few reasons we chose InfluxData:

  • high compression of data ~45x
  • ability to handle millions of writes per second*
  • ability to read around thousands of rows in milliseconds*
  • supports the standard time series functions of sampling, interpolation, time bucketing, aggregation, selector, transformation, predictor, etc. 

* Query and write times will vary based on an individual ThingWorx application’s implementation with Influx. For example, as the number of concurrent reads increases, the query speed decreases. With the upcoming 8.4 release, the ThingWorx Sizing Guide will be updated to reflect representative performance for ThingWorx developers.

 

In addition to improved query capability, ThingWorx time series with Influx can now use less memory and CPU, giving your platform servers a bit of a break.

 

To start strategizing on how InfluxData can help you in your ThingWorx journey, here is a sneak preview of what it will look like:

ThingWorx Architecture with Influx.png

 

New Features

The new ThingWorx Influx Persistence Provider will make query services like ValueStream Thing QueryPropertyHistory, Stream Thing QueryStreamData and QueryStreamEntries even better. Simply create a new instance of the persistence provider, configure it to use your InfluxDB instance, create a new value stream (or stream) from the new persistence provider, and you’ll be writing, reading and analyzing your time series data like never before.

 

We’re also introducing a new enhancement to improve InfoTable support with time series data, including providing the ability to use a driver property. The driver property can be specified with the QueryPropertyHistoryWithDriverProperty service for time alignment and filling backward/forward in your stream queries.

 

Let’s walk through a driver property example where you have the properties of temperature, speed and battery level.

Timestamp

Temperature

Speed

Battery Level

1480589076592000000

80.003

5012

79

1480589077537000000

80.010

5011

79

1480589077550000000

80.010

5009

79

1480589077562000000

80.030

5011

78

 

Let’s say temperature is the key driver for your analysis. In other words, you are not concerned if speed or battery level changes—you only care about when temperature changes. We can specify temperature to be the driver property for that particular time and only return stream values for temperature, speed and battery level when temperature changes. If speed or battery level changes (but temperature does not change), the rows associated with those changes would not be included in the results set because neither speed nor battery level is a driver property. See chart below. 

Timestamp

Temperature

(driver)

Speed

Battery Level

1480589076592000000

80.003

5012

79

1480589077537000000

80.010

5011

79

1480589077562000000

80.030

5011

78 

Note that only three of the four rows are returned above because one entry in the original table did not have a change in temperature. 

 

Stay Tuned
Look out for these time series improvements and InfluxData integration in our upcoming 8.4 release. I’ll be sure to keep you updated on additional new features coming in our next release (like Orchestration and Mashup Builder 2.0), so check back shortly or subscribe to this Community so we can stay in touch. As always, if you have any questions, just ask Kaya!

 

Stay connected,

Kaya

3 REPLIES

Re: Ask the Expert: Making Time Series in ThingWorx More Powerful with InfluxData

Is this connector a build in functionality of thingworx core or do I need to install an extension. if last, where do I get this extension. And is there an official video/powerpoint for a "getting started with influxdb @ thingworx" ?

Re: Ask the Expert: Making Time Series in ThingWorx More Powerful with InfluxData

Hi Stefan,

 

This functionality is currently only available within PTC. I will reach out to you directly.

 

To External Users: This functionality will become available in the ThingWorx 8.4 release, coming in late January 2019.

 

Stay connected,

Kaya

Re: Ask the Expert: Making Time Series in ThingWorx More Powerful with InfluxData

The setup and configuration will be quite straight forward.

Check out Using InfluxDB as ThingWorx 8.4 Persistence Provider for configuring ThingWorx 8.4