数据库作为 Datomic 中的值与 Cassandra 中的双时态索引有何不同?
What's different about Database as a Value in Datomic vs BiTemporal Indexes in Cassandra?
某个时间点的 Datomic database has the concept of 'Database as a Value'. This means that you can get a reference to the database - 并对其进行查询。
看来 BiTemporal Indexes in Cassandra 做的事情几乎相同。
我的问题是:数据库作为 Datomic 中的值与 Cassandra 中的双时态索引有何不同?
这两个概念非常相似,因为它们允许您在特定时间点查询数据库。虽然有几点将它们分开:
- 时间查询是从头开始构建到 Datomic 中的,而它是 Cassandra 的插件。此外,使用 Cassandra,您将必须自己维护时间字段 - 该演示文稿中的插件仅有助于查询,而不是插入或更新。
"Database as a Value" 超出时间点查询范围。例如:
- 您可以在 Web 请求的中间件中获取数据库值,并将其传递给以下中间件和处理函数。这确保了在请求期间进行的所有查询自动保持一致——您可以根据需要进行任意数量的查询,而不必担心在读取事务中进行查询。您也许可以使用时间点查询来完成与这项工作类似的操作,但它在代码方面会更难看。
- 您可以 "what-if" 更新数据库值而不会对实际数据库产生任何影响。
某个时间点的 Datomic database has the concept of 'Database as a Value'. This means that you can get a reference to the database - 并对其进行查询。
看来 BiTemporal Indexes in Cassandra 做的事情几乎相同。
我的问题是:数据库作为 Datomic 中的值与 Cassandra 中的双时态索引有何不同?
这两个概念非常相似,因为它们允许您在特定时间点查询数据库。虽然有几点将它们分开:
- 时间查询是从头开始构建到 Datomic 中的,而它是 Cassandra 的插件。此外,使用 Cassandra,您将必须自己维护时间字段 - 该演示文稿中的插件仅有助于查询,而不是插入或更新。
"Database as a Value" 超出时间点查询范围。例如:
- 您可以在 Web 请求的中间件中获取数据库值,并将其传递给以下中间件和处理函数。这确保了在请求期间进行的所有查询自动保持一致——您可以根据需要进行任意数量的查询,而不必担心在读取事务中进行查询。您也许可以使用时间点查询来完成与这项工作类似的操作,但它在代码方面会更难看。
- 您可以 "what-if" 更新数据库值而不会对实际数据库产生任何影响。