DEV Community

Jeff Tao
Jeff Tao

Posted on • Edited on • Originally published at tdengine.com

How to Choose the Best Time-Series Database

With the ever-increasing number of database management solutions on the market, how can you decide which time-series database (TSDB) is best for your use case? The following list shows the top 10 criteria for choosing the best time-series database:

  1. Open source: You don't want to build your system on a black box, especially when there are many open-source products available. In addition to transparency, open-source products also have better ecosystems and developer communities and prevent vendor lock-in.

  2. Performance: All time-series databases perform better than general databases when processing time-series data, but some have an issue with high cardinality, meaning that performance deteriorates when the number of metrics in the database gets higher. Also, some time-series database management systems experience unacceptable latency when accessing historical data. When you select a time-series database, make sure that it performs well with a data set similar in size to what you'll have in production – not just now but in the future as well.

  3. Scalability: As your business grows, your data will too – that's why the best time-series database solutions need horizontal scalability. This is a weak spot for many current solutions, and even InfluxDB, the most popular time-series database, locks scalability away in its enterprise edition.

  4. Query language: SQL is still the most popular query language among database management systems: it's powerful, fast, and already known by millions of developers and administrators. However, some time-series databases, like InfluxDB, Prometheus, and OpenTSDB, use proprietary query languages instead of SQL. This makes these systems more difficult to learn, even for experienced users, and greatly increases the cost of migrating from a traditional database. Because TDengine and TimescaleDB retain SQL as the query language, they are much simpler options for deploying a new time-series database.

  5. Ecosystem: Considering the number of devices and sensors that generate time-series data, the best time-series database solutions need to provide connectors in major programming languages in addition to REST APIs. Different methods for data ingestion as well as integration with a variety of visualization and BI tools are also essential.

  6. Cloud native: It won't be long before most systems, including time-series databases, are running in the cloud. For that reason a cloud-native time-series database is the most future-ready choice, though you should ensure that your solution is really cloud-native, not just "cloud-ready."

  7. Extra features: Modern data platforms do more than just store data. You need a time-series database solution that supports features like continuous queries, caching, stream processing, and data subscription – otherwise, you'll have to integrate with specialized tools or implement them yourself, and that makes your system more complex and more expensive.

  8. Out-of-order data: In some time-series databases, like Prometheus, data points that are received out of order cannot be processed and are just thrown away. If out-of-order data may occur in your use case – for example, if your message queue is in the middle of your data path, or simply if you encounter network issues – you need to be sure that your database solution can handle that data.

  9. System footprint: Depending on where and how your data is collected, such as on the edge, you might not be able to deploy a large-scale system and instead need a lightweight solution.

  10. Monitoring: The best time-series database solutions provide good observability as well as integration with monitoring tools like Grafana – otherwise, you won't be able to know whether issues have occurred until it's too late.

By keeping these criteria in mind, you'll be able to select the best time-series database for your business needs. But to be even more sure, it's a good idea to test the database yourself.

With TDengine, this is a simple process. TDengine can be installed in seconds on any major Linux distribution as well as macOS or Windows, and it includes the taosBenchmark tool that generates a sample data set for you. You can set up a test deployment and run your test queries at no cost and with minimum effort.

Top comments (0)