{"id":25405,"date":"2025-05-13T07:01:00","date_gmt":"2025-05-13T14:01:00","guid":{"rendered":"https:\/\/tdengine.com\/?p=25405"},"modified":"2025-09-08T16:38:54","modified_gmt":"2025-09-08T23:38:54","slug":"evaluate-tdengine-with-ems-telemetry-data","status":"publish","type":"post","link":"https:\/\/tdengine.com\/evaluate-tdengine-with-ems-telemetry-data\/","title":{"rendered":"Evaluate TDengine with EMS Telemetry Data"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_81 ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #141414;color:#141414\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #141414;color:#141414\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/tdengine.com\/evaluate-tdengine-with-ems-telemetry-data\/#1_Create_Demo_Environment\" >1. Create Demo Environment<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/tdengine.com\/evaluate-tdengine-with-ems-telemetry-data\/#2_Use_Demo_Environment\" >2. Use Demo Environment<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/tdengine.com\/evaluate-tdengine-with-ems-telemetry-data\/#3_View_Test_Results\" >3. View Test Results<\/a><\/li><\/ul><\/nav><\/div>\n\n<p>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.<\/p>\n\n\n\n<p>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.<\/p>\n\n\n\n<p>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\u2019s high-performance data ingestion, efficient storage and compression, and edge&#8211;cloud synchronization features. Finally, a Grafana instance is deployed to monitor and visualize the deployment.<\/p>\n\n\n\n<figure class=\"gb-element-634a0f67\">\n<img decoding=\"async\" width=\"1152\" height=\"480\" class=\"gb-media-9c7cb628\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/ems-repo.png?strip=all&sharp=1\" alt=\"\" title=\"ems-repo\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/ems-repo.png?strip=all&amp;sharp=1 1152w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/ems-repo-300x125.png?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/ems-repo-1024x427.png?strip=all&amp;sharp=1 1024w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/ems-repo-768x320.png?strip=all&amp;sharp=1 768w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/ems-repo.png?strip=all&amp;sharp=1&amp;w=230 230w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/ems-repo.png?strip=all&amp;sharp=1&amp;w=460 460w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/ems-repo.png?strip=all&amp;sharp=1&amp;w=691 691w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/ems-repo.png?strip=all&amp;sharp=1&amp;w=921 921w\" sizes=\"(max-width: 1152px) 100vw, 1152px\" \/>\n\n\n\n<figcaption class=\"gb-text\">Deployment architecture with each item being a separate Docker container<\/figcaption>\n<\/figure>\n\n\n\n<p>With our public repository, you can easily test TDengine in an EMS scenario. The repository includes a Docker Compose script with which you can set up a test environment on your local machine, make changes and see them reflected in TDengine, and view performance test results.<\/p>\n\n\n\n<h2 class=\"gb-text\"><span class=\"ez-toc-section\" id=\"1_Create_Demo_Environment\"><\/span>1. Create Demo Environment<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Ensure that you have installed Git and Docker on your machine. Then clone the repository:<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">git clone https:\/\/github.com\/taosdata\/ems<\/code><\/pre>\n\n\n\n<p>In the <code class=\"\" data-line=\"\">docker-compose<\/code> directory within the cloned repository, start the demo environment with Docker Compose:<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">cd ems\/docker-compose\ndocker compose up -d<\/code><\/pre>\n\n\n\n<p>Once the images have been downloaded and the containers have been started, you can view the demo environment in Docker:<\/p>\n\n\n\n<img decoding=\"async\" width=\"1024\" height=\"322\" class=\"gb-media-0f63ff07\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image14-1024x322.png?strip=all&sharp=1\" alt=\"\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image14-1024x322.png?strip=all&amp;sharp=1 1024w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image14-300x94.png?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image14-768x241.png?strip=all&amp;sharp=1 768w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image14.png?strip=all&amp;sharp=1 1072w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image14.png?strip=all&amp;sharp=1&amp;w=214 214w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image14.png?strip=all&amp;sharp=1&amp;w=428 428w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image14.png?strip=all&amp;sharp=1&amp;w=643 643w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image14.png?strip=all&amp;sharp=1&amp;w=857 857w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\n\n\n\n<h2 class=\"gb-text\"><span class=\"ez-toc-section\" id=\"2_Use_Demo_Environment\"><\/span>2. Use Demo Environment<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>In a web browser, open http:\/\/127.0.0.1:7060 to view the GUI for the edge TDengine Enterprise instance. Log in with the default username <code class=\"\" data-line=\"\">root<\/code> and password <code class=\"\" data-line=\"\">taosdata<\/code>. From the main menu on the left, click <strong>Data In<\/strong> to see the MQTT ingestion tasks:<\/p>\n\n\n\n<img decoding=\"async\" width=\"1024\" height=\"351\" class=\"gb-media-d4650e19\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image15-1024x351.png?strip=all&sharp=1\" alt=\"\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image15-1024x351.png?strip=all&amp;sharp=1 1024w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image15-300x103.png?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image15-768x263.png?strip=all&amp;sharp=1 768w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image15.png?strip=all&amp;sharp=1 1092w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image15.png?strip=all&amp;sharp=1&amp;w=218 218w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image15.png?strip=all&amp;sharp=1&amp;w=436 436w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image15.png?strip=all&amp;sharp=1&amp;w=655 655w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image15.png?strip=all&amp;sharp=1&amp;w=873 873w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\n\n\n\n<p>These tasks are ingesting data from the MQTT broker and storing it on the edge node. From the main menu, click <strong>Explorer <\/strong>to view the ingested data:<\/p>\n\n\n\n<img decoding=\"async\" width=\"1024\" height=\"498\" class=\"gb-media-8ed0040c\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image16-1024x498.png?strip=all&sharp=1\" alt=\"\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image16-1024x498.png?strip=all&amp;sharp=1 1024w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image16-300x146.png?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image16-768x373.png?strip=all&amp;sharp=1 768w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image16.png?strip=all&amp;sharp=1 1094w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image16.png?strip=all&amp;sharp=1&amp;w=218 218w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image16.png?strip=all&amp;sharp=1&amp;w=437 437w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image16.png?strip=all&amp;sharp=1&amp;w=656 656w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image16.png?strip=all&amp;sharp=1&amp;w=875 875w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\n\n\n\n<p>You can see that supertables have been created and incoming data is being stored at the edge.<\/p>\n\n\n\n<p>For edge&#8211;cloud synchronization, open http:\/\/127.0.0.1:16060 in a web browser to view the GUI for the central (cloud) TDengine Enterprise instance. Log in with the default username <code class=\"\" data-line=\"\">root<\/code> and password <code class=\"\" data-line=\"\">taosdata<\/code>. From the main menu on the left, click <strong>Data In<\/strong> to see the TDengine 3.x replication task:<\/p>\n\n\n\n<img decoding=\"async\" width=\"1024\" height=\"280\" class=\"gb-media-b3b6e6d1\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image17-1024x280.png?strip=all&sharp=1\" alt=\"\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image17-1024x280.png?strip=all&amp;sharp=1 1024w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image17-300x82.png?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image17-768x210.png?strip=all&amp;sharp=1 768w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image17.png?strip=all&amp;sharp=1 1071w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image17.png?strip=all&amp;sharp=1&amp;w=214 214w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image17.png?strip=all&amp;sharp=1&amp;w=428 428w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image17.png?strip=all&amp;sharp=1&amp;w=642 642w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image17.png?strip=all&amp;sharp=1&amp;w=856 856w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\n\n\n\n<p>Then click <strong>Explorer<\/strong> 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.<\/p>\n\n\n\n<img decoding=\"async\" width=\"1024\" height=\"500\" class=\"gb-media-cc479a76\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image18-1024x500.png?strip=all&sharp=1\" alt=\"\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image18-1024x500.png?strip=all&amp;sharp=1 1024w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image18-300x146.png?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image18-768x375.png?strip=all&amp;sharp=1 768w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image18.png?strip=all&amp;sharp=1 1096w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image18.png?strip=all&amp;sharp=1&amp;w=219 219w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image18.png?strip=all&amp;sharp=1&amp;w=438 438w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image18.png?strip=all&amp;sharp=1&amp;w=657 657w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/image18.png?strip=all&amp;sharp=1&amp;w=876 876w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\n\n\n\n<p>To view information about your cluster, you can open http:\/\/127.0.0.1:13000 in a web browser and use Grafana. Log in with the default username <code class=\"\" data-line=\"\">admin<\/code> and password <code class=\"\" data-line=\"\">admin<\/code>. The Grafana container has been preconfigured with TDinsight, a set of dashboards designed to monitor TDengine and show key statistics about your deployment.<\/p>\n\n\n\n<figure class=\"gb-element-a395bf82\">\n<img decoding=\"async\" width=\"1365\" height=\"454\" class=\"gb-media-18d7f35b\" alt=\"\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/tdinsight-ems.png?strip=all&sharp=1\" title=\"tdinsight-ems\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/tdinsight-ems.png?strip=all&amp;sharp=1 1365w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/tdinsight-ems-300x100.png?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/tdinsight-ems-1024x341.png?strip=all&amp;sharp=1 1024w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/tdinsight-ems-768x255.png?strip=all&amp;sharp=1 768w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/tdinsight-ems.png?strip=all&amp;sharp=1&amp;w=546 546w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/tdinsight-ems.png?strip=all&amp;sharp=1&amp;w=819 819w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/tdinsight-ems.png?strip=all&amp;sharp=1&amp;w=1092 1092w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/tdinsight-ems.png?strip=all&amp;sharp=1&amp;w=450 450w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/>\n\n\n\n<figcaption class=\"gb-text\">TDinsight in Grafana<\/figcaption>\n<\/figure>\n\n\n\n<p>You can also create custom dashboards using the preinstalled TDengine data source to view the simulated data being ingested.<\/p>\n\n\n\n<p>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 containers if you would like to test synchronization on a larger scale. For detailed information about configuring and using the demo environment, see <a href=\"https:\/\/github.com\/taosdata\/ems\/tree\/main\/docker-compose\" rel=\"noopener\">https:\/\/github.com\/taosdata\/ems\/tree\/main\/docker-compose<\/a>.<\/p>\n\n\n\n<h2 class=\"gb-text\"><span class=\"ez-toc-section\" id=\"3_View_Test_Results\"><\/span>3. View Test Results<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>When you spin up the Docker containers with Docker Compose, the TDengine client node automatically runs basic performance tests. Note that these tests are running in a containerized environment with limited resources, and do not necessarily reflect the performance you can achieve with dedicated servers.<\/p>\n\n\n\n<p>To view the test results, open the <code class=\"\" data-line=\"\">docker-compose\/report<\/code> directory in the repository. When the client node begins running tests, it creates a subdirectory in this location with the date and time that the tests were run. You can see the results for the central and edge nodes in the <code class=\"\" data-line=\"\">summary<\/code> directory or see all recorded information in the <code class=\"\" data-line=\"\">details<\/code> directory.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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.<\/p>\n","protected":false},"author":102,"featured_media":25432,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"content-type":"","footnotes":""},"categories":[264],"tags":[],"ppma_author":[181],"class_list":["post-25405","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-renewables"],"authors":[{"term_id":181,"user_id":102,"is_guest":0,"slug":"tdengine-team","display_name":"TDengine Team","avatar_url":{"url":"https:\/\/tdengine.com\/wp-content\/uploads\/29.03-01-tdengine.png","url2x":"https:\/\/tdengine.com\/wp-content\/uploads\/29.03-01-tdengine.png"},"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/posts\/25405","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/users\/102"}],"replies":[{"embeddable":true,"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/comments?post=25405"}],"version-history":[{"count":13,"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/posts\/25405\/revisions"}],"predecessor-version":[{"id":28362,"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/posts\/25405\/revisions\/28362"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/media\/25432"}],"wp:attachment":[{"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/media?parent=25405"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/categories?post=25405"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/tags?post=25405"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/ppma_author?post=25405"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}