@Greptime: GreptimeDB v1.1:你不再需要在创建表时锁定分区布局。以前,只有使用 PARTITION ON COLUMNS 创建的表才能…
摘要
GreptimeDB v1.1 引入了对现有表的在线重新分区、增量 Flow 读取、面向 LLM 的语义层以及稳定性改进。
查看缓存全文
缓存时间: 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 PARTITION 和 MERGE 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 PARTITION 和 MERGE PARTITION 来微调布局。
以前,重新分区只能在现有分区列上调整边界。此版本为 SPLIT PARTITION 和 REPARTITION 添加了可选的 ON COLUMNS 子句,因此您可以向现有表添加分区列,例如从 device_id 扩展到 device_id 和 area。如果不使用 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 运行更快。
rate和increase等范围函数在基准测试中性能提升高达 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: 重新分区大表通常是一个迁移项目:新建表、双写、回填TB级历史数据、切换。Gr…
GreptimeDB v1.1 通过单个 ALTER TABLE 语句引入了对现有表的在线重新分区,消除了数据迁移、双写或应用程序变更的需求。它利用共享对象存储和逻辑分片来更新清单和路由,而无需在节点之间移动数据。
@Greptime: GreptimeDB v1.1.0 发布,PromQL rate/increase 查询速度提升高达97%,整体查询时间降低20-40%,TS… 上速度提升高达4.5倍
GreptimeDB v1.1.0 已发布,提供高达97%的PromQL查询加速,整体查询时间降低20-40%,在TSBS扫描密集型查询上性能提升高达4.5倍,并支持对现有表进行在线重分区。
@Greptime: GreptimeDB v1.1.2 已发布 — 这是一个值得升级的 v1.1 补丁。主要修复:定时 Flows 现在绑定 now()/current_timest…
GreptimeDB v1.1.2 是一个补丁版本,修复了定时 Flows 中 now() 的绑定问题,以确保 EVAL INTERVAL 窗口的确定性。此外还修复了以下问题:Kafka SASL 密码在调试输出中的屏蔽、GC 索引文件列表、parquet 元数据缓存大小、Prometheus 标签发现扫描以及 PromQL 时间二元聚合。建议用户升级。
@Greptime: GreptimeDB 六月的大部分工作归结为一个想法:如果过滤器无法到达数据,那么它就没用。在分布式查询中…
GreptimeDB 通过启用远程动态过滤器在运行时下推到 datanode 扫描,并优化优化器使其在 MergeScan 包装远程计划之前运行,从而确保过滤器到达数据,提升了分布式查询性能。JSON v2 列现在支持类型提示。
@Greptime: GreptimeDB 的扁平格式查询现在可以在任何列上预过滤——标签、字段、时间戳——而不仅仅是主键。而…
GreptimeDB 的扁平格式查询现在支持在任何列(标签、字段、时间戳)上预过滤,而不仅仅是主键,性能提升高达 4.5 倍。此外,mito2 存储引擎移除了其遗留扫描路径,清理了约 1800 行代码。