@Greptime: GreptimeDB v1.1:你不再需要在创建表时锁定分区布局。以前,只有使用 PARTITION ON COLUMNS 创建的表才能…

X AI KOLs Following 产品

摘要

GreptimeDB v1.1 引入了对现有表的在线重新分区、增量 Flow 读取、面向 LLM 的语义层以及稳定性改进。

GreptimeDB v1.1:你不再需要在创建表时锁定分区布局。 以前,只有使用 PARTITION ON COLUMNS 创建的表才能被重新分片。现在,你可以对一个现有的单区域表进行在线拆分: ALTER TABLE sensor_readings PARTITION ON COLUMNS (device_id, area) (...) 随着数据增长而重新分区,无需预先猜测。 详细博客:https://greptime.com/blogs/2026-06-14-greptimedb-v1-1-0-release…
查看原文
查看缓存全文

缓存时间: 2026/06/16 17:40

GreptimeDB v1.1:创建表时不再需要锁定分区布局。

以前,只有使用 PARTITION ON COLUMNS 创建的表才能重新分区。现在,您可以获取现有的单 Region 表并在线拆分:

ALTER TABLE sensor_readings PARTITION ON COLUMNS (device_id, area) (...)

随着数据增长进行重新分区,而不是提前猜测。

详细博客:https://greptime.com/blogs/2026-06-14-greptimedb-v1-1-0-release…


GreptimeDB v1.1.0:在线重新分区、增量 Flow 读取和语义层

来源:https://greptime.com/blogs/2026-06-14-greptimedb-v1-1-0-release 我们于 2026 年 6 月 14 日发布了 GreptimeDB v1.1.0。

这是继 v1.0 GA 之后的又一个面向生产的版本。与 v1.0 相比,此版本集中在几个明确的领域:

  • 调整现有表的数据分布
  • 在增量场景中更高效的 Flow 执行
  • 为 LLM 和 Agent 构建的数据语义层
  • Dashboard 中的 Trace 数据可观测性
  • 查询、存储、WAL、元数据和协议兼容性方面的稳定性修复

