YMatrix 4.4 发布:无需写代码处理映射关系, JSON 轻松入表

2022-02-28 · YMatrix Team
#产品动态#博客

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 研发团队始终秉持对用户高度负责的态度,经过反复多次的迭代使产品日臻完善,期待以专业赢得用户的信任。