Time Series Database for Real-Time Analytics
Modern systems generate billions of time-stamped data points every day. Sensors, machines, applications, and infrastructure emit measurements continuously, at a scale that general-purpose databases were not built to handle. CrateDB is a distributed SQL database designed for teams that need to query that time series data the moment it arrives, without pre-aggregation, rigid schemas, or separate processing pipelines.
What Is a Time Series Database?
A time series database is a database purpose-built to store, query, and analyze data points indexed by time. Unlike general-purpose relational databases, a time series database is optimized for four characteristics that define continuous data workloads:
High write throughput
Sensors, applications, and infrastructure emit measurements continuously. A time series database accepts thousands to millions of writes per second without index maintenance overhead slowing the ingestion path.
Time-based query performance
Queries almost always include a time range filter, a time-based grouping (per minute, per hour, per day), or a rolling window calculation. A time series database makes these operations fast at any data volume.
High-cardinality dimensions
Retention and tiering
What makes a time series database different from a relational database
Relational databases store data in rows and columns optimized for random access, joins, and transactional consistency. They were built for operational workloads where the goal is to retrieve or update a specific record by its identifier.
Time series workloads are structurally different:
- Write patterns: continuous append-only streams, not individual inserts or updates.
- Query patterns: range scans over time, not point lookups by primary key
- Cardinality: millions of unique label combinations, not bounded lookup tables
- Data volume: billions of rows that accumulate and are rarely deleted
A relational database can store time series data. At scale, it cannot do it without significant engineering effort: pre-aggregation tables, custom partitioning, manual archiving, and query tuning that grows more complex as data volume increases.
Is a time series database a NoSQL database?
Not necessarily. Some time series databases use proprietary query languages (InfluxQL, Flux) that sacrifice SQL compatibility for narrowly scoped performance optimizations. CrateDB takes a different approach: it is a distributed SQL database that is also a time series database. You get the ingestion and query performance of a purpose-built time series engine, with the full expressiveness of standard ANSI SQL.

