Skip to main content

v1.2.0-beta.1

Β· 12 min read

Release date: July 31, 2026

GreptimeDB v1.2.0-beta.1 is the first beta of the v1.2 line. It brings the JSON2 type system to maturity, large query performance improvements via dictionary-encoded series keys, Prometheus Remote Write v2 native histogram support, and a large set of correctness and stability fixes.

πŸ‘ Highlights​

  • JSON2 type system maturity β€” Variant payloads are now encoded as JSONB instead of serde JSON bytes, with type hints, write-time validation (rejecting non-object values and validating append mode), and a fix for selecting whole JSON2 columns (#8247, #8381, #8434, #8435, #8683).

    CREATE TABLE t (id INT, doc JSON2);
    INSERT INTO t VALUES (1, '{"a": 1, "b": [1, 2]}');
    SELECT doc FROM t; -- returns the full JSON document
  • Faster queries with dictionary-encoded series keys β€” In-memory primary key columns now use dictionary arrays to alleviate series key expansion, gaining ~24% end-to-end query performance (#8541); dictionary-encoded regex filters also get correct semantics and the fast path back (#8688).

    SELECT * FROM metrics WHERE job = 'node' AND path ~ '/api/.*';
    -- regex filters on dictionary-encoded columns are now semantically correct and fast
  • Security hardening and access control β€” Local-file SQL access is sandboxed and datanode local-file access is disabled in distributed deployments (#8708 β€” breaking change, see below and the migration guide); table-level permission checks are enforced across query and write protocols (#8552), database ACL gaps are closed and creators get access to newly created databases (#8492, #8566), restricted HTTP endpoints require authentication (#8672), Postgres now supports SCRAM-SHA-256 (#8304), and an optional dedicated API server port (http.enable_api_server, default false; http.api_server_addr, default 127.0.0.1:4006) exposes only /v1 and the dashboard (#8657).

  • Prometheus Remote Write v2 with native histograms β€” Support for the Remote Write v2 protocol (#8361), persistence and validation of native histograms (#8382, #8654), and PromQL native histogram functions (#8664). Prometheus sends v1 unless protobuf_message is set; native histogram ingestion is experimental and disabled by default (experimental_enable_prometheus_native_histogram under [http]).

    remote_write:
    - url: http://greptimedb:4000/v1/prometheus/write
    protobuf_message: io.prometheus.write.v2.Request
  • Splunk HEC ingestion β€” New Splunk HEC-compatible endpoints at /v1/splunk/services/collector/event and /v1/splunk/services/collector/raw, with health probes, gzip support, and pipeline override via the x-greptime-pipeline-name header (#8321, #8491). Vector's splunk_hec_logs sink, the OpenTelemetry Collector splunk_hec exporter, and Fluent Bit can point at GreptimeDB by changing URL and token; when authentication is enabled the token must be formatted as username:password.

  • Cluster lifecycle events β€” The event recorder now covers table, database, flow, and view DDL events on top of region migration, plus WAL prune, batch GC, and repartition events (#8549, #8623, #8626, #8627, #8632, #8648, #8665, #8673, #8677). Configure with [event_recorder] ttl (default 90 days) and event_types (omitted = record all, [] = disabled); docs: docs#2678.

  • Streaming EXPLAIN ANALYZE β€” POST /v1/sql/analyze/stream streams per-stage metrics while a distributed query is still running, instead of waiting for completion; slow queries also record metrics on timeout. Enabled by default (http.experimental_enable_explain_analyze_stream, default true) (#8380, #8405, #8584, #8644, #8668).

  • PromQL semantics aligned with Prometheus β€” Ordinary NaN samples are preserved, or matching handles missing labels and empty operands, range queries align to range tails, and remote read schemas are bound per query (#8494, #8502, #8504, #8650, #8591); promql-parser updated to v0.10 (#8457).

  • Finer control over flush and compaction β€” Table-level auto_flush_interval with ALTER TABLE SET (#8357, #8403), per-region write buffer limits (#8473), configurable parquet row group size (#8446), ADMIN COMPACT_TABLE with start_time/end_time ranges (#8669), and cancelable flush jobs (#8685).

  • RangeSelect projection pruning β€” Range queries now prune unused input columns before the RangeSelect plan, reducing scanned columns and I/O (#8570).

    EXPLAIN SELECT ts, value FROM metrics WHERE ts > now() - INTERVAL '1 hour';
    -- only the needed columns are scanned
  • Parallel, resumable export/import v2 β€” The snapshot-based export/import v2 gained concurrent chunk export (--chunk-parallelism), parallel import tasks (--task-parallelism), and progress reporting (--progress auto|always|never); resume works by re-running the same command, which skips completed chunks and tasks instead of starting over. See the export/import v2 guide.

    greptime cli data export-v2 create \
    --addr 127.0.0.1:4000 \
    --to file:///tmp/greptime-snapshots/demo \
    --chunk-parallelism 4
    # rerun the same command to resume from existing progress
  • Also notable β€” MySQL as an object store backend (#8560; repartition unsupported on it), Flow scheduling and window-update stability fixes (#8360, #8544, #8582, #8389, #8409, #8611), and repartition polish (#8291, #8497, #8678).

Dashboard​

The bundled GreptimeDB dashboard was updated to v0.13.10:

  • Save dashboards as self-contained snapshots (time range, variables, and panel data) that open read-only without querying live data sources (dashboard#627).
  • Result tables support column resizing for easier inspection, including trace queries, with a dedicated table resize mode (dashboard#628, #632, #635, #636).
  • New prominent support menu and refreshed icon/status styling (dashboard#629).
  • PromQL editor fixes (query header, Prometheus plugin sync) and all supported Perses plugins (dashboard#630, #631, #633).
  • Virtual-list logs show a tip for hidden columns; SQL editor executes correctly when the cursor is after a SQL line (dashboard#637, #622).

Breaking changes​

πŸš€ Features​

πŸ› Bug Fixes​

All Contributors​

We would like to thank the following contributors from the GreptimeDB community:

@BootstrapperSBL, @MichaelScofield, @QuakeWang, @WenyXu, @ZonaHex, @agrawalx, @discord9, @evenyag, @fengjiachun, @fengys1996, @killme2008, @lyang24, @raphaelroshan, @shuiyisong, @srivtx, @sunchanglong, @sunng87, @v0y4g3r, @waynexia