Delta写空文件时源为空

三角洲可写数据bricks运行7.3LTS下的空文件数据库运行时间9.1LTS或以上解决问题

写由拉杰夫康南Thangai

2022年12月2日

问题

Delta写出可生成空文件,如果源为空可用正规Delta写或市场化高山市AWS系统|休眠|GCP运维

流程序写目标三角洲表 源数据在某些微批量上为空 可能导致空文件写入目标三角洲表

避免向Delta表写空文件,因为它们可能引起性能问题(ex.太多小文件、多免责任等)如果发生高频承诺过多(或因高频事件大量流出和/或因低流触发频率配置),则可能导致目标三角盘表多出小文件太多小空文件可增加总列表时间,从而可能妨碍后续阅读性能

因果

写空文件在Databricks运行7.3LTS中已知问题空写创建附加文件以及Delta新版本

万万空写文件 可见千空文件生成 并随时间积存连表只有3个记录都可能导致几千个空文件,视写作频率如何实现而定。

举个例子,在这个Delta采样中NumExputRows华府市0,然而numTargetFilesAdded华府市一号.表示它添加了一个文件, 即便没有输出行 。

Operation - Write   {"numFiles":"1","numOutputBytes":"2675","numOutputRows":"0"} OperationParameters{"mode":"Append","partitionBy":"[]"}    Operation - Merge  {"numOutputRows":"0","numSourceRows":"0","numTargetFilesAdded":"1","numTargetFilesRemoved":"0","numTargetRowsCopied":"0","numTargetRowsDeleted":"0","numTargetRowsInserted":"0","numTargetRowsUpdated":"0"}

求解

数据库升级为Databricks运行911LTS或以上

Databricks运行时间9.1LTS以上包含问题修复并不再为空写创建空文件

删除

信息学

无法升级数据bricks运行9.1LTS或以上时,应定期运行OptimZE高山市AWS系统|休眠|GCP受创表清理空文件这不是永久修复方法,应视之为工作补丁,直到升级为新运行时间


文章有帮助吗