MatrixDB 4.4 已于今日正式发布。4.4 版本修复了过往大规模生产环境实践中遇到的性能和兼容性等问题,全面提升产品稳定性。
新版本有 3 个值得重点关注的特性:
-
MatrixGate 再升级:UPSERT 功能支持去重;新增“请求超时时间”和“入库超时时间”参数增强容错
-
Kafka 支持定制化数据接入,可以对所有支持的数据格式手动定制映射关系
-
表之间数据迁移支持并行处理,性能提升10倍
MatrixGate 优化升级
MatrixGate 在 4.4 版本做了 2 个升级:
UPSERT 支持去重
MatrixDB 在 4.2 版本新增了 UPSERT 功能,对于建立唯一索引的表,当新采集值的唯一键在库中已存在时,会用新值强行覆盖旧值。
在最新的 4.4 版本中,UPSERT 功能支持仅当旧值为 NULL 时才做更新,而不是粗暴的用新值去替代。
新增“请求超时时间”和“入库超时时间”参数增强容错
MatrixGate 是一款高性能数据接入工具,其内部并不存储数据,而是通过内存队列来将数据高效转发出去。所以,在队列消费端是否能及时将数据消费掉,是影响性能的关键。
实际场景中,偶尔会因为网络丢包等其他不可预测的原因,导致 INSERT 语句被阻塞,从而使队列消费暂停,新来的数据也无法插入队列。
在 MatrixDB 4.4 版本中解决这类型问题,增加了insert-timeout
参数,有效控制数据入库语句 INSERT 的超时时间,超过阈值后语句会被杀掉并重新执行。语句被杀掉后,会释放之前持有的所有锁和其他资源,从而规避了死锁等问题。该参数默认为0,即无超时,设置大于0的值生效,时间单位为毫秒。
另一个新增的超时参数是request-timeout
,当客户端的请求因为队列阻塞而长时间未完成时,会强行断开连接。再配置该参数后,客户端则无需做额外的超时处理。
Kafka 支持定制化数据接入
MatrixDB 4.4 版本,Kafka 数据接入新增 JSON 格式,可以对所有支持的数据格式手动定制映射关系。相比于之前需要源数据与目标表格式完全兼容,操作上更加灵活。
表之间数据迁移支持并行处理
在 MatrixDB 4.4 版本中,对于使用INSERT INTO ... SELECT
方式进行的表数据迁移,支持了扫描并行,性能提升 10 倍。
MatrixDB 开启了在分布式查询计划中,使用 PostgreSQL 支持的并行扫描的新特性,但在 PostgreSQL 中,该特性受限于INSERT INTO ... SELECT
语句。4.4 版本攻克了该限制,对于这种表数据迁移的语句,可以轻松使用 PostgreSQL 的并行扫描和启动多个 QE worker 两种方式来实现读取的并行。
MatrixDB 仍在快速演进,自 4.1 版本发布以来,为提高稳定性不断的在“捉虫”,在 4.4 版本进行了全面的优化,MatrixDB 研发团队始终秉持对用户高度负责的态度,经过反复多次的迭代使产品日臻完善,期待以专业赢得用户的信任。