前言
数据的加载速度在数据处理和分析领域一直是一个挑战,为应对这一挑战,YMatrix 数据库开发了 mxgate 高速数据加载工具。最近,随着 YMatrix 5.0 的 GA,新版 mxgate 与上一版本(4.8.1)相比,速度提升了一倍;而与 4.8.0 版本相比,加载速度又提升了三倍。
本文将对 mxgate 进行介绍,特别是关注 mxgate 的性能提升和应用场景。如果您需要一个强大的数据加载工具,那么 mxgate 绝对值得您关注。接下来,我们将就其性能提升和应用场景两方面进行详细讨论。
作者:数据库内核研发工程师 张伟晨
应用场景
MatrixGate 是 YMatrix 数据库的高速数据加载工具,能帮用户快速地将数据落盘到数据库。其主要特点包括:
-
高速加载:mxgate 能够快速地将数据加载入库,并通过一定的压缩手段突破带宽限制达到极高的吞吐;
-
多种数据格式:mxgate 支持多种数据格式,包括但不限于 text, csv, json, hana 等,用户可以根据需求选择合适的数据格式;
-
多种数据源:mxgate 支持多种数据源,包括但不限于 http, kafka, stdin 等,用户可以根据需求选择合适的数据源。
性能提升
从 stdin 加载是 mxgate 的经典场景。虽然 mxgate 的数据加载速度在业内一直遥遥领先,罕逢对手,但是本着孜孜以求,追求极致的工匠精神,我们试图去探测数据加载的极限。经过多次测试,我们定位到数据写入和清洗模块消费能力是足够的,stdin加载场景的瓶颈在数据源模块上,因此在最近的两个版本(5.0与4.8.1)中,我们致力于加快 stdin 模式的入库速度,在以下两个方面做了多阶段优化:
2.1 并行切块
为方便数据清洗,得到一个合适的事务大小,我们会将数据流切块。同时,mxgate 的数据输入为文本模式,这意味着我们 parse 数