我只是看着把数据库翻过来,注意到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来实现吗?任何事务流数据库都能做到这一点吗?出于管理目的,我对这种功能感兴趣。我有一些网站,客户不小心删除了一名员工或修改了他们无意中删除的记录。在过去,我通过创建一个单独的表来解决这个问题,该表记录了对数据库的所有更改,然后当出现问题时,我可以(手动)查看该表,找出他们做错了什么,并(手动)修复数据。
如果我只看一个事务流,删除坏的事务流,然后说“重新生成数据库”,那就酷多了
暂无答案!
目前还没有任何答案,快来回答吧!