DataWorks 又又又升级了,这次我们通过 Arrow 列存格式让数据同步速度提升10倍!

引言

在大数据时代,数据集成作为企业数据流转的核心枢纽,承担着异构数据源之间高效同步的重要职责。随着数据量的爆炸式增长,传统的行存同步方式在面对大规模列存数据处理时,逐渐显露出性能瓶颈。

为解决这一挑战,DataWorks数据集成推出基于Apache Arrow列存格式的高性能同步能力,实现从"行式传输"到"列式直通"的技术跃迁。通过引入零拷贝、列式内存标准Apache Arrow,DataWorks实现了跨数据源的列存到列存高效同步,性能提升最高达10倍以上,助力企业实现数据流转的"高速通道"。

技术创新:基于Arrow的列存同步方案

Apache Arrow:下一代数据处理的"通用语言"

Apache Arrow是一项由Apache基金会主导的跨语言、高性能列式内存数据标准,被广泛应用于大数据生态(如Spark、Flink、Presto等)。核心优势在于:

  • 零序列化/反序列化:数据以内存二进制块直接传输,避免格式转换开销

  • 零拷贝(Zero-Copy):跨进程/跨系统共享内存,极大降低CPU与内存消耗

  • CPU缓存友好:列式存储提升缓存命中率,优化计算效率

  • 统一类型系统:支持复杂嵌套结构,保障跨平台类型兼容性

简单来说:Arrow让数据"原样流动",不再"反复翻译"。

传统架构 vs Arrow架构:从"搬砖"到"高速专列"

当前大多数数据集成工具仍基于"行存驱动"设计:

  • Reader读取列存文件 → 解码成单行Record对象;

  • 框架传递Record → Writer再将其编码回目标列存格式。

这一过程存在严重性能浪费:

  • 多次类型转换与对象创建(如String → BigDecimal)

  • 高频GC压力导致频繁Stop-The-World

  • 内存带宽利用率低下

而Arrow则彻底改变了这一流程:Reader直接输出列式Batch → Writer直接消费列式Batch,中间无需任何转换,真正实现"端到端列式流水线"。

传统行存同步架构:

面向单行行存的格式设计,每一个Record对象定义了若干个Column,每个Column包含当前行对应该列的列值Value。以MaxCompute(ODPS)列存数据同步到MaxCompute(ODPS)列存为例:

MaxCompute表数据可能以ORC、Parquet等列存格式存储的数据,同步核心流程分为:

  1. 通过MaxCompute Tunnel将数据按行读取出来,并转为MaxCompute Record对象;
  2. MaxCompute Reader将MaxCompute Record转换为同步引擎的Record对象,投递给框架;
  3. 框架收到Record放入缓存队列;
  4. Writer从框架接收引擎Record,再转换为MaxCompute Record,并通过Tunnel client将数据进行序列化后通过网络传输给Tunnel server。

数据集成Arrow列存同步架构:

当列存到列存同步场景下,将列存先转为行存格式,再将行存格式转为列存格式,中间多了不必要的转换及序列化操作。通过构建全新的 ArrowTabularRecord 数据结构,DataWorks实现了对Arrow列式数据的原生支持,跳过行式转换环节,实现端到端列存"短路同步",大幅提升吞吐、降低延迟。

同步引擎基于新的面向Arrow列存格式的ArrowTabularRecord,列存到列存数据流转如下:

同步核心流程如下:

  1. 通过MaxCompute Tunnel Arrow API将数据直接按照Arrow列存格式读取出来,并存入ArrowTabularRecord,投递给框架;

  2. 框架收到Record放入缓存队列;

  3. Writer从框架收到引擎ArrowTabularRecord,直接通过Tunnel Arrow API将数据基于Arrow格式,省去做序列化的开销,直接将内存二进制数据传输给Tunnel Server。

核心能力:全链路列式加速,支持主流数据源

DataWorks数据集成现已全面支持 MaxCompute、Hologres、Hive/OSS/HDFS(Parquet/ORC) 等主流列存数据源的Arrow读写能力,用户仅需在任务配置中添加 "useArrow": true 即可一键启用。

列存直读直写,显著提升性能

数据源 支持能力 同步性能提升
MaxCompute 通过Tunnel Arrow API直读列存数据 同步性能提升 200%
Hologres 支持Arrow格式导出,避免JDBC行式瓶颈 同步性能提升 95%
Hive\OSS\HDFS等分布式文件 直接读取Parquet/ORC底层Arrow格式数据 PARQUET同步性能提升5.55倍 ORC同步性能提升 9.85倍

示例:Hive ORC → MaxCompute 写入,原需数小时的任务,现可在数十分钟内完成。

性能压测报告

我们对多个典型场景进行了端到端性能测试,同步性能显著提升,可实现从小时级到分钟级的数据同步周期提升:

场景一:MaxCompute列存短路同步(Arrow → Arrow)

