Skip to content
Home › SQL Comparisons › InfluxDB vs TDengine
Comparison · Time-Series & IoT

InfluxDB vs TDengine

InfluxDB 3 and TDengine are both purpose-built time-series databases queried with SQL, and both accept InfluxDB line protocol. InfluxDB organises data into tables of tags and fields, persists Parquet files and adds InfluxQL and an embedded Python engine; its open source Core is a single node. TDengine gives every device its own table under a supertable, adds windows, a latest-value cache, streams and subscriptions in the same server, and includes clustering in its AGPL-licensed open source edition.

Last verified November 2026. Versions checked: InfluxDB 3.12.2 (InfluxDB 3 Core), TDengine 3.4.3.9 (TDengine TSDB-OSS). Licensing and features change; check the official sources for the latest details.

Quick verdict

Short answer

Our editorial view: choose InfluxDB when you are invested in the InfluxData ecosystem (Telegraf, line protocol, InfluxQL dashboards), want Parquet files on object storage, a permissively licensed (MIT or Apache 2.0) single-node Core, or a managed cloud service with usage-based pricing. Choose TDengine when your data is device-centred industrial telemetry, you want supertables and tags to model equipment types, state and event windows in SQL, and built-in streams and subscriptions, or you need a cluster with three replicas in the free edition and can accept the AGPL. Both accept line protocol, so a side-by-side trial from the same Telegraf feed is straightforward.

How we know: This comparison is research-based: data models, architecture, query features, ingestion, retention, editions, licences and pricing follow the site's InfluxDB and TDengine guides, which were checked against the InfluxData documentation, the influxdb repository, docs.tdengine.com and the taosdata/TDengine repository on 27 October 2026; release numbers and both vendors' pricing pages were rechecked on 7 November 2026. Licence terms are summarised and quoted, not legal advice. Line protocol, InfluxDB SQL and TDengine SQL are adapted from the vendors' documentation, labelled illustrative and were not run here. Vendor benchmark claims are not repeated.

This page is for architects choosing a dedicated store for plant, building and energy telemetry: chillers, AHUs, meters and production equipment read every few seconds, feeding dashboards, alarms and maintenance systems. For background on how these stores fit between brokers and analytics platforms, see the time-series and IoT data hub.

InfluxDB 3 is InfluxData's current generation, written in Rust on Apache Arrow, DataFusion and Parquet. InfluxDB 3 Core is the open source release (MIT or Apache 2.0) aimed at recent data; InfluxDB 3 Enterprise adds historical queries, high availability and read replicas under a commercial licence. Older 1.x and 2.x releases (with Flux) remain documented. The latest InfluxDB release on GitHub when checked was v3.12.2. See the InfluxDB guide.

TDengine TSDB from Taos Data is written mainly in C and C++ and positioned for IoT, industrial internet, power and connected vehicles. TDengine TSDB-OSS is under the GNU Affero General Public License v3 and, according to the vendor, includes clustering; TDengine TSDB-Enterprise and TDengine Cloud add GUI connectors for MQTT and OPC, TLS on the REST and WebSocket endpoint, audit logs and other features. The latest release on GitHub when checked was 3.4.3.9 (3 November 2026). See the TDengine guide.

Side by side

