[Avg. reading time: 17 minutes]
InfluxDB
InfluxDB is a high-performance Time Series Database (TSDB) designed to store and analyze large volumes of timestamped data. It is commonly used in systems where data arrives continuously, such as IoT devices, monitoring platforms, telemetry pipelines, and financial market feeds.
InfluxDB is optimized for workloads where the primary queries involve time ranges, trends, aggregations, and real-time metrics.
With the release of InfluxDB 3, the platform has evolved significantly. Earlier versions relied on custom storage engines and specialized query languages, but InfluxDB 3 adopts a modern analytics architecture built on open standards.
The latest version uses:
- Apache Arrow for in-memory analytics
- Parquet for columnar storage
- DataFusion as the SQL query engine
- Object storage as the persistent storage layer
This architecture improves performance, scalability, and interoperability with modern data platforms.
Key Features
High Ingestion Performance
InfluxDB is designed to ingest millions of time-series data points per second, making it suitable for systems that generate high-frequency telemetry data.
Examples include:
- IoT sensor streams
- application monitoring metrics
- infrastructure telemetry
- financial tick data
Time-Series Optimized Storage
Data is stored using columnar formats (Parquet) which allow efficient compression and fast scanning of time-based data.
This significantly improves performance for queries such as:
- time-range filtering
- aggregations over time intervals
- trend analysis
SQL Querying
InfluxDB 3 introduces standard SQL as the primary query language.
This change allows developers and analysts to query time-series data using familiar SQL tools rather than learning a specialized query language.
Example:
SELECT
date_bin(INTERVAL '5 minutes', time) AS bucket,
AVG(temperature)
FROM sensor_data
WHERE time > now() - INTERVAL '1 hour'
GROUP BY bucket
ORDER BY bucket;
Scalability with Object Storage
InfluxDB 3 separates compute from storage and stores data in object storage systems such as cloud storage.
Benefits include:
- virtually unlimited storage
- lower storage costs
- improved scalability for large datasets
Built-in Visualization and Management
InfluxDB provides tools for:
- data exploration
- dashboards
- monitoring metrics
- administrative tasks
These tools help users quickly analyze real-time data streams.
Data Model
InfluxDB uses a simple time-series data model consisting of four main components.
Measurement
A measurement represents a logical category of data, similar to a table in relational databases.
Examples:
- temperature
- cpu_usage
- network_latency
Tags
Tags are indexed key-value pairs used to describe metadata and enable fast filtering.
Examples:
- location = kitchen
- host = server01
- device = sensor12
Because tags are indexed, queries that filter by tags perform efficiently.
Fields
Fields contain the actual measured values.
Examples:
- temperature = 22.5
- cpu_usage = 65
- humidity = 40
Fields are not indexed to allow faster write performance.
Timestamp
Every data point includes a timestamp, which records when the event occurred.
Time is the primary dimension for storing and querying data in InfluxDB.
Common Use Cases
- IoT Sensor Data
- Infrastructure Monitoring (CPU,Memory, Network, Disk IO)
- Observability & DevOPS
- Financial TS Data (Stock, Trading, Market Indicators)
| Feature | InfluxDB 1.x | InfluxDB 2.x | InfluxDB 3.x |
|---|---|---|---|
| Query Language | InfluxQL | Flux | SQL |
| Storage Engine | Custom TSDB engine | Custom TSDB engine | Arrow + Parquet |
| Data Container | Database + Retention Policy | Bucket | Database |
| Storage Backend | Local storage | Local storage | Object storage |
| Query Engine | InfluxQL engine | Flux engine | DataFusion |
| Architecture | Single node / cluster | Improved platform with UI | Modern analytics architecture |
| Ecosystem Integration | Limited | Moderate | Strong integration with modern data stack |
InfluxDB3 uses DataFusion
SQL
│
DataFusion Query Engine
│
Apache Arrow
│
Parquet files
│
Object Storage
InfluxDB 3 UI
In InfluxDB 3, the user interface is separated from the core database engine. Unlike earlier versions where the UI was bundled with the database, the new architecture treats the UI as a separate service.
This change aligns with the overall design philosophy of InfluxDB 3, where storage, compute, and management tools are decoupled.
Why the UI is separated
Independent scaling
The database engine focuses purely on data ingestion, storage, and query execution, while the UI handles visualization and user interaction.
Separating them allows each component to scale independently.
Cleaner architecture
By separating the UI from the database engine, the system becomes more modular. The core database can remain lightweight and optimized for high-performance time-series workloads, while the UI evolves independently.
Flexible deployment
Users are not required to run the UI if they do not need it. Many production deployments interact with InfluxDB through:
- APIs
- SQL clients
- monitoring tools
- custom applications
The UI becomes an optional management layer rather than a required component.
Faster development
Because the UI is no longer tightly coupled with the database engine, improvements to dashboards, visualization, and management features can be released independently without impacting the database core.
What the UI provides
The InfluxDB UI helps users:
- explore and query time-series data
- build dashboards and visualizations
- monitor metrics
- manage databases and ingestion
It acts as a convenient interface for interacting with InfluxDB, while the core database focuses on performance and scalability.
Influxdb with IOT
Time Format
Epoch time represents the number of time units elapsed since:
1970-01-01 00:00:00 UTC