我正在对分布式数据库进行一些研究。我得出的结论是,最难的部分是分布式查询,在多条记录上,查询非常通用,例如想象一个带有“DateTransaction”字段的事务表。这个查询(伪 SQL)会很棘手:
SELECT * FROM Transactions
WHERE DateTransaction>= '2016-01-01' and DateTransaction<= '2017-09-01' --between jan 2016 and before sep 2017
ORDER BY DateTransaction DESC
OFFSET 0
FETCH 100 -- take records between 0 and 99 inclusive
为这样的查询手动滚动一个有点有效的解决方案;其中数据在 N 个节点上拆分;并不难。使用较大的 OFFSET 会有点困难,但无论如何都可能通过调整日期范围来完成分页。
但无论如何 - 我想避免用手滚动任何东西!我正在寻找一种第三方解决方案(最好是免费的),它可以让我在多个节点/机器上有效地执行该示例中的查询。原子性不是必需的。有谁知道从哪里开始?