AspectInfluxDBTDengine
Data model Databases of tables; columns are time, tags (identifiers) and typed fields One table per data collection point, created from a supertable that defines columns and tags
Where tags live As columns on every row; tag columns are fixed once a table exists Stored once per subtable, not on every row; tag values can be changed later
Query languages SQL (Apache DataFusion) and InfluxQL; Flux only in 1.x and 2.x SQL with INTERVAL, SESSION, STATE_WINDOW, EVENT_WINDOW and COUNT_WINDOW windows, PARTITION BY tbname
Writes Line protocol over HTTP; 1.x and 2.x write API compatibility; Telegraf SQL INSERT with automatic subtable creation, or schemaless InfluxDB line protocol and OpenTSDB formats
Storage Write-ahead log, then Parquet files on local disk or object storage Data files per DURATION period inside vnodes; contiguous storage per device
Latest values Last Value Cache and Distinct Value Cache Read cache (CACHEMODEL) answers LAST and LAST_ROW from memory
Processing in the server Embedded Python processing engine with plugins and triggers SQL streams and Kafka-like topic subscriptions
Retention Per database; in Core set only at creation, no expiry by default KEEP per database (default 3,650 days); KEEP adjustable, DURATION fixed
Clustering in the free edition No: Core is single node; HA and read replicas in Enterprise Yes: dnodes, vnodes and up to three Raft mnodes; REPLICA 3 in OSS
Licence Core: MIT or Apache 2.0 at the user's choice; Enterprise commercial OSS: AGPL v3; Enterprise and Cloud commercial
Pricing published Core free; Enterprise by CPU on quote; Cloud Serverless usage-based Per-tag list prices for self-hosted and cloud; free up to 5,000 tags

Key differences

Data model: tags and fields versus one table per device

InfluxDB 3 groups similar points in a table, for example chiller, with tags such as site and chiller_id identifying the series and fields holding the values. Tags are part of the primary key and set the sort order of the Parquet files; the first write fixes the tag column order, and tag columns cannot be changed afterwards. The InfluxDB 3 schema guide says tag value cardinality no longer affects overall performance as it did in 1.x and 2.x, but a table has a maximum column count, so wide "one field per point" tables need care.

TDengine asks for a separate table for every data collection point, created from a supertable that acts as a template for one device type. Static attributes (site, plant room, model) are tags stored once per subtable and can be changed later; queries on the supertable filter subtables by tag and merge them. The vendor's reasoning is that each device then has one writer, so writes are lock-free and append-only, and its data is stored contiguously. Plan names, tag sets and the number of vnodes early: each table is assigned to a vnode by hashing its name at creation.

# Illustrative, not run here: line protocol format from the InfluxDB 3 Core documentation.
# TDengine also accepts this format in schemaless mode.
chiller,site=campus-a,chiller_id=ch-1 kw=412.0,chw_supply_c=6.8 1794042000000000000

-- Illustrative DDL, not run here: TDengine supertable and subtable, adapted from the
-- TDengine documentation; check it against the documentation for your version.
CREATE STABLE chiller (ts TIMESTAMP, kw FLOAT, chw_supply_c FLOAT)
    TAGS (site VARCHAR(32), plant_room VARCHAR(32));
CREATE TABLE ch_1 USING chiller (site, plant_room) TAGS ('campus-a', 'pr-1');

Querying: DataFusion SQL and InfluxQL versus windowed SQL

InfluxDB 3 uses Apache DataFusion SQL with DATE_BIN for bucketing and date_bin_gapfill with interpolate or locf for gaps, and keeps InfluxQL for 1.x-style dashboards. Flux is in maintenance mode and not supported in InfluxDB 3, so 2.x Flux code needs rewriting.

TDengine adds window clauses that suit equipment data: INTERVAL (fixed or sliding), SESSION (gaps), STATE_WINDOW (runs of the same state, such as a compressor on or off), EVENT_WINDOW (start and end conditions) and COUNT_WINDOW, with FILL and PARTITION BY tbname to aggregate each device separately. A per-chiller 15-minute average in each:

-- Illustrative, not run here: InfluxDB 3 SQL pattern from the InfluxDB 3 Core documentation.
SELECT DATE_BIN(INTERVAL '15 minutes', time, '2026-01-01T00:00:00Z'::TIMESTAMP) AS time,
       chiller_id, avg(kw) AS avg_kw
FROM chiller
WHERE time >= now() - INTERVAL '1 day'
GROUP BY 1, chiller_id
ORDER BY 1;

-- Illustrative, not run here: TDengine pattern adapted from its documented
-- PARTITION BY tbname INTERVAL example.
SELECT _wstart, tbname, AVG(kw) AS avg_kw
FROM chiller
WHERE site = 'campus-a' AND ts >= NOW - 1d
PARTITION BY tbname
INTERVAL(15m) FILL(NULL);

