The workflow before
PingThings streams synchrophasor (PMU) data from the electric grid, 30 to 120 readings per second per sensor, into its PredictiveGrid service. On AWS EMR, a single analytic query cost $200 to $500 and took 30 to 40 minutes. Customer contracts were losing money, and engineers spent their time on infrastructure workarounds instead of the product.
What we built
We moved the time-series workload off EMR onto the Berkeley Tree Database (BTrDB), a store built for high-rate sensor data, running on custom on-premise Hadoop and Spark clusters sized for this workload. Queries that took 30 to 40 minutes now return in seconds.
Kafka streams PMU data in, Spark processes the stream, BTrDB stores the time series with 10x or more compression, and PostgreSQL holds the metadata.
We added TensorFlow models that clean the raw sensor data and flag grid disturbances, and an API layer for customer applications. The 36 week program ended with customer workloads migrated and compute cost down 90%.
Before and after
| Measure | Before | After |
|---|---|---|
| Analytic query time | 30 to 40 minutes | Seconds |
| Compute cost | Baseline on AWS EMR | 90% lower |
| Storage footprint | Uncompressed time series | 10x or more smaller |
| Infrastructure payback | n/a | About 6 months |
What's next
With fast, cheap access to years of grid history, PingThings can run more models on it: equipment failure prediction and disturbance classification moving from analysis into the alerts utilities act on.