并发数 传统行存 Arrow列存 性能提升
1 67.8 MB/s 3740 R/s 212.6 MB/s 11462 R/s +206.5%
3 185.6 MB/s 10226 R/s 569.9 MB/s 30728 R/s +200.5%
8 462.1 MB/s 25467 R/s 1321.0 MB/s 71143 R/s +197.4%

场景二:Hologres → MaxCompute 同步

并发数 传统同步 Arrow同步 性能提升
4 439.1 MB/s 216480 R/s 906.1 MB/s 404270 R/s +87%
8 773.3 MB/s 381300 R/s 1669.1 MB/s 745654 R/s +95%

场景三:Parquet/ORC → MaxCompute 同步

并发数 传统同步 Arrow同步 性能提升
Parquet 26.1 MB/s 35631 R/s 1198.1 MB/s 233587 R/s 5.55倍
ORC 21.4 MB/s 27661 R/s 3256.3 MB/s 300326 R/s 9.85倍

备注:Parquet、ORC文件可以在HDFS、OSS等分布式文件系统中

核心优势:不止于快,更稳、更低成本

特性 价值说明
高性能 吞吐量提升最高达10倍,适合宽表、大数据量搬站同步
低资源消耗 零拷贝 + 内存复用,降低GC压力,节省计算成本
高兼容性 支持MaxCompute、Hologres、Hive等主流列存系统
易用性 仅需配置useArrow: true,无需代码改造

典型应用场景:释放数据流转的无限可能

场景一:大数据搬站迁移

痛点 :从Hive向MaxCompute迁移数百TB数据,耗时较久,影响业务上线 方案 :启用Arrow同步,列存直传,避免格式转换 成果 :迁移时间从小时级同步缩短至分钟级 ,效率提升10倍以上

场景二:异构数据源融合与湖仓一体化

支持Hive(湖)与Hologres/MaxCompute(仓)之间的列存高效互通,为数据湖仓一体架构提供核心数据流转引擎,实现"一数多用、湖仓协同"。

如何使用?一步开启Arrow加速

整库解决方案

数据集成已经发布Hive->MaxCompute整库同步功能,默认会自动根据同步字段类型,渲染开启Arrow高性能同步能力。

💡 无需代码改造,无需理解底层细节,一键开启高性能同步

单表离线同步

DataWorks数据集成单表离线任务,在reader和writer parameter下添加 useArrow: true 参数,即可开启列式加速(由于是列存格式直读直写,开启前提是需要保证源端和目标端列类型保持一致):

json 复制代码
{
  "type": "job",
  "steps": [
    {
      "stepType": "hive",
      "parameter": {
        "useArrow": true,
        "datasource": "my_datasource",
        "column": [
          "col1",
          "col2"
        ],
        "readMode": "hdfs",
        "table": "table"
      },
      "name": "Reader",
      "category": "reader"
    },
    {
      "stepType": "odps",
      "parameter": {
        "useArrow": true,
        "truncate": false,
        "datasource": "odps_test",
        "column": [
          "col1",
          "col2"
        ],
        "table": "table"
      },
      "name": "Writer",
      "category": "writer"
    }
  ],
  "setting": {
    "speed": {
      "concurrent": 3
    }
  }
}

未来演进:构建更强大的数据同步生态

DataWorks将持续深化Arrow能力,打造企业级高性能数据流转平台:

  • 更多数据源支持:扩展至HDFS、Paimon、ClickHouse、Iceberg等;

  • 智能调度优化:根据数据特征自动选择Arrow或行式模式;

  • 生态融合:为DataWorks数据搬站,提供端到端数据解决方案

结语:让数据真正高性能"跑"起来

DataWorks数据集成引入Apache Arrow列存同步能力,列式、零拷贝、内存级传输为同步性能带来显著提升。DataWorks数据集成正以技术创新为引擎,帮助企业打破数据孤岛、消除性能瓶颈,让数据在湖仓之间、系统之间、业务之间高速、稳定、低成本流动。

相关推荐
做科研的周师兄2 小时前
中国土壤有机质数据集
人工智能·算法·机器学习·分类·数据挖掘
IT一氪2 小时前
一款 AI 驱动的 Word 文档翻译工具
人工智能·word
lovingsoft2 小时前
Vibe coding 氛围编程
人工智能
百***07452 小时前
GPT-Image-1.5 极速接入全流程及关键要点
人工智能·gpt·计算机视觉
yiersansiwu123d2 小时前
AI二创的版权迷局与健康生态构建之道
人工智能
Narrastory2 小时前
拆解指数加权平均:5 分钟看懂机器学习的 “数据平滑神器”
人工智能·机器学习
SelectDB2 小时前
慢 SQL 诊断准确率 99.99%,天翼云基于 Apache Doris MCP 的 AI 智能运维实践
数据库·人工智能·apache
王中阳Go2 小时前
05 Go Eino AI应用开发实战 | Docker 部署指南
人工智能·后端·go
腾讯云开发者2 小时前
当10年架构师拿起AI:不是写不动了,是写得太快了
人工智能