GreptimeDB v1.1: you no longer have to lock in a table's partition layout when you create it.
Before, only tables created with PARTITION ON COLUMNS could be resharded. Now you can take an existing single-Region table and split it online:
ALTER TABLE sensor_readings PARTITION ON COLUMNS (device_id, area) (...)
Repartition as data grows, instead of guessing up front.
Full blog in detail: greptime.com/blogs/2026-06-1…
ALT GreptimeDB v1.1.0 is out, a production-focused release after the v1.0 GA
We're a Silver Sponsor at #KubeCon + #CloudNativeCon NA 2026 in Salt Lake City, Nov 9–12.
Booth 262. Come talk metrics, logs, and traces in one open-source database with the engineers who build GreptimeDB.
linkedin.com/events/75183378…
A satellite R&D team runs dozens to 100+ data experiments, some with more than 3 billion rows each.
On InfluxDB 2.x they used one bucket per experiment, each with its own retention. InfluxDB's docs put an open-source instance at about 20 actively used buckets. Queries also ran out of memory, and the open-source edition is single-node.
On GreptimeDB:
- one database per experiment, TTL on the database replaces bucket retention
- governed data follows platform-defined schemas
- temporary experiments create tables and add columns on write
- everyone queries in SQL, no Flux
How they built it, including the Vector ingestion layer:
greptime.com/blogs/2026-10-1…
A region migration used to show up as a failed write. In the GreptimeDB v1.3 beta.2, the frontend refreshes the route and resends only the regions that failed. Regions that already acked aren't replayed. On by default in clusters.
docs.greptime.com/release-no…
GreptimeDB v1.3.0-beta.2 is mostly correctness fixes.
One example: errors / requests > 0.05 was true when the ratio was NaN, so alerts fired with no traffic. PromQL now follows Prometheus float semantics.
Distributed write retries are also on by default.
The bundled dashboard also gets Signals Explore for drilling into metrics, logs and traces.
github.com/GreptimeTeam/grep…
Personally, I think the best part is Signals Explore. It lets you correlate and navigate between metrics, logs, and traces, making it easy to drill down.
GreptimeDB v1.3.0-beta.2 is mostly correctness fixes.
One example: errors / requests > 0.05 was true when the ratio was NaN, so alerts fired with no traffic. PromQL now follows Prometheus float semantics.
Distributed write retries are also on by default.
The bundled dashboard also gets Signals Explore for drilling into metrics, logs and traces.
github.com/GreptimeTeam/grep…
Frontend CPU +95%. Datanode CPU −20%. Prometheus ingestion +81%.
We stopped doing row work under the Region lock in v1.2 and moved it to the Frontend, which scales out for free.
greptime.com/blogs/2026-05-2…
We ran GreptimeDB v1.2 against InfluxDB 3.11 Core and Enterprise: same 8 vCPU box, same TSBS dataset, 103.68M rows from 4,000 hosts.
Our read: keeping data in open Parquet hasn't cost us query speed.
Queries across all 4,000 hosts (group-by, order-by-limit, lastpoint): GreptimeDB is 1.8–3.6x faster than Enterprise, 3.0–9.9x after one manual compaction. lastpoint: 9,347 ms vs 947 ms. high-cpu-all is roughly a tie.
Queries on 1 or 8 hosts: Enterprise wins, 1.3–3.4x faster than compacted GreptimeDB. That's 3.6–19.9 ms vs 5.9–31.8 ms.
Ingest: 295k rows/s, 1.31x Enterprise. InfluxDB got 25k-row batches and 16 workers to reach its best; at GreptimeDB's 3k/6 it did 18k rows/s.
InfluxDB 3 Core, also on Parquet, was slower on 13 query types and ran out of memory on the other 2.
Full numbers, plus agent prompts to reproduce it:
greptime.com/blogs/2026-10-1…
ALT Horizontal bar chart of query latency in milliseconds, lower is better, for six TSBS query types across all 4,000 hosts. Values for InfluxDB 3.11.1 Core, InfluxDB 3.11.1 Enterprise, GreptimeDB v1.2.0, and GreptimeDB v1.2.0 after manual compaction: double-groupby-1: 4,089 / 1,014 / 564 / 298. double-groupby-5: 4,309 / 1,781 / 776 / 446. double-groupby-all: 4,603 / 2,779 / 1,060 / 638. groupby-orderby-limit: Core out of memory / 1,236 / 704 / 411. lastpoint: Core out of memory / 9,347 / 2,585 / 947. high-cpu-all: 6,748 / 4,384 / 4,633 / 4,171. Test setup: AWS c5d.2xlarge, TSBS cpu-only, scale=4000.
ALT Horizontal bar chart of query latency in milliseconds, lower is better, for nine TSBS query types touching 1 or 8 hosts. Values for InfluxDB 3.11.1 Enterprise, GreptimeDB v1.2.0, and GreptimeDB v1.2.0 after manual compaction: cpu-max-all-1: 10.3 / 24.1 / 13.0. cpu-max-all-8: 19.9 / 54.5 / 31.8. high-cpu-1: 4.0 / 17.5 / 13.4. single-groupby-1-1-1: 3.6 / 7.5 / 5.9. single-groupby-1-1-12: 4.3 / 13.1 / 10.1. single-groupby-1-8-1: 5.9 / 16.6 / 10.7. single-groupby-5-1-1: 4.5 / 8.1 / 6.6. single-groupby-5-1-12: 5.8 / 13.8 / 11.5. single-groupby-5-8-1: 7.5 / 17.9 / 11.8. A note says InfluxDB 3 Core took 58 to 823 ms on these queries and is omitted from the chart. Test setup: AWS c5d.2xlarge, TSBS cpu-only, scale=4000.
"Payment still failed after retries" is hard to grep for.
GreptimeDB v1.3 adds experimental AI functions to SQL: ai_match filters rows by a natural-language prompt, ai_choose classifies them, ai_score rates them.
docs.greptime.com/nightly/re…
From our blog: ORDER BY end_time DESC LIMIT 10 on a ~5–6B-row trace table took 28.9s. Since v1.0, GreptimeDB feeds TopK's running bound into the scan, building on DataFusion's dynamic filters, and skips row groups that can't make the top 10. Now 0.21s.
greptime.com/blogs/2026-05-1…
ALT Card from the GreptimeDB blog on TopK dynamic filters. Headline: "Top 10 rows shouldn't cost a full scan." Query: SELECT * FROM langchain_traces ORDER BY end_time DESC LIMIT 10. Illustrative diagram of eight row groups labeled with their max end_time (97, 41, 88, 23, 65, 99, 12, 54). Before: the scan can't see TopK, there is no scan filter, and all 8 row groups are read and then sorted. Since v1.0: TopK's current 10th value becomes a dynamic scan filter that tightens as rows arrive, shown as end_time > 85; row groups with max 97, 88, and 99 are read and the other five are skipped, 3 of 8 read. Result: 28.9s to 0.21s for the same query on a trace table of about 5 to 6 billion rows. Source: GreptimeDB PR 7545, DataFusion dynamic filters. Footer: measured on v1.0, May 2026; gains depend on data layout and LIMIT.
Running Prometheus with Remote Write 2.0? GreptimeDB v1.2 accepts it for regular samples: add one protobuf_message line to prometheus.yml, nothing to change on the GreptimeDB side. Metadata and exemplars aren't stored yet.
greptime.com/blogs/2026-09-0…
We ran both side by side: one Prometheus 3.15, two remote_write queues into GreptimeDB, 4 minutes. Same 43,445 samples, same 364 tables. RW 2.0 sent 716 KB vs 916 KB for RW 1.0 (metadata included), about 22% less. One small workload; yours will vary.
GreptimeDB in September:
v1.2 is GA. If you use JSON2 columns, go straight to v1.2.1: it fixes a bug where a manually triggered strict-window compaction could drop rows. Automatic compaction is not affected.
The v1.3 beta adds two observability changes:
- Trace V2: OTLP span, scope and resource attributes are stored in three JSON2 columns instead of one column per attribute key. Query them by path, e.g. span_attributes."http.status_code"::BIGINT. Jaeger queries and the Semantic Graph work on the new model.
- Native histograms from Prometheus Remote Write v2 and OTLP are ingested by default. No feature switch.
Monthly report: greptime.com/blogs/2026-09-3…
Large export over a flaky link? GreptimeDB v1.2 splits backups and migrations into time chunks, runs them in parallel, and resumes after an interruption: rerun the same command and finished chunks are skipped.
docs.greptime.com/1.2/user-g…
ALT GreptimeDB v1.2 feature card for export-v2 / import-v2. Headline: "Interrupted migrations pick up where they stopped." Three steps: 01 Chunk by time (--chunk-time-window); 02 Job stops midway, progress kept in the snapshot; 03 Rerun the command, done chunks are skipped. Shell command with annotations: "greptime cli data export-v2 create" creates the snapshot, or resumes it if it exists; "--addr 127.0.0.1:4000" is the GreptimeDB HTTP endpoint; "--to s3://backup/prod-2026-06" is the snapshot location, which can also be oss://, gs://, azblob://, or file://; "--start-time 2026-06-01T00:00:00Z" and "--end-time 2026-07-01T00:00:00Z" set the bounded range that chunking needs; "--chunk-time-window 1d" makes one chunk per day; "--chunk-parallelism 8" runs 1 to 64 chunks at once; "--s3 --s3-region us-west-2" enables S3, with the bucket taken from the URI. Footer: import-v2 resumes too, via a state file. --force starts over.
Big sort or aggregation over the memory limit? GreptimeDB v1.3 lets you pick where it spills to disk, cap the space, and compress the files. Experimental for now.
ALT Card for GreptimeDB v1.3 query spill-to-disk, titled "Big queries spill to the disk you choose". A three-step flow: sort and aggregate operators buffer rows, the query hits the memory_pool_size limit, then data spills to disk at your chosen path and cap. Below, a config.toml [query] section with annotations: memory_pool_size = "4GB" (limit for query operators), experimental_spill_mode = "custom" (or "disabled" to turn off), experimental_spill_path = "/data/spill", experimental_spill_max_temp_directory_size = "50GiB", experimental_spill_compression = "zstd" (or lz4_frame, uncompressed), experimental_memory_pool_policy = "fair". Footer: experimental; memory_pool_size does not limit table scans yet.
All GreptimeDB ingester SDKs can now write JSON2 columns: Go, Java, Rust, TypeScript, .NET, and Erlang.
JSON2 (new in GreptimeDB 1.2) stores hot JSON paths as their own columns, so a filter on http.status reads that column instead of every full document.
How it works: greptime.com/blogs/2026-09-2…