版本发布历史

5.0.0 发布介绍

  1. 全新数据库架构:

    • 引入 etcd 集群,实现集群主节点(Master)和和主节点备用节点(Standby)的自动故障切换(文档
    • 引入面向服务的架构,使集群的部署,运行和维护更加简单方便(文档
    • 新增集群管理工具: mxstart(文档)、mxstop(文档)、mxstate(文档)、mxrecover(文档
  2. 新增向量化执行引擎(文档):

    • 支持批处理:利用批处理的方式,可以有效减少函数调用等执行开销
    • 充分利用硬件及编译器能力:使用 CPU 缓存友好的算法,从而充分利用硬件以及编译器的优化能力,如生成 SIMD(Single Instruction, Multiple Data)指令
    • 支持多种算子:实现了 Scan、Sort、Aggregate 等算子,对于同一算子也有不同的算法实现,有效覆盖绝大部分查询场景,提升查询性能

    基于以上三点核心原理,相比面向行处理的传统执行引擎,向量化执行引擎可实现 1 到 2 个数量级的性能提升。

  3. MARS2 存储引擎性能大幅优化,并修复已知 bug(文档):

    • 优化压缩策略,降低内存使用量
    • 优化分区表写入,降低内存使用量
    • 优化查询过滤效果,减少不必要的 I/O 消耗
    • 优化数据量估计,执行计划的选择更精准
    • 增强聚合能力,支持 uniquemode 和 IN 表达式
    • 修复 uniquemode 合并结果顺序问题
    • 修复并行扫描快照对齐问题
    • 修复一处内存泄漏
  4. 新增编码链压缩算法(文档):

    • 支持多种编码、压缩算法:支持 lz4,zstd,simple8b,doubledelta,gorilla,deltazigzag,floatint 等编码、压缩算法,可灵活组合以上算法,以充分提升压缩率
    • 支持按列自定义编码、压缩算法组合
    • 配合向量化执行引擎使用提升数据压缩 / 解压速度:在 SSB 场景下解压速度是 LZ4 的 3 倍

编码链压缩方案可大幅减小空间占用,降低成本。在新能源汽车场景,压缩率是使用 LZ4 压缩算法方案的 3.9 倍,在 TSBS(Time Series Benchmark Suite)场景,是 LZ4 的 2.7 倍。

  1. 新增平滑扩容功能(文档):
    • 支持不停机完成扩容任务
    • 支持自定义数据节点集合(Segment Set),实现对部分表的重分布
    • 支持并行执行表数据重分布
    • 支持连接未重分布表与已重分布表
  2. 升级数据迁移工具 mxshift(文档):
    • 支持全量迁移:以数据库为单位,实现从 Greenplum 5 / Greenplum 6/ YMatrix 集群并行迁移数据到新的 YMatrix 集群
    • 支持反向迁移:从 YMatrix 到 Greenplum 5 / Greenplum 6 反向迁移
    • 支持增量迁移:通过 WHERE 条件实现增量数据迁移
  3. 图形化界面升级:
    • 增加查询监控页面,支持自定义管理页面展示的慢查询信息,可一键终止慢查询(文档
    • 增加写入测试功能,一键体验 YMatrix 强大数据写入性能(文档
    • 增加查询测试功能,支持按照业务场景自定义查询测试方案,一键体验高并发场景下 YMatrix 强劲查询性能(文档

4.7.0 发布介绍

  1. 支持 CREATE INDEX CONCURRENTLY 语法(文档
  2. 新增数据迁移工具 mxshift
  3. 修复已知 bug

4.6.1 发布介绍

  1. MatrixGate 升级:
    • 对于 Kafka 接入的 JSON 数据, 支持使用 dml-template 参数自定义 JSON 至数据列的映射关系
    • 新增 Kafka 身份认证机制。使用 SASL框架,目前支持 SCRAM 验证
  2. 修复已知 bug

4.6.0 发布介绍

  1. MARS2 存储引擎聚集查询性能大幅优化
  2. 图形化界面全面升级:
    • 外观升级,极致视觉体验
    • 增加轻松上手功能,一键体验时序业务场景(文档
    • Kafka 数据流写入支持自动创建 MARS2 表(文档
    • 新增图形化界面扩容(文档
  3. MatrixGate 升级:
    • 新增不停机更新并行写入相关参数的功能(文档
    • 新增不停机更新表结构的功能(文档
    • 迁移模式不再需要大量连续端口
    • 支持在 UDF 内调用
  4. Grafana 监控页面升级,支持 Prometheus 数据监控(文档
  5. 国产化平台支持:银河麒麟 V10 操作系统 + ARM 平台支持
  6. 修复已知 bug

4.5.0 发布介绍

  1. MARS2 存储引擎隆重发布,UPSERT 场景优化显著,并且后台自动压缩,省去了转表过程(文档
  2. 新增查询统计组件,可以用来统计查询使用时间和资源消耗(文档
  3. MatrixGate 升级(文档):
    • 支持任意列 timestamp 转换;
    • 新增 watch 功能,可以查看 mxgate 写入数据的实时以及历史指标信息;
    • UPSERT 支持 boolean 类型。
  4. mxbench 升级,用户可以灵活配置指标类型、采集频率、空值率、随机度等(文档
  5. 新增滑动窗口流计算,流数据的实时分析与监控,并支持订阅发布(文档
  6. Kubernetes 支持,可以在 k8s 上部署 MatrixDB 集群(文档

4.4.0 发布介绍

  1. MatrixGate 升级(文档
    • UPSERT 支持去重
    • 新增 --insert-timeout--request-timeout 参数来控制超时,防止高负载场景因资源耗尽导致雪崩
  2. Kafka 数据接入流程重新设计,支持 CSV 和 JSON 两种数据格式和映射关系设置(文档
  3. 自动分区管理页面升级(文档
  4. INSERT INTO SELECT 语句支持并行扫描
  5. Grafana 监控页面升级,监控面板拆分为系统面板和数据库面板,并增加了中文描述(文档
  6. PXF 升级到 6.2.1,在大量小文件场景吞吐率有 2~5 倍提高

4.3.10 发布介绍

4.3.10 修复了如下 bug:

  1. segment crash 后 mirror 无法启动的问题
  2. 特定情况下 UDF 访问 catalog 导致 QD crash 的问题
  3. PXF 访问 Hive ORC 添加 filter crash 的问题

4.3.0 发布介绍

  1. 持续聚集隆重上线
    • 持续聚集通过物化视图实时同步源表数据并做排序归并,使聚集查询更高效(参考文档
  2. 空间数据类型支持
    • 开发了增强版的 PostGIS 组件,可以完美支持空间数据类型的存储和计算(参考文档
  3. MatrixGate升级
    • 增强数据接入容错机制,单条数据格式错误不会影响所在批次其他数据(参考文档
    • MatrixGate 日志管理,支持自动归档与清理
    • 新增了迁移模式,可以高效同步其他 Greenplum5、Greenplum6、YMatrix Database 集群中的数据表到本集群(参考文档
  4. 可视化数据表上线
    • 管理页面里新增了可视化数据表版块,可以方便查看集群数据库与表的状态(参考文档
  5. 自动分区图形化管理
    • 分区表可以通过图形化界面设置模板和自动化分区管理策略(参考文档
  6. MARS 存储引擎升级
    • tag_id 支持数据类型在整型基础上新增了 text,varchar,name,numeric;并且支持多分组键,即用多个列作为 tag_id
    • MARS 存储引擎支持 merge scan 操作,可以通过合并方式来对已有数据做更新

4.2.0 发布介绍

  1. MARS 引擎再优化
    • 智能压缩算法上线,根据数据类型和特征判断是否启用压缩。使用新编码压缩后,存储占用空间下降 70%。
    • 查询性能提升,基于时间戳排序的特定查询,时延下降千倍,从秒级降到“毫秒级”。
    • 查询内存使用量大大的降低,SELECT 语句,内存使用率下降 90%。
  2. MatrixGate 支持 UPSERT,适用于如下场景(使用方法请参考文档):
    • 设备可能重复发送数据或更正错误时序数据
    • 不同类别的指标数据分批发送,实现自动合并
  3. 冷热分级转换支持归并压缩:为方便用户在分区表做热转冷的数据转换,可以将多个分区表合并到一起。一来能降低分区管理的压力,也利于 DBA 进行维护。使用方法请参考文档
  4. 并行备份恢复“工具”首度公开亮相:YMatrix Database 隆重推出 mxbackup 和 mxrestore 两大工具,相比继承自 PostgreSQL 的 pg_dump 和 pg_restore,支持并行处理,备份恢复效率更高。使用方法请参考文档

4.1.0 发布介绍

  1. 新增 mxkv 用户自定义数据类型做 kv 存储,方便扩展附加字段,相比 JSON 类型性能更好
  2. 支持 Kafka 数据接入和图形化操作界面
  3. 提供分区自动化管理函数。用户可以自定义分区策略,后台进程自动完成分区管理

4.0.3 发布介绍

  1. 增加多机安装可视化部署
  2. 修复 MARS 增加分区的 bug

4.0.2 发布介绍

  1. MARS 压缩默认启用
  2. 升级后 supervisor.conf 平滑过渡
  3. gapfill 并行优化

4.0.1 发布介绍

  1. 修复 build_timeseries_table 时未对列名做转义的 bug
  2. MARS 引擎优化与 bug fix

4.0.0 发布介绍

YMatrix Database 4.0.0 已正式发布,新版包括如下新特性:

1 MARS 引擎

MARS 引擎是自研的存储引擎。该引擎包含如下特性:

  1. 列式存储
  2. 数据编码和压缩
  3. 聚集下推优化
  4. 无索引扫描的优化

在时序场景中,适合存储历史冷数据,基于时间戳的聚集查询性能极高。

MARS 目前只支持插入,不支持更新和删除。

2 多节点自动化部署

在 YMatrix Database 3系统单节点自动化部署的基础上,实现了多节点自动化部署。包括:

  1. 添加集群节点
  2. 配置每个节点 segment 数量
  3. 配置是否启用数据自动镜像

只用不到 5 分钟,即可部署好一个集群。

具体使用方法请参考YMatrix Database 4集群部署

3 冷热分级存储 UDF

为方便用户为时序表建立分区、维护分区表、冷热数据转换,实现了关于创建分区模板、建立分区、替换冷热分区的一整套管理接口。

具体使用方法请参考冷热分级存储

4 time_bucket_gapfill

时序组件 MatrixTS 中,在 time_bucket 函数基础上,增加了 time_bucket_gapfill 函数。可以为缺失的时间间隔按照规则填充。

目前支持两种填充规则:

  1. locf:用聚合组中之前出现的值填充
  2. interpolate:对缺失的值做线性插值填充