Ingestion, processing and getting data out

InfluxDB takes line protocol over HTTP and is compatible with the 1.x and 2.x write APIs, so Telegraf and existing clients work; Telegraf's MQTT consumer input subscribes to a broker. Transforms, downsampling and alerts run in the embedded Python processing engine, whose plugin library includes a downsampler and an InfluxDB to Iceberg plugin. A point is identified by table, tag set and timestamp; when duplicate writes set the same field, the documentation says InfluxDB does not guarantee which value is kept.

TDengine takes SQL INSERT (creating subtables on first write) or schemaless writes in InfluxDB line protocol and OpenTSDB formats, so the same Telegraf output can feed it. Its SQL streams transform data as it arrives, and data subscription exposes topics through a Kafka-like consumer API (and since 3.3.7.0 to MQTT clients). The no-code MQTT, OPC and historian connectors configured in taosExplorer are Enterprise features; with OSS you bridge the broker yourself. In either case, a broker such as Kafka or MQTT moves messages, the database stores and queries them, and CMMS records stay in a relational database.

Architecture, scaling and retention

InfluxDB 3 Core is a single node aimed at real-time monitoring and recent data, persisting Parquet to local disk or object storage. High availability, read replicas, multi-node clustering and historical query capability are InfluxDB 3 Enterprise features, and InfluxDB Clustered and the cloud services are the larger options. Retention is per database, does not expire by default, and in Core can be set only when the database is created, so raw and downsampled data usually go into separate databases.

TDengine OSS runs as a cluster of dnodes (taosd processes) holding vnodes, which shard a database's tables, with up to three mnodes for metadata replicated with Raft. Databases set REPLICA to 1 or 3 in OSS (2 is Enterprise only), KEEP for retention and DURATION for the span of each data file; KEEP must be at least three times DURATION, can be adjusted later, while DURATION cannot. Multi-tier storage and RSMA downsampled storage are Enterprise features. See retention and downsampling.

Editions, licences and security

InfluxDB. The influxdb repository states that its open source software is "licensed under the permissive MIT or Apache 2 licenses at the user's choosing". InfluxDB 3 Enterprise runs under a licence file from InfluxData (Trial, At-Home and Commercial types, limited by CPU count). Core uses admin tokens that grant access to every action on the server; per-database resource tokens are an Enterprise feature, so keep Core on a private network.

TDengine. The repository README states that TDengine "is licensed under the GNU Affero General Public License 3.0". Section 13 of the AGPL requires that, if you modify the program, your modified version must offer users interacting with it over a network the opportunity to receive its corresponding source. TLS for the public WebSocket and REST endpoint, IP allow-lists, audit logs and encryption at rest are documented as Enterprise features, so with OSS keep the cluster on a private network or terminate TLS at a proxy. Not legal advice: this summarises the licence texts; whether the AGPL affects your use is a question for the licence and your advisers.

Pricing and licensing

InfluxDB. InfluxData's pricing page states that InfluxDB 3 Core "is open source and free to download and run with no license required". InfluxDB 3 Enterprise is priced by CPU configuration through sales, with a 30-day free trial. Cloud Serverless is usage-based (data in, queries, storage and data out) with a free tier limited to 30-day retention; the page lists unit prices without stating a region, so we do not quote them. Cloud Dedicated is custom-priced.

TDengine. TDengine TSDB-OSS (AGPL v3) carries no licence fee. The vendor's pricing page lists the commercial TDengine All-in-One product, which includes TDengine TSDB and TDengine IDMP, priced by tags ("a unique time-series signal, typically Asset/Device + Measurement Name"), with "All prices are in USD". Self-hosted is "free to use for up to 5,000 tags" (optional support USD 3,375 a year); for example 10,000 tags is listed at USD 15,500 a year or USD 38,750 perpetual. The fully managed cloud is listed at USD 970 a month for 5,000 tags and USD 1,740 a month (USD 20,880 a year) for 10,000 tags, on AWS, Azure or Google Cloud. High availability adds 30% to self-hosted plans and 50% to cloud plans; very large or unlimited-tag deployments are quoted. No tax or region note was given.

