使用 Delta Lake 时间旅行来维护架构演变的数据备份

问题描述

我有一个功能库(存储为 Parquet 文件),我目前在想要进行更改时会完全覆盖它,例如添加功能。我想保留它的历史备份以实现可重复性,我想知道使用 Delta Lake 进行备份是否有意义。 特征存储的模式很简单

entity: string | feature_1: any | feature_2: any | ...

起初我想添加一个 created_at 列来指示我何时写入功能存储,然后我可以在该列上对其进行分区(因此我会从最新的分区中读取但其他分区可用作为备份),但据我所知,parquet 中的所有分区都必须具有相同的架构,这意味着添加新列将需要覆盖所有不包含它的旧分区,这会非常慢。

相反,我认为我会使用 Delta Lake,因为似乎如果我关闭模式强制,我可以继续“覆盖”同一个 delta Lake 表,这将允许我尽可能多地扩展我的模式并且是能够回滚到早期版本。

在 delta 湖上执行模式进化比在镶木地板上执行模式进化更便宜吗?还是我的理解有偏差?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)