Products
Who We Are
TDengine™ is a time-series database purpose-built for Industry 4.0 and IIoT.
Our mission is to democratize industrial data systems and make big data accessible, valuable, and affordable for everyone.
!
On Premises
TDengine Enterprise
Deploy TDengine on the edge, on a local server, or in a public, private, or hybrid cloud
In the Cloud
TDengine Cloud
Run your industrial data workflows in our fully managed cloud service
Solutions
What We Do
TDengine is designed to help traditional industries achieve digital transformation and improve operational efficiency.
TDengine centralizes, stores, analyzes, and shares massive amounts of industrial data so you can scale your operations for Industry 4.0.
!!
By Industry
By Data Source
By Application
Resources
Why Developers Choose Us
* High Performance: outperforms other time-series databases in ingestion, querying, and compression.
* Cloud Native: enables scalability, elasticity, resiliency, observability, and automation in a distributed architecture.
* Ease of Use: reduces effort to deploy your time-series database, with simple, standardized interfaces and seamless integration.
Docs
Read the official documentation to learn about our products
Blog
View the latest articles about industrial data processing
Downloads
Download installation packages, special reports, and more
Tutorials
Follow along with step-by-step guides through the data lifecycle
Webinars
Watch live and on-demand webinars to learn more about TDengine
TDengine OSS
Explore our open source time series database project
# Comprehensive Solution for Time-Series Data
Modern industrial data processing requires not just storage and analytics, but a full-featured industrial data solution. In a typical solution, a  is combined with third-party components for stream processing, caching, and data subscription, and other features as needed.
Because the overall solution has dependencies on these third-party components, complexity of design and difficulty of maintenance become pain points for time-series data processing. In addition, this kind of design requires additional compute and storage resources.
To simplify system design and reduce operation costs, TDengine integrates a time series database (TSDB) with caching, stream processing, and data subscription components that take full advantage of the . This integrated design goes beyond efficient storage and analysis of time-series data to provide a comprehensive and simplified solution for industrial data processing.
## Stream Processing
For you to gain insight into your operations and detect errors faster, you need to analyze data points as soon as they arrive at the system. Stream processing is therefore a natural fit for industrial data. Stream processing can be time-driven, producing new results at set intervals (known as continuous query), or data-driven, producing new results whenever a new data point arrives.
Many time-series databases provide a solution for continuous query. Continuous query works well in certain cases, for example in downsampling or in precalculating specific types of expensive queries. However, there are many other situations in which continuous query is intrinsically limited: preprocessing and transformation in scalar functions, session windows, and low-latency use cases like fault detection are all examples of scenarios where continuous query is not up to the task. In these scenarios, tools like Spark and Flink are added into the time-series data solution to provide stream processing. Unfortunately, this results in a complicated system design.
In the TDengine stream processing engine, SQL statements, including user-defined functions, are translated into the pipelines of stream operators. Data is then automatically processed on ingestion and results are output in real time, at specified time periods, or at a specified watermark. This engine makes TDengine the only industrial data solution that supports both time-driven and event-driven stream processing out of the box.
TDengine stream processing provides millisecond-level latency while processing high-throughput events, enabling real time alerting, data transformation, and preprocessing. With TDengine, you can perform aggregations and gain insight into your data fast enough to support real-time dashboards and real-time data analysis. In addition, TDengine can handle out-of-order data by means of user-specified watermarks or automated retrieval of data from the storage engine on demand.
Stream processing in TDengine is intuitive and easy to use, requiring only a few SQL statements.
## Caching
Industrial IoT scenarios demand that the system return the latest data to the application as soon as possible. For example, a fleet management system always needs to know the current GPS position of each truck in the fleet. And in a smart factory, the system always needs to know the current state of every valve and the current reading of every meter.
A typical industrial data solution solves this problem by writing new data points into the database and into a caching product, such as Redis, at the same time. The application then retrieves the newest data points from cache instead of the database. While this design works, it necessitates increased system complexity and higher cost of operation.
In TDengine, each vnode is allocated a fixed amount of memory for caching data points. TDengine manages its cache with a first in, first out (FIFO) policy instead of the least recently used (LRU) policy adopted in some systems. This is because it is most important for industrial data applications to have fast access to the newest data in the system.
By caching the newest data, TDengine can retrieve it in milliseconds, eliminating the need to deploy a separate caching system. TDengine also provides the `LAST_ROW` function, an extension to standard SQL that retrieves the newest data points. With TDengine, you have access to a simple and straightforward built-in caching system to ensure that your applications get the data they need when they need it.
## Data Subscription
The message queue plays an important role in many system architectures. Incoming data points are first written into a message queue and then consumed by other components in the system.
In TDengine, all incoming data points are first written into the write-ahead log (WAL) in append mode. Generally speaking, as the purpose of the WAL is to recover data in the event of a system crash, this WAL file is normally removed once the corresponding data in memory is persisted to the database.
TDengine takes a novel approach in that it does not delete the WAL file immediately, instead keeping it for a specified period during which the WAL file acts as a persistent message queue that can be consumed by other applications.
A topic in TDengine is defined by an SQL statement and can be a database, a supertable, a set of tables, or a single table. Once a topic has new data points, it is pushed to consumers that have subscribed to it. If a database has multiple vnodes (shards), multiple consumers in a consumer group can consume the same topic to boost the data throughput.
The main advantage of TDengine data subscription is that you can perform data filtering. Applications can subscribe to only those data points that meet specific filtering conditions, and other data points are not passed to the application at all. In addition, the application can subscribe to a specific column or set of columns instead of all the columns. For industrial data applications, this makes TDengine more flexible and efficient than third-party components.
## Simplified Industrial Data Solution
The following figure shows a classical design for a time-series data solution.
In this architecture, incoming data points are first written into a message queue such as Kafka. The data points in the message queue are consumed and written into a database like HBase or MongoDB for persistent storage. In the meantime, the data points are typically written into Redis for caching and Spark or Flink for stream processing. Time-series applications therefore are required to interact with Redis and Spark in addition to the database.
With its built-in caching, stream processing, and data subscription features, TDengine provides a simplified solution for industrial data processing. TDengine frees you from having to maintain Kafka, Redis, Spark, Flink, and other similar tools and allows you to develop applications without having to take into account the particularities of multiple systems.
This simplified system architecture reduces design complexity and operational costs significantly, which is particularly advantageous on the edge, where resources are most limited. With its integrated components purpose-built for industrial scenarios, TDengine is not just a data historian but a full-fledged industrial data solution.
[Download TDengine OSS and get started in 60 seconds
Download Now
[Contact us to learn more about TDengine Enterprise
Contact Us
[Register for a free TDengine Cloud account today
Register for Cloud
TDengine™ is a time-series database purpose-built for Industry 4.0 and Industrial IoT. It enables real-time ingestion, storage, analysis, and distribution of petabytes of data per day, generated by billions of sensors and data collectors. With TDengine making big data accessible, valuable, and affordable, digital transformation has never been easier.
© 2022–2025 TDengine
Learn
Company
Social
Search for:
# Mingyang Group Powers Smart Wind Energy System with TDengine
Chait Diwadkar
June 30, 2024
 /
, 
Highlights
* Mingyang has over 15,000 wind turbines each with hundreds of sensors generating data every second. That adds up to a massive scale of **hundreds of millions of data records every day** — which a six-node TDengine deployment can ingest and store with no performance deterioration.
* Their databases now contain over 4 billion records with an average of 700 columns each, but their data only occupies 24 TB on disk, coming in at a **compression ratio of 10%.**
* Even on this massive scale, the complex aggregate queries that Mingyang uses to monitor turbine status information **return in a fraction of a second.**
Wind farms are an increasingly important component of power generation today — according to the Global Wind Energy Council’s , a total of 117 gigawatts of new wind power was installed in 2023, representing 50% growth year over year. These wind farms must run at peak efficiency in order to provide the most benefit to our society in terms of clean energy production. But wind turbines generate more than just electricity; they also generate vast amounts of time-series data that must be stored and processed in a scalable, affordable manner.
Operators rely on these data to make informed decisions that have a direct impact on the efficiency of their farms, and as such the selection of a suitable data platform is extremely important. Earlier this year, Mingyang Group, one of the world’s top wind operators, chose TDengine as the foundation for their smart wind energy system. TDengine’s high performance and scalability now enable Mingyang’s real-time monitoring and prediction applications for their wind turbines, delivering a wealth of data-driven possibilities.
## Company Overview
 is a global leader in wind energy. For the past 30 years, Mingyang has continued to develop and innovate large-capacity, low-wind-speed onshore and offshore wind turbines, overcoming key technical industry challenges and greatly improving the utilization rate of wind resources in various regions.
## Case Background
At present, over 15,000 Mingyang wind turbines have been deployed in more than 800 projects worldwide, and each of these turbines has hundreds to thousands of data collection points that each generate one record per second — adding up to hundreds of millions of data points every day. These data points are stored and used in essential applications such as centralized monitoring and analytics.
For Mingyang, it’s essential to monitor the latest status information of each data collection point on each turbine. Due to the vast number of metrics collected on wind turbines, creating the data schema for this dataset is challenging. The data is stored in wide tables with as many as 884 columns, which can require special configuration to ensure performance.
## Product Selection
Mingyang was building an energy big data application system and required a way to improve time-series data processing. With this in mind, they began testing TDengine in 2022, though at that time there were concerns regarding its performance in wide table scenarios. Since the release of TDengine 3.0, however, they have been encouraged by a number of optimizations in this area. In fact, within two or three versions, the performance issues that they experienced during testing had been resolved.
The `LAST` function, which returns from cache the last non-null value in a column, is a good example. In scenarios with wide tables having many columns mainly consisting of null values, the `LAST` function took minutes to produce results in earlier versions of TDengine. At present, thanks to adjustments and optimizations, the function returns in a matter of milliseconds.
## Project Results
The company deployed TDengine in single-replica mode on six servers each having 4 cores, 24 GB of RAM, and 10 TB hard disks. Over 400 databases have been created on this TDengine cluster to store the data from more than 10,000 wind turbines. The databases contain more than 4 billion records with an average of over 700 columns. This occupies 24 TB of disk space, indicating a compression ratio of around 10%.
Mingyang collects data in two ways: by transmitting real-time data over a network to their data center and writing it into TDengine, and by preparing data files covering certain time periods and then copying them into TDengine. TDengine displays excellent performance with Mingyang’s data: they use complex `LAST`/`LAST_ROW` queries across multiple tables to monitor the latest status of their turbines, and these queries return results in as little as 0.2 seconds.
TDengine is now a key component of Mingyang’s energy big data system, responsible for the efficient storage and processing of data. Through data sharding and partitioning, TDengine flexibly scales to avoid bottlenecks. Thanks to the fast query performance that TDengine delivers, Mingyang has been able to implement real-time monitoring and prediction of wind turbines, allowing the company to detect anomalies and failures quickly and perform maintenance or adjustments as appropriate. Other business applications are more convenient now that they have access to the data in TDengine.
Over the past few years, Mingyang has witnessed TDengine’s commitment to providing a time-series database optimized for industrial scenarios like their own. Going forward, Mingyang intends to continue uncovering TDengine’s potential to create more possibilities in the field of wind energy.
* !!
  Chait Diwadkar
  Chait Diwadkar is Director of Solution Engineering at TDengine. Prior to joining TDengine he was in the biotechnology industry in technical marketing, professional services, and product management roles and supported customers in pharma, medical devices and diagnostics on analytical chemistry, and genetic platforms.
Subscribe to our newsletter
Search