Pricing checked on the vendors' official pages on 7 November 2026. Prices change; confirm before buying.

Where each one leads

InfluxDB strengths

  • Large ecosystem: line protocol, Telegraf, InfluxQL dashboards and client libraries
  • Core under MIT or Apache 2.0 at the user's choice
  • Parquet persistence on local disk or object storage
  • Last Value and Distinct Value caches for current-state dashboards
  • Managed cloud options, including usage-based Cloud Serverless

TDengine strengths

  • Supertables and tags model device types; queries span all devices of a type
  • Window clauses for state, session, event and count windows in SQL
  • Clustering with three replicas in the free OSS edition
  • Built-in SQL streams and Kafka-like subscriptions
  • Accepts InfluxDB line protocol and OpenTSDB formats as well as SQL

Limitations

InfluxDB limitations

  • Core is single node and aimed at recent data; HA and historical queries are Enterprise features
  • Retention in Core is fixed when the database is created
  • Tag columns are immutable; duplicate writes to the same field have no guaranteed winner
  • Core admin tokens grant full access; fine-grained tokens are Enterprise
  • Flux code from 2.x does not run on InfluxDB 3

TDengine limitations

  • AGPL v3 for the open source edition, which some organisations' policies do not accept
  • MQTT and OPC GUI connectors, TLS on REST and WebSocket, and audit logs are Enterprise features
  • <code>DURATION</code> cannot be changed, and vnodes are allocated when a database is created
  • Not intended for general relational workloads, according to the vendor

When to choose each

Choose InfluxDB if

  • You already run Telegraf, line protocol and InfluxQL dashboards
  • You want a permissively licensed single-node engine at the edge or for development
  • You want Parquet files on object storage that other tools can read
  • You prefer a managed service with usage-based pricing

Choose TDengine if

  • Telemetry is device-centred and you want one table per asset under typed supertables
  • You count state changes or events in SQL, for example compressor starts per day
  • You need a replicated cluster in the free edition
  • You want streams and subscriptions inside the database rather than a separate stream processor

When neither is right

Final recommendation

Bottom line

Our editorial view: InfluxDB 3 suits teams already on the InfluxData stack, dashboards built on current values, and storage on object stores, with a permissively licensed Core and paid Enterprise or cloud options when you need high availability and history. TDengine suits device-centred industrial telemetry where supertables, state and event windows, streams and a free replicated cluster matter, provided the AGPL fits your policy or you buy the commercial edition, whose per-tag prices are published. Because both accept line protocol, send the same Telegraf feed to both and compare your own queries and operations effort.

Frequently asked questions

Can TDengine ingest InfluxDB line protocol?

Yes. TDengine supports schemaless writes in InfluxDB line protocol, as well as the OpenTSDB telnet and JSON formats, so collectors such as Telegraf can write to it without a predefined schema.

Is TDengine open source?

TDengine TSDB-OSS is published on GitHub under the GNU Affero General Public License v3 and includes clustering. TDengine TSDB-Enterprise and TDengine Cloud are commercial. InfluxDB 3 Core, by comparison, is under MIT or Apache 2.0. This is a summary, not legal advice.

Does InfluxDB 3 Core support clustering?

No. InfluxDB 3 Core is a single node. High availability, read replicas and multi-node clustering are InfluxDB 3 Enterprise features; InfluxDB Clustered and the cloud services are the larger-scale options.

What is a supertable in TDengine?

A template for one device type: it defines the timestamp, metric columns and tag columns but stores no data. Each device gets a subtable with its own tag values, and queries on the supertable cover all of them, filtered by tags.

How is TDengine priced?

The open source edition has no licence fee. The commercial All-in-One product is priced by tags (time-series signals): free up to 5,000 tags self-hosted, then annual or perpetual licences, and the managed cloud from USD 970 a month for 5,000 tags, as listed on 7 November 2026.

Sources

Checked November 2026.

How we research comparisons: our editorial method.

More comparisons

Browse all SQL comparisons or the tools directory.