Uber 如何加速 Spark:从查询计算,优化到数据写入 来自 Uber Engineering 分享的两条 Spark 加速路线:Gluten/Velox 已用于部分生产任务,Quanton 则...
meng shao(@shao__meng) · 人工智能
Uber 如何加速 Spark:从查询计算,优化到数据写入 来自 Uber Engineering 分享的两条 Spark 加速路线:Gluten/Velox 已用于部分生产任务,Quanton 则进一步优化湖仓数据写入。后者在实验室测试中取得约 4.7—5.5 倍的稳态写入加速,但尚不能等同于生产收益。 # 为什么只加速 SQL 不够 Spark 是大规模数据处理引擎。Uber 仅将数据摄入湖仓,就需要超过 20 万个 CPU 核,因此小幅效率提升也可能带来可观收益。 问题在于,工作不只是执行 SQL,还包括读取旧数据、合并更新、写文件和维护表结构信息。Uber 约有 1.72 万张表使用 Hudi——一种支持数据湖增量更新的表格式,这些写入和维护环节同样需要优化。 # 两条路线有什么不同 Gluten/Velox 优化计算执行。 它将 Spark SQL 算子交给原生向量化引擎,一批数据一起处理,减少逐条执行的开销。Uber 报告,已迁移的生产负载运行速度约为原来的 3.5 倍,CPU 成本降至约 1/3.4。落地还涉及缺失功能补齐、兼容性和回退机制,并非直接替换即可。 Quanton 进一步优化数据读写。 这是 Onehouse 的商业 Spark 引擎,除向量化外,还针对湖表的读写、合并、索引和维护优化。虽然它支持 Hudi、Iceberg,Uber 本次只评测了 Hudi 写入路径,没有测通用 SQL 或读取性能。 # 关键结果该怎么看 相同计算资源配额下,Quanton 在插入为主的事实表上,稳态写入轮次的中位速度约为开源基线的 5.5 倍;更新为主的维表约为 4.7 倍。 但这些数字排除了周期性的元数据整理轮次;包含整理的轮次,加速约为 2.8 倍。收益也不均匀:数据表写入阶段约快 7.8 倍,去重和索引部分却略慢。 以上来自合成数据和受控集群。生产环境的正确性、兼容性、持续负载表现及故障恢复,仍需进一步验证。 Uber Engineering @UberEng x.com/i/article/2118… 🔗 View Quoted Tweet 💬 1 🔄 0 ❤️ 3 👀 354 📊 1 ⚡ Powered by xgo.ing