spark/samza/storm可以取消过去的提交并重新生成视图吗?

ar7v8xwq  于 2021-06-21  发布在  Storm
关注(0)|答案(0)|浏览(202)

我只是看着把数据库翻过来,注意到samza和redux之间有一个相似之处:所有状态都由一个不可变对象流组成。
这使我意识到,如果在事后编辑流,理论上可以根据新的事务列表重新生成所有物化视图,实际上“撤消”对数据库的过去更改。
例如,假设我有以下一系列的差异:

1. Add user "tom"
2. Add user "bob"
3. Delete user "bob"
4. Change user "tom"s name to "joe"
5. Add user "fred"

经过这一系列更改后,我们的数据库看起来像:

+-------+
| users |
+-------+
| joe   |
| fred  |
+-------+

如果我想撤销数字“3”呢?我们的新差异集将是:

1. Add user "tom"
2. Add user "bob"
4. Change user "tom"s name to "joe"
5. Add user "fred"

以及我们的数据库:

+-------+
| users |
+-------+
| joe   |
| bob   |
| fred  |
+-------+

虽然这在理论上听起来不错,但实际上可以使用samza、storm或spark来实现吗?任何事务流数据库都能做到这一点吗?出于管理目的,我对这种功能感兴趣。我有一些网站,客户不小心删除了一名员工或修改了他们无意中删除的记录。在过去,我通过创建一个单独的表来解决这个问题,该表记录了对数据库的所有更改,然后当出现问题时,我可以(手动)查看该表,找出他们做错了什么,并(手动)修复数据。
如果我只看一个事务流,删除坏的事务流,然后说“重新生成数据库”,那就酷多了

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题