【发布时间】:2019-09-21 04:53:39
【问题描述】:
我尝试从同一个增量表进行流式传输和批处理,但在批处理端遇到了小文件问题。但是,如果您优化 delta 表,则流大小将丢失它读取的文件,因为优化的压缩结果。
【问题讨论】:
-
Databricks 使用
AtomicCommitProtocol。运行优化应该不是问题。
标签: apache-spark spark-streaming databricks
我尝试从同一个增量表进行流式传输和批处理,但在批处理端遇到了小文件问题。但是,如果您优化 delta 表,则流大小将丢失它读取的文件,因为优化的压缩结果。
【问题讨论】:
AtomicCommitProtocol。运行优化应该不是问题。
标签: apache-spark spark-streaming databricks
当OPTIMIZE 命令删除小文件并添加回压缩文件时,这些操作会被标记为dataChange 标志设置为false。该标志告诉跟随事务日志的流可以安全地忽略该事务以避免处理重复数据。
我还会注意到DBR 5.3 包含一个称为自动优化的私人预览功能,它可以在小文件进入表之前执行此压缩。此功能将在 DBR 的下一版本中进行 GA 化。
【讨论】: