一尘不染

哪个NoSQL数据库可以为查询结果集提供*更改*流?

redis

哪个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
...

注意:我 不是 在谈论大型结果集的流式传输。我正在寻找变化的软实时流。

另外,如果可能,它需要向外扩展。

谢谢,

克里斯。


阅读 227

收藏
2020-06-20

共1个答案

一尘不染

尽管已经接受了一个答案,但是还有另一个答案成为您问题下方假设的核心。

与获取数据更改列表有关的业务问题是什么?如果您不仅收到了数据更改列表,还收到了一系列事件,告诉您数据 为什么 以及如何更改,该怎么办?

这个概念是“
CQRS”作为体系结构背后的根本原因之一。基本上,您存储导致数据发生更改的所有事件,例如FundsDeposited,FundsWithdrawn等,并且您可以“重播”这些事件,不仅发现数据随时间的变化,还发现原因。

一旦走上这条路,您就可以将事件存储为流,并且不再局限于少数几个存储引擎。相反,您实际上可以使用任何存储引擎,它将完成工作。

2020-06-20