哪个NoSQL数据库可以提供对查询结果集的 更改 流?
有人可以指出一些例子吗?
首先,我认为没有SQL数据库提供此功能-我正确吗?
我需要能够指定任意的,简单的查询,这些查询在SQL中可能等效为:
SELECT * FROM accounts WHERE balance < 0 and balance > -1000;
我想要一个初始结果集:
id: 100, name: Fred, balance: -10 id: 103, name: Mary, balance: -200
但是然后,我希望一直跟随着一系列的变化,直到停止它们:
meta: remove, id: 100 meta: add, id: 104, name: Alice, balance: -300 meta: remove, id: 103 meta: modify, id: 104, name: Alice, balance: -400 meta: modify, id: 104, name: Alison, balance: -400 meta: add, id: 101, name: Clive, balance: -200 meta: modify, id: 104, name: Alison, balance: -100 ...
注意:我 不是 在谈论大型结果集的流式传输。我正在寻找变化的软实时流。
另外,如果可能,它需要向外扩展。
谢谢,
克里斯。
尽管已经接受了一个答案,但是还有另一个答案成为您问题下方假设的核心。
与获取数据更改列表有关的业务问题是什么?如果您不仅收到了数据更改列表,还收到了一系列事件,告诉您数据 为什么 以及如何更改,该怎么办?
这个概念是“ CQRS”作为体系结构背后的根本原因之一。基本上,您存储导致数据发生更改的所有事件,例如FundsDeposited,FundsWithdrawn等,并且您可以“重播”这些事件,不仅发现数据随时间的变化,还发现原因。
一旦走上这条路,您就可以将事件存储为流,并且不再局限于少数几个存储引擎。相反,您实际上可以使用任何存储引擎,它将完成工作。