结构流作业减慢

自动压缩元数据文件夹可减慢结构流作业

写由gopinath.chandrasekaran

2022年10月28日

问题

运行一系列结构流作业并写文件槽第10次运行似乎比前一作业慢

因果

文件槽创建spark-metadata文件夹目标路径元数据文件夹存储每批信息, 包括文件批量需要它来提供文件汇流完全一致保证默认时,十批中前九批数据文件压缩成单文件/ /data/_spark_metadata/9.compact .

求解

有三个可能的解决方案选择最适合你状况的

  • 选项1:在生成环境内缓解问题,最小代码修改,但保留较少元数据
  • 选项2:推荐可切换Delta表这是一种良好的长期解决办法
  • 选项3:建议管道不要求完全单词或下游处理重复

选项1:短期元数据保留时间

元数据文件夹随时间变大默认宽放输出文件最长保留时间超过保留段的文件自动排除,从而限制元数据文件夹中文件数更少文件元数据文件夹表示压缩耗时更少

设置保留段时写流数据Frame到文件槽

ython检验点=
          
           目标路径=
           
            保留区=
            
             '#您可以提供值字符串格式 时数或日数举个例子 12h7d默认df.writeStream.format(json').mode
            
           
          
删除

信息学

保留定义输出文件直播时间输出文件前TTL范围从元数据日志中排除尝试阅读水槽输出目录不会处理比TTL范围老的文件

选项2:使用三角洲表作为汇

三角洲表不使用spark_metadata文件夹提供完全一致语义

详情请审查Delta表使用汇文档AWS系统|休眠|GCP)

选项3:使用分页批量

分页批量不创建spark_metadata文件夹写入水槽

删除

警告

完全自发语义不支持分页批量.唯一使用分页批量确定您的应用程序不要求一式语义

写入三角洲表时可忽略此警告 。

文章有帮助吗