问题标签 [datomic]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5788 浏览

clojure - Datomic 与 Neo4j 相比如何?

我正在考虑将 Neo4j 集成到我正在构建的 Clojure 系统中。我被问到的第一个问题是为什么我不使用 Datomic。有人对此有很好的答案吗?我听说过并看过有关 Datomic 的视频,但我对图形数据库的了解还不够,无法了解 Neo4j 和 Datomic 之间的区别,它对我有什么影响?

0 投票
1 回答
2166 浏览

postgresql - 存储后端如何影响 Datomic?

我应该如何选择 Datomic 的后端存储服务?

选择 DynamoDB 而不是 Postgres 是偏好问题,还是每个选项都有不同的权衡?如果是这样,它们是什么?

0 投票
2 回答
1137 浏览

datomic - Datomic:你能说出它处理时间的能力有哪些用例

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

0 投票
1 回答
494 浏览

macros - 以编程方式生成 Datomic 查询

应用

我想以编程方式生成以下形式的查询。

这些是收集一组预定义属性的相当标准的查询。

当前解决方案

我能做的最好的就是使用:in如下

但这为我提供了n每个实体的一组事实。真的我想收到一组长度向量,n+1其中n是指定属性的数量。我还希望元素的顺序能够反映给定属性的顺序。

程序化生成

因为 Datomic 查询是数据结构,所以我应该能够以编程方式生成它们。我发现这很困难有几个原因,这两个原因都源于我对宏的不熟悉

  1. 我怎样才能创建像?val1. 我可以映射?到一堆生成的字符串吗?

    (map ? value-strings)

  2. 领导'吓到我了。这不会阻止我的自动化代码运行,直到?x处理完元素之后?

或者,有没有更惯用的解决方案?

0 投票
1 回答
344 浏览

java - 如何在 Datomic 查询中使用 /?

这个查询

只返回四舍五入(到小数点后 0 位)的值?af,所以我不能添加 sth。像

到 :where 子句。

我已经尝试在查询中强制转换为各种类型,例如

但这只会影响结果类型,而不会删除舍入。

如果你知道一些事情并且有经验,那么我在 Datomic 方面还有很多(尤其是与类型相关的)问题。但是我还没有找到解决这个除法查询问题的解决方法(除了查询后除法),我真的希望它不是由于 Datomic 的早期开发阶段造成的。我猜是因为 Datomic 不支持 Ratio 类型,它们是四舍五入的,但小数点后几位会非常好。

我正在将 Datomic 与 Clojure 一起使用。

编辑我找到了一个解决方法,但是我仍然想知道为什么它是必要的。

解决方法:

  • 采用clojure.core//

    /li>

但我当然想知道哪个 / 被调用(在没有完全限定的命名空间的情况下调用)以及在哪里可以找到它的文档,以便我可以了解其他运算符的其他可能问题。

EDIT2:通过设计一个除以零的查询来调用异常,我发现clojure.lang.Numbers/quotient调用了静态方法。我怎么会知道这个?看起来 Datomic 不是开源的,至少我在 jar 文件中找不到源代码。使用clojure.tools.traceon datomic.datalog,我发现调用是通过解析/from发生的datomic.extensions。在datomic.extions中,/定义为clojure.core/quot,它调用clojure.lang.Numbers/quotient

就我而言,所有这些都没有记录。

0 投票
1 回答
234 浏览

clojure - 我应该在 Datomic 上拥有多少个交易者?

或者为什么我想要的不仅仅是第一个交易者和第二个交易者?

0 投票
2 回答
350 浏览

clojure - 简单(st)Datomic 测试程序在退出时挂起

以下程序从 überjar 运行时,仅在使用内存中 Datomic 数据库时才退出;当连接到 Datomic 服务器时,它会无限期挂起而不是退出 JVM:

运行为:

输出:

并挂起。仅当程序启动时数据库不存在时才会挂起。

有谁知道为什么,或者如何解决?这适用于datomic-free-0.8.4020.26datomic-free-0.8.3941

更新——上述程序确实终止了,但需要很长时间(> 1 分钟)。我想知道为什么。

0 投票
1 回答
91 浏览

clojure - 参考和速度

?cat在给定的意义上,引用是双向的?person[?person :pet ?cat]

或者我应该在另一边手动构建一个引用(例如为宠物设置一个属性)以防止在所有具有s:owner的 s 中进行线性搜索??person:pet

0 投票
3 回答
611 浏览

clojure - 如何列出所有用户创建的属性?

我尝试使用下面的代码查找所有用户创建的属性,它返回许多其他默认属性,例如db/uniquefressian/tag.

我想得到一个没有它们的集合,所以我想知道是否有比通过前缀过滤属性更好的方法来获取它。

谢谢

或者

0 投票
1 回答
1355 浏览

datomic - Datomic:稳健的设置,以避免超时和内存不足错误

我在具有不同内存量(1GB - 16GB)的各种体系结构上运行相同的 datomic 支持的应用程序。当我批量导入数据时,我经常遇到超时或内存不足错误。

在查看了文档后,我偶然发现了这个有用的文档(和这个),它似乎概述了在大量导入下获得良好性能的最佳实践。

我对性能的兴趣不如使导入“正常工作”的兴趣。这导致了我的主要问题:

确保任意大的导入过程在给定机器上终止的最低复杂度配置是多少?

我知道这个配置可能是我可用内存的一个函数,这很好。我也明白它可能不是最高性能;这也很好。但我确实需要知道它会终止。