Delta Lake 修改分区表的表结构

Delta Lake 将数据从oracle 转移到hdfs上后,有时需要修改表结构,可能之前导的字段无法满足目前的需求,需要新增字段,而如果单纯新加入字段到代码中会提示错误,因为之前存储存储的表结构中没有记录新增的字段,导致不管是insert 还是 merge 都会失败。

这个时候,想到的办法就是 在一个不存在的分区中修改表结构,覆盖整个表结构。


当发现 新导入的结果的表结构和当前的表结构不一致后,开始新增 新添加的字段名称和类型,

然后将这个结果 filter 一个不存在的分区,也就是空分区,执行 append操作。

当然操作中需要加入 mergeSchema 和 overwriteSchema 。保证覆盖表结构不会异常。

等这个操作完成之后,再执行 正常的数据合并就没有关心了。

不过美中不足的是 ,Delta lake 只能 新增表结构而不能删除表结构。