跳到主要内容

写入数据

MaxCompute Java SDK 提供了多种数据写入方式,适用于不同的业务场景。本文帮助您快速了解各方式的特点并选择最合适的方案。

写入方式对比

方式适用场景数据可见性事务性性能
Tunnel Upload批量导入提交后可见原子提交
Tunnel Stream实时写入flush 后可见非事务
Tunnel Upsert更新插入(Delta Table)flush 后可见行级
Storage API高性能写入配置决定可选最高

选型指南

按场景选择

  • 离线批量导入:选择 Tunnel Upload。支持原子提交,可确保数据要么全部可见,要么全部不可见,适合 ETL 作业和定期数据同步。

  • 实时/准实时写入:选择 Tunnel Stream。数据写入后 flush 即可见,无需等待 commit,适合日志采集、实时监控等场景。

  • 数据更新与删除:选择 Tunnel Upsert。针对 Delta Table(主键表)设计,支持按主键进行 insert/update/delete 操作,适合数据库变更同步(CDC)场景。

  • 超高吞吐写入:选择 Storage API。基于 Arrow 列式格式,支持批量和流式两种模式,提供最高的写入性能,适合大规模数据导入和高频写入场景。

按特性选择

需求推荐方式
需要原子性保证(全部成功或全部失败)Tunnel Upload / Storage API (Batch)
写入后立即可查Tunnel Stream / Tunnel Upsert / Storage API (Streaming)
需要更新或删除已有数据Tunnel Upsert
追求最大写入吞吐Storage API
多线程并行写入以上均支持
分区表动态分区写入Tunnel Stream(0.55.0+)

相关文档