问题描述
我有一个功能库(存储为 Parquet 文件),我目前在想要进行更改时会完全覆盖它,例如添加新功能。我想保留它的历史备份以实现可重复性,我想知道使用 Delta Lake 进行备份是否有意义。 特征存储的模式很简单
entity: string | feature_1: any | feature_2: any | ...
起初我想添加一个 created_at
列来指示我何时写入功能存储,然后我可以在该列上对其进行分区(因此我会从最新的分区中读取但其他分区可用作为备份),但据我所知,parquet 中的所有分区都必须具有相同的架构,这意味着添加新列将需要覆盖所有不包含它的旧分区,这会非常慢。
相反,我认为我会使用 Delta Lake,因为似乎如果我关闭模式强制,我可以继续“覆盖”同一个 delta Lake 表,这将允许我尽可能多地扩展我的模式并且是能够回滚到早期版本。
在 delta 湖上执行模式进化比在镶木地板上执行模式进化更便宜吗?还是我的理解有偏差?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)