开发概览 (https://greptime.com/blogs/2026-06-14-greptimedb-v1-1-0-release#development-at-a-glance)

以下是 v1.1.0 的开发统计数据:

  • 此发布说明包含 215 个变更
  • 21 位贡献者参与了此版本
  • 其中 5 位是首次向 GreptimeDB 提交代码

从 v1.0.0 到 v1.1.0 的 GreptimeDB 贡献者

主要改进细分:

  • 94 项功能增强:现有表的在线重新分区、增量 Flow 读取、CSV 导入选项、JSON2、导入/导出 v2、表语义层、远程动态过滤、Dashboard Trace 可视化等
  • 43 个错误修复:Region 编辑、增量 Flow 读取、WAL 回放、元数据缓存、MySQL prepare、OTLP JSONB 日志等方面的稳定性问题
  • 25 个重构:Mito/Mito2、Region 编辑、压缩、导出-v2 和管道摄入的内部清理
  • 7 项性能优化:PromQL rate、指标表连接、SparseValues 解码和 WAL 条目编码
  • 10 项测试改进:增加了重新分区混沌测试、CSV 跳过坏记录、JSON 基准测试和重建索引的覆盖
  • 29 项工程和依赖改进
  • 4 个破坏性变更
  • 1 个 RFC:表语义层

感谢所有为此版本做出贡献的人,并热烈欢迎加入 GreptimeDB 社区的开发者和用户。

此版本亮点 (https://greptime.com/blogs/2026-06-14-greptimedb-v1-1-0-release#highlights-of-this-release)

现有表的在线重新分区 (https://greptime.com/blogs/2026-06-14-greptimedb-v1-1-0-release#online-repartitioning-for-existing-tables)

v1.1.0 的一个关键变化是支持对最初没有分区规则的表进行分区。

在早期版本中,只有使用 PARTITION ON COLUMNS 创建的表才能通过 SPLIT PARTITIONMERGE PARTITION 持续调整其分区布局。从 v1.1.0 开始,您还可以使用 ALTER TABLE ... PARTITION ON COLUMNS 将没有分区规则的现有表从单个 Region 拆分为多个分区。

例如:

SQL

ALTER TABLE sensor_readings PARTITION ON COLUMNS (device_id, area) ( device_id < 100 AND area < 'South', device_id < 100 AND area >= 'South', device_id >= 100 AND area <= 'East', device_id >= 100 AND area > 'East' );

因此,您不再需要在创建表时锁定未来的数据分布。随着数据增长和访问模式变化,您可以逐步重新分区现有表。

注意,这需要分布式集群、共享对象存储和启用 GC。在初始分区后,您可以继续使用 SPLIT PARTITIONMERGE PARTITION 来微调布局。

以前,重新分区只能在现有分区列上调整边界。此版本为 SPLIT PARTITIONREPARTITION 添加了可选的 ON COLUMNS 子句,因此您可以向现有表添加分区列,例如从 device_id 扩展到 device_idarea。如果不使用 ON COLUMNS,则复用当前分区列。

Flow 中的实验性增量读取 (https://greptime.com/blogs/2026-06-14-greptimedb-v1-1-0-release#experimental-incremental-reads-in-flow)

在批处理模式下,Flow 以前每次执行时都会重新运行整个源查询。对于大量连续追加的源表,这意味着大量不必要的重复扫描。

v1.1.0 引入了实验性的增量读取(https://docs.greptime.com/user-guide/flow-computation/manage-flow/#experimental-incremental-source-reads)。启用后,Flow 只读取自上次运行以来追加的数据,从而减少仅追加场景中的冗余计算。

此功能默认关闭。您可以在 flownode 配置中启用它:

toml

[flow.batching_mode] experimental_enable_incremental_read = true

或通过 Flow 的 WITH 选项:

SQL

WITH (experimental_enable_incremental_read = 'true')

源表必须是仅追加的,即使用 append_mode = 'true' 创建。如果不满足此条件,Flow 将回退到全快照查询。

此功能仍处于实验阶段,因此请在非生产环境中测试后再启用。

表语义层落地首批组件 (https://greptime.com/blogs/2026-06-14-greptimedb-v1-1-0-release#the-table-semantic-layer-lands-its-first-pieces)

v1.1.0 开始分阶段推出表语义层(https://docs.greptime.com/user-guide/concepts/semantic-layer/):在表数据之上添加一层轻量级的语义信息,使 LLM、Agent 以及可视化、告警等工具更容易理解和使用这些数据。

它复用了现有机制,没有添加新的协议或 DDL 关键字。表级语义位于 table_options 中的 greptime.semantic.* 命名空间下,字段级信息来自标准 SQL 列 COMMENT,所有内容都通过 information_schema 中的视图发现。当通过 Prometheus Remote Write 和 OpenTelemetry 等协议接收到数据时,这些注释也会自动填充。此版本落地了首批三个组件:语义标识、自动注释和 information_schema.table_semantics 视图。

SQL

CREATE TABLE my_metrics ( ts TIMESTAMP TIME INDEX, val DOUBLE ) WITH ( 'greptime.semantic.signal_type' = 'metric', 'greptime.semantic.source' = 'custom', 'greptime.semantic.metric.type' = 'counter', 'greptime.semantic.metric.unit' = 'By' );

然后,这些语义通过 MCP 服务器和 table_semantics 暴露给工具。

配套 MCP 服务器达到 0.5.0 (https://greptime.com/blogs/2026-06-14-greptimedb-v1-1-0-release#the-companion-mcp-server-reaches-0-5-0)

GreptimeDB 的配套 MCP 服务器,它允许 LLM 和 Agent 通过模型上下文协议访问数据,也在同一周期发布了 0.5.0(https://github.com/GreptimeTeam/greptimedb-mcp-server/releases/tag/v0.5.0)。此版本带来了三项变更:提示(prompts)现在使用沙盒化的 Jinja 渲染;更完整的 describe table 返回样本数据和语义元数据;以及面向开发的允许写入模式用于测试。

内置 Dashboard 中的 Trace 可视化 (https://greptime.com/blogs/2026-06-14-greptimedb-v1-1-0-release#trace-visualization-in-the-built-in-dashboard)

内置 Dashboard 支持 Trace 列表视图和单个 Trace 详情的甘特图视图。无需额外设置——单个 SQL 查询即可深入查看 Trace。

指标、日志和 Trace 全部集成,您可以在这里浏览和定位 Trace 数据,无需从一开始就搭建单独的外部可视化栈。这遵循了 GreptimeDB 一直追求的方向:在一个地方处理指标、日志和 Trace,并尽可能融入现有生态系统。

性能优化 (https://greptime.com/blogs/2026-06-14-greptimedb-v1-1-0-release#performance-optimizations)

v1.1.0 带来了一系列性能改进:

  • PromQL 运行更快。rateincrease 等范围函数在基准测试中性能提升高达 97%,基于 TSID 的连接加速了指标连接。PromQL 查询的端到端平均延迟通常比 v1.0 低 20-40%。
  • 扫描读取更少的行。Parquet 预过滤、预过滤结果缓存以及 Datanode 扫描期间的远程动态过滤减少了不必要的行读取。启用预过滤后,TSBS cpu-max-all-8 查询速度提高了 4.5 倍。
  • 读取占用更少的存储。页面索引读取和范围缓存重用减少了对扫描密集型查询的存储读取。在一个工作负载中,页面索引读取将提取的 SST 字节减少了 93.2%。

其他值得注意的改进 (https://greptime.com/blogs/2026-06-14-greptimedb-v1-1-0-release#other-notable-improvements)

除了上述变更,v1.1.0 还包含查询、存储、导入/导出和语义层方面的一系列增强。

  • 新的 JSON2 类型:支持插入、刷新、查询具体化、计划器、压缩和字段访问下推到 Parquet(注意:此功能尚未完全准备就绪)
  • 导入/导出 v2 更加完整:导入-v2 管道、重试、恢复、进度模式和进度 UI,以及导出-v2 快照列表、验证和删除
  • CSV 导入:COPY FROM 增加了 SKIP_BAD_RECORDS(跳过解析或类型转换失败的行)和 HEADERS = 'false'(导入无头文件并按位置映射列)
  • 远程动态过滤取得进展:基础能力、Frontend 注册、扇出更新和 Datanode 扫描应用
  • 更多查询端优化:PromQL 二元操作符连接简化器、范围缓存、预过滤缓存、嵌套投影和 Parquet 嵌套叶子投影
  • 更多协议和接口覆盖:gRPC-Web、pgwire 0.40、预处理语句执行超时和 PostgreSQL 参数解析范围检查
  • 执行和运行时隔离:Datanode 分离了查询和写入运行时,因此大型查询和写入不再相互拖累,同时支持远程 WAL 逻辑剪枝
  • 运维和安全:密码验证器格式、密码哈希生成命令、information_schema 统计表以及 SST 主键范围检查

单独来看,这些并非都是头条功能,但共同覆盖了查询、写入、导入/导出、协议兼容性和可观测性。

关键修复 (https://greptime.com/blogs/2026-06-14-greptimedb-v1-1-0-release#key-fixes)

v1.1.0 还修复了一批稳定性问题,主要集中在以下领域。

Region、WAL 和元数据稳定性 (https://greptime.com/blogs/2026-06-14-greptimedb-v1-1-0-release#region-wal-and-metadata-stability)

此版本聚焦于长时间运行分布式部署中的几个关键路径:

  • Region 编辑和压缩:GreptimeDB 现在在 Region 编辑期间将新写入排入队列,并仍然允许压缩发布,从而避免状态冲突。
  • 关闭 Follower Region:关闭 Follower Region 现在跳过不必要的刷新。
  • Region 统计:Region 现在只计算其拥有的 SST,因此数字更准确。
  • WAL 和元数据:WAL 剪枝重试的错误分类更加完整,远程 WAL 回放检查点处理得到改进,元数据失效后缓存不再返回陈旧值。
  • Leader 交接:Metasrv Leader 在退位时立即关闭其心跳流。

这些修复主要影响分布式部署中的长期运行稳定性,特别是围绕 Region 编辑、元数据刷新、WAL 回放和 Leader 交接的路径。

Flow 正确性和兼容性 (https://greptime.com/blogs/2026-06-14-greptimedb-v1-1-0-release#flow-correctness-and-compatibility)

增量 Flow 读取在 v1.1.0 中既带来了新能力,也带来了修复。发布说明包括增量读取的正确性强化、对复杂 SQL 全查询 Flow 的支持,以及修复了在没有时间窗口的情况下运行 eval-interval Flow 的问题。

如果您正在评估 Flow,这些修复与新功能同样重要。

协议、查询和数据格式修复 (https://greptime.com/blogs/2026-06-14-greptimedb-v1-1-0-release#protocol-query-and-data-format-fixes)

v1.1.0 修复了 MySQL prepare 中的 LIMIT 占位符推断、未知占位符的保留、嵌套投影根、倒排索引剪枝、OTLP JSONB 日志与现有模式的兼容性以及 gRPC 最大连接年龄崩溃。

这些修复涉及客户端兼容性、查询计划、数据格式和运行时稳定性。它们是在日常使用中更容易遇到的边缘情况。

兼容性说明 (https://greptime.com/blogs/2026-06-14-greptimedb-v1-1-0-release#compatibility-notes)

v1.1.0 包含 4 个破坏性变更,升级前值得检查。

1. gRPC CLI 选项名称与配置命名对齐 (https://greptime.com/blogs/2026-06-14-greptimedb-v1-1-0-release#_1-grpc-cli-option-names-aligned-with-configuration-naming)

如果您的脚本、自动化或运维文档直接引用了旧的 gRPC CLI 选项名称,请在升级前对照新命名检查。

2. 修正了 information_schema 索引元数据输出 (https://greptime.com/blogs/2026-06-14-greptimedb-v1-1-0-release#_2-corrected-information-schema-index-metadata-output)

此版本修正了 information_schema 中的索引元数据。请验证任何依赖旧输出格式或旧字段含义的下游查询、监控或集成逻辑。

3. 调整了作用域 Flow 修复快照行为 (https://greptime.com/blogs/2026-06-14-greptimedb-v1-1-0-release#_3-adjusted-scoped-flow-repair-snapshot-behavior)

v1.1.0 隔离了作用域 Flow 修复快照,以防止状态在作用域间被误用。如果您依赖 Flow 修复或恢复路径,请在升级后注意行为变化。

4. Mito2 移除了 PartitionTreeMemtable (https://greptime.com/blogs/2026-06-14-greptimedb-v1-1-0-release#_4-mito2-removes-partitiontreememtable)

这是一个内部的 Mito2 重构。普通 SQL 使用不会注意到这一点,但如果您有依赖此结构的内部扩展、测试或调试逻辑,则需要更新它们。

谁应该关注 v1.1.0 (https://greptime.com/blogs/2026-06-14-greptimedb-v1-1-0-release#who-should-look-at-v1-1-0)

对于现有 GreptimeDB 用户,以下场景值得优先评估:

  • 您需要为现有大型表重新规划分区
  • 您已经在任何地方运行 v1.0 并遇到了性能问题或 bug
  • 您的 Flow 源表是仅追加的,且全量重新扫描成本高昂
  • 您正在使用 LLM 或 Agent 访问 GreptimeDB,并希望数据更易于理解和使用
  • 您希望直接在内置 Dashboard 中查看 Trace
  • 您正在运行分布式集群、WAL、Flow、MySQL/PostgreSQL 协议或 OTLP 摄入

如果您符合以上任何情况,建议尽快测试和评估 v1.1.0。

结语 (https://greptime.com/blogs/2026-06-14-greptimedb-v1-1-0-release#closing)

有关完整的变更日志,请参阅 GitHub Release(https://github.com/GreptimeTeam/greptimedb/releases/tag/v1.1.0)。

感谢所有提交问题、打开 PR、参与讨论或在真实环境中运行 GreptimeDB 的人。特别感谢本版本的 5 位首次贡献者:

  • @QuakeWang (https://github.com/QuakeWang) (#8233 (https://github.com/GreptimeTeam/greptimedb/pull/8233))
  • @rogierlommers (https://github.com/rogierlommers) (#8168 (https://github.com/GreptimeTeam/greptimedb/pull/8168))
  • @kimjune01 (https://github.com/kimjune01) (#8092 (https://github.com/GreptimeTeam/greptimedb/pull/8092))
  • @Detachm (https://github.com/Detachm) (#8067 (https://github.com/GreptimeTeam/greptimedb/pull/8067))
  • @onepizzateam (https://github.com/onepizzateam)

相似文章

@Greptime: GreptimeDB v1.1.2 已发布 — 这是一个值得升级的 v1.1 补丁。主要修复:定时 Flows 现在绑定 now()/current_timest…

X AI KOLs Following

GreptimeDB v1.1.2 是一个补丁版本,修复了定时 Flows 中 now() 的绑定问题,以确保 EVAL INTERVAL 窗口的确定性。此外还修复了以下问题:Kafka SASL 密码在调试输出中的屏蔽、GC 索引文件列表、parquet 元数据缓存大小、Prometheus 标签发现扫描以及 PromQL 时间二元聚合。建议用户升级。