开发者社区> 问答> 正文

MaxCompute中如何避免使用各种数据集成工具产生小文件?

MaxCompute中如何避免使用各种数据集成工具产生小文件?

展开
收起
芯在这 2021-12-13 00:09:00 820 0
1 条回答
写回答
取消 提交回答
  • 1、Tunnel->MaxCompute

    使用Tunnel上传数据时避免频繁commit,尽量保证每次提交的DataSize大于64M,

    2、Datahub->MaxCompute

    如果用Datahub产生小文件,建议合理申请shard,可以根据topic的Throughput合理做shard合并,减少shard数量。可以根据topic的Throughput观察数据流量变化,适当调大数据写入的间隔时间。

    申请Datahub shard数目的策略(申请过多的datahub shard将会产生小文件问题)

    1)默认吞吐量单个shard是1MB/s,可以按照这个分配实际的shard数目(可以在此基础上多加几个);

    2)同步MaxCompute的逻辑是每个shard有一个单独的task(满足5分钟或者64MB会commit一次),默认设置5分钟是为了尽快能在MaxCompute查到数据。如果是按照小时建partition,那个一个shard每个小时有12个文件。如果这个时候数据量很少,但是shard很多,在MaxCompute里面就会很多小文件(shard*12/hour)。所以不要过多的分配shard,按需分配。

    参考建议:​​如果流量是5M/s,那么就申请5个shard,为预防流量峰值预留20%的Buffer,可以申请6个shard。

    3、DataX->MaxCompute

    因为datax也是封装了tunnel的SDK来写入MaxCompute的,因此,建议您在配置ODPSWriter的时候,把blockSizeInMB这个参数不要设置太小,最好是64M以上。

    2021-12-13 00:09:31
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Flink CDC:新一代数据集成框架 立即下载
DataWorks数据集成实时同步最佳实践(含内测邀请)-2020飞天大数据平台实战应用第一季 立即下载
《DataWorks 数据集成实时同步》 立即下载