【问题标题】:Datomic: what use cases can you name of its ability to handle timeDatomic:你能说出它处理时间的能力有哪些用例
【发布时间】:2013-07-31 21:02:57
【问题描述】:

查看过去数据的能力似乎很有用,但我不清楚如何实际使用它。受益于此功能的领域有哪些?也许有一些众所周知的“时间性”用例?

【问题讨论】:

    标签: datomic temporal-database


    【解决方案1】:

    哲学

    列出所有域非常困难,而且并非完全有必要列出。如果您提供您认为 Datomic 的域,您的问题的答案会更有价值。

    我不认为时间只是历史或特征,而是一个自然维度,我们每天在所有领域“使用”它,无论它是否是软件。

    话虽如此,我可以想到两个我考虑和使用 Datomic 的领域:

    交易

    你可以看到华尔街的一种简化的工作方式和思考方式

    您在这里注意到的一件事:一切都与时间和“时间”有关。

    当需要任何类型的财务分析时,无论是对未来的预测还是针对当前的市场走势进行调整,基于时间的思维(阅读“查询、设计、用户界面等”)不仅至关重要,而且很自然.

    每个人都使用位、0 和 1,您归档思维的方式可能有很多,但如果这些位已经按照您告诉他们的方式组织起来“给我展示从 X 时间到 Y 时间的报价,然后将它们切片通过在此时间间隔内发生的交易,并向我展示之前交易过的公司......”这些位只是了解您并提供该数据是一个巨大的胜利。 (与拥有自己的实现相比)。另一个有趣的预测用途是 Datomic 的“with

    身份

    每个人的身份都不同:驾照、护照、社会保险号、健身卡、信用卡、家庭住址等。这些的独特组合可以识别一个人,有时是一个家庭,有时是一个企业,或者有时是一群随机的人,等等。

    但有趣的是,这些 ID 会随着时间不断变化……不断变化。不仅总是通过“现在”任何这些 ID 来识别一个人/组是有用的,而且还只是需要能够返回,有时向前:“功劳是什么?这个人/企业的分数是他/它是否有这张信用卡(帐号)?”

    哲学

    虽然上面只是两个不相关且狭窄的领域,但它们是真实的。是的,您可以为所有数据库记录/文档/KV/列族/“什么不是”添加时间戳,但它会给您的只是:没有实际系统感知的“时间戳”的时间。 Datomic 确实给了你这种感觉。它的作用远不止于此,但这是另一个问题。

    【讨论】:

    • 谢谢,我同意世界的时间观要自然得多,我只是觉得在不积极使用历史记录的情况下它是多余的。
    • 域没有那么窄。这是一种关于数据库的新思维。我独立发明了同样的想法并试图推广。但是,不幸的是,人们不会用规模来思考。
    • 最终我来到了代码本身的日志驱动开发:一切都是日志。现在我明白我是对的:这是一种更多维度的思考,包括时间:-)
    【解决方案2】:

    我认为大多数对现实世界问题进行建模的系统都可以从 Datomic 提供的时间模型中受益,这仅仅是因为该模型更接近于现实世界中实际发生的事情。请参阅 Rich Hickey 的演示文稿:Deconstructing-Database

    更具体地说,任何需要版本控制或数据审计功能的应用程序都可以从 Datomic 的不变性中受益匪浅,因为这些功能本质上是内置的。有时这些功能是不错的功能,有时它们是强烈的要求(例如,对于银行应用程序)。

    【讨论】:

    • 但是对于银行应用来说,为每笔交易保存一个时间戳通常就足够了。查看以前的世界状态的能力可以在这里添加什么?如果数据历史不仅可以被视为存档而是更积极地使用,我也很感兴趣。
    猜你喜欢
    • 2020-04-06
    • 2011-01-12
    • 1970-01-01
    • 2013-01-18
    • 1970-01-01
    • 1970-01-01
    • 2013-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多