Battery storage systems, paired with energy management systems (EMS), play an increasingly critical role in stabilizing power grids and integrating renewable energy sources. These systems generate a massive volume of time-series data, including real-time metrics on voltage, current, state of charge, temperature, and system performance.
However, managing this data is no easy task. Challenges include ensuring high-frequency data ingestion, maintaining long-term storage without compromising query performance, synchronizing data from multiple distributed assets, and enabling real-time analytics for monitoring and optimization. Without a robust data infrastructure, the true value of battery storage and EMS data can remain untapped.
To help battery storage enterprises realize the benefits of improving their data infrastructure, TDengine has made public a demo environment that simulates the storage and processing of EMS data. In our environment, this data is generated by an MQTT simulator and then sent to an MQTT broker, which forwards it to a TDengine deployment at the edge. This data is then replicated to a centrally deployed TDengine instance, showcasing TDengine’s high-performance data ingestion, efficient storage and compression, and edge–cloud synchronization features.

Try for Yourself
With our public repository, you can easily test TDengine in an EMS scenario. We offer two methods of testing: for large-scale tests, you can run our test suite in GitHub. PoCs and smaller-scale testing can be run on your own machine.
Create Demo Environment
Our public repository includes a Docker Compose script with which you can set up a test environment on your local machine and run our performance test suite.
Ensure that you have installed Git and Docker on your machine. Then clone the repository:
git clone https://github.com/taosdata/ems
In the docker-compose
directory within the cloned repository, start the demo environment with Docker Compose:
cd ems/docker-compose
docker-compose up -d
Once the images have been downloaded and the containers have been started, you can view the demo environment in Docker:

Use Demo Environment
In a web browser, open http://127.0.0.1:7060 to view the GUI for the edge TDengine Enterprise instance. From the main menu on the left, click Data In to see the MQTT ingestion tasks:

These tasks are ingesting data from the MQTT broker and storing it on the edge node. From the main menu, click Explorer to view the ingested data:

You can see that supertables have been created and incoming data is being stored at the edge.
For edge–cloud synchronization, open http://127.0.0.1:6060 in a web browser to view the GUI for the central (cloud) TDengine Enterprise instance. From the main menu on the left, click Data In to see the TDengine 3.x replication task:

Then click Explorer in the main menu. The supertables from the edge node have been replicated to the central node, and the same data is contained within them.

You can modify this containerized setup to adapt it to your own environment or data ingestion requirements and see immediately how TDengine would perform in a given scenario. You can also spin up additional edge containers if you would like to test synchronization on a larger scale. For detailed information about configuring and using the demo environment, see https://github.com/taosdata/ems/tree/main/docker-compose.