Common Time Series Database Use Cases
Time series databases handle any workload where data arrives continuously and analysis requires understanding how values change over time. These are the primary applications where teams choose a time series database.
Industrial IoT and sensor monitoring
Industrial facilities generate continuous streams of sensor data from equipment, production lines, and environmental systems. TGW, a global logistics automation company, uses CrateDB to process data from 900,000 sensors across a single distribution center. The data (temperature, vibration, power draw, throughput) flows in continuously and must be queryable in real time to support equipment monitoring, anomaly detection, and operational dashboards.
At this sensor density, a database that cannot sustain the ingestion rate without backpressure or data loss is not viable. CrateDB handles the volume while keeping analytical queries fast enough for live dashboard refresh rates.
Equipment health and predictive maintenance
High-frequency sensor data is the input for any predictive maintenance model. To detect an emerging failure before it causes downtime, the database must ingest measurements at high frequency (often sub-second intervals), retain the full history without sampling, and serve both live dashboards and ML inference pipelines from the same store.
ABB, the industrial technology company, processes 1 million sensor values per second in CrateDB for this workload. The same database that accepts the ingestion stream answers the analytical queries that feed the maintenance model.
Observability and application metrics
Oil, gas, and mining operations
Upstream and downstream operations generate continuous streams of sensor and operational data: wellhead pressure, flow rates, pipeline conditions, and equipment status across distributed assets that may span hundreds of kilometers. SPGO processes 750 million records per day in CrateDB, querying operational data across their asset network while it is still live.
Media and content analytics
Video platforms and content delivery networks generate event streams at massive scale. Bitmovin, a video technology company, uses CrateDB to analyze 60 million rows in under a second, supporting real-time quality-of-experience analytics across global viewer sessions. The queries run over raw event data, without pre-aggregated summaries.
Why Traditional Databases Break Under Time Series Workloads
The failure modes of general-purpose databases under time series workloads are predictable. They appear gradually and worsen as data volume grows.
Write amplification
Relational databases update indexes on every insert. Under continuous high-frequency ingestion, index maintenance consumes CPU and I/O faster than the database can process incoming data. Write throughput collapses. The common fix consisting in disabling indexes then breaks query performance.
Query degradation at scale
A SELECT with a WHERE timestamp > X AND timestamp < Y clause requires a full table scan without a time-optimized index structure. As the table grows to billions of rows, scan times grow with it. Pre-aggregation tables become mandatory, which introduces staleness and a maintenance burden that grows with the number of required aggregations.
Cardinality explosion
Schema rigidity
Operational complexity
CrateDB is built around these failure modes. Its columnar storage, distributed query execution, and native support for dynamic schemas address each one without external components or manual workarounds.
How to Choose a Time Series Database
Not all time series databases make the same tradeoffs. Evaluating one means understanding which constraints matter for your specific workload. These are the five criteria that separate databases in practice.
Ingestion rate and write scalability
The first question is whether the database can accept your write volume without backpressure, dropped data, or write-induced query degradation. Some databases queue writes behind index maintenance. Others partition writes across nodes but bottleneck on the coordinator. Test ingestion under your expected peak load — not average load — before committing.
For industrial and IoT workloads, peak ingestion during plant startup, incident response, or event bursts often exceeds average rates by a factor of 5 to 10.
Cardinality limits
Cardinality is the number of unique time series in your dataset. In a sensor deployment, it is roughly the number of distinct combinations of device ID, metric name, and metadata tags. Some databases store cardinality in memory and impose hard limits. Others degrade as cardinality grows past a certain point without surfacing a clear error.
If your deployment has thousands of devices today and could have tens of thousands in two years, test with realistic projected cardinality, not current cardinality.
Query language and SQL compatibility
A database with standard SQL support means every SQL-literate engineer on your team can query time series data immediately. It also means your existing tooling (dashboards, ETL pipelines, notebooks) connects without a custom adapter. For teams that need to join time series data against relational metadata (asset registry, user data, reference tables), SQL is not optional.
Retention, tiering, and data lifecycle
Time series data accumulates indefinitely. A database that stores everything at full resolution with no tiering strategy will become expensive to operate past a certain scale. Evaluate how the database handles:
- Automated retention policies: does it drop old data on a schedule without manual intervention?
- Tiered storage: can it move older data to cheaper storage while keeping it queryable?
- Downsampling: does downsampling happen automatically, or does it require a separate aggregation pipeline?
- Some workloads: compliance, root-cause analysis, ML training require full-resolution historical data for years. Choose a database that can retain it without requiring a separate archival system.
Schema flexibility as workloads evolve
Evaluate how the database handles: adding new columns without downtime, storing heterogeneous payloads from devices with different schemas, and querying fields that exist only in a subset of records.
CrateDB as a Time Series Database
CrateDB is a distributed SQL database built for high-volume, high-cardinality time series workloads. It stores time series data in columnar format, distributes query execution across nodes for horizontal scale, and supports dynamic schemas without migrations.
The key distinction from pure time series databases: CrateDB handles time series data alongside JSON, geospatial, full-text, and relational data in a single engine. A query that joins live sensor readings against an asset registry, enriches them with geospatial metadata, and runs a rolling window aggregation requires no separate databases and no application-side join logic.
CrateDB uses standard ANSI SQL, there is no proprietary query language to learn, no migration path when your tooling changes. It is a G2 Leader in Time Series Database, Winter 2026.
For the full technical picture (SQL examples, storage architecture, retention and tiering, and deployment options), see how CrateDB processes time series data.
Spin up a cluster and run queries
Additional resources
FAQ
A time series database stores and analyzes data points indexed by time. Common use cases include IoT sensor monitoring, industrial equipment analytics, application observability, and operational data from energy, logistics, and manufacturing environments. The defining requirement is that data arrives continuously, at high volume, and must be queryable by time range or time-based aggregation.
Relational databases are optimized for transactional workloads: retrieving or updating specific records by identifier. Time series databases are optimized for append-only write streams, range scans over time, and aggregations across large volumes of timestamped data. At high ingestion rates or large data volumes, a relational database without time series optimizations requires significant engineering work to remain performant.
Use a time series database when your data arrives as a continuous stream of timestamped measurements, your queries primarily filter and aggregate by time range, your data volume grows indefinitely and must be retained and queryable over long periods, or your cardinality (the number of unique series) is high and growing. If all your queries are point lookups by ID and time is just one of many dimensions, a general-purpose relational database may be sufficient.
Cardinality is the number of unique time series in your dataset. In a sensor deployment, it is determined by the number of distinct combinations of device ID, metric name, location, and other tags. High cardinality means millions of unique combinations. Many time series databases store cardinality indexes in memory and degrade or impose hard limits when cardinality grows large. A database that handles high cardinality without a separate in-memory index is critical for deployments with large device fleets or many metadata dimensions.
The right choice depends on ingestion rate, cardinality, query complexity, and whether your queries need to join sensor data against operational metadata. For industrial environments with high sensor density, dynamic schemas, and SQL-based analytics, a distributed SQL time series database that handles multi-model data in a single engine avoids the need to maintain separate databases for time series and reference data. CrateDB is a G2 Leader in Time Series Database, Spring 2026.
Yes. CrateDB is a distributed SQL time series database designed for real-time analytics on high-volume, high-cardinality data. It also handles JSON, geospatial, full-text, and relational data in the same engine. For the full technical picture, see how CrateDB processes time series data.
A time series database is optimized for real-time ingestion and analytics on continuously generated data, while a data warehouse is typically designed for batch-loaded historical analysis. Time series databases are better suited for operational analytics, monitoring, and use cases where fresh data must be queried immediately.
Yes. A time series database is specifically designed for real-time analytics, allowing teams to ingest data continuously and query it immediately. This enables dashboards, alerts, anomaly detection, and operational decision-making based on up-to-date information.
Yes. CrateDB is a distributed SQL time series database designed for real-time analytics on high-volume, high-cardinality data. It supports continuous ingestion, time-based queries, and analytics across both recent and historical time series data.