问题
数据添加到三角洲表上,但数据无警告即消失无明显的报错消息
因果
万事大吉spark.databricks.delta.retentionDurationCheck.enabled设为虚伪并Vacoum配置保留0小时
sqlVACUM保留0小时
OR系统
sqlVACUM三角洲保留0小时
何时Vacoum配置保留0小时它可以删除非正吸尘版部分文件包括委托文件、非委托文件以及并行事务临时文件
考虑下示例时间轴 :
- Vacoum01:17UTC100版启动
- 数据文件命名
.snappy.parque - 101版验收时0点19分
- Vacoum仍在运行中删除数据文件
.snappy.parque - Vacoum01:22UTC补全
举此例子Vacoum百版执行并删除所有添加到101版
求解
- Databricks推荐设置Vacoum保留区间至少7天,因为同时阅读或写表者仍可使用老快照和未委托文件
- 不设置spark.databricks.delta.retentionDurationCheck.enabled虚构Spark配置
- if you do setspark.databricks.delta.retentionDurationCheck.enabledspark配置中虚选区间长比最长并行事务长 最长流可延后最新更新表