datomic相关内容

存储后端如何影响 Datomic?

我应该如何选择 Datomic 的后端存储服务? 选择 DynamoDB 而不是 Postgres 是偏好问题,还是每个选项都有不同的权衡?如果有,它们是什么? 解决方案 存储服务要求 Datomic 的存储服务一般应满足 3 个要求: 实现键值存储语义:使用索引键的值进行高效的读/写访问 支持一致读取.例如阅读你自己的作品.理想情况下,无争用/无锁读取. 支持条件看 ..
发布时间:2022-01-15 17:16:42 其他开发

查找 ref-to-many 属性包含输入的所有元素的实体

假设我有实体 entry 和 ref-to-many 属性 :entry/groups.我应该如何构建查询以查找其 :entry/groups 属性包含所有我输入的外部 ID 的实体? 下一个伪代码将更好地说明我的问题: [2 3] ;将此作为输入外来 ID;;并在数据库中有这些条目实体[{:entry/id "A" :entry/groups [2 3 4]}{:entry/id "B" ..
发布时间:2022-01-02 23:20:55 其他开发

Datomic:具有“重置”操作的多对多关系模式

我正在寻找有关在Datomic中对某些关系建模的方法的反馈。 问题 假设我要为一个人在其中拥有喜欢的电影列表的域设计Datomic模式。例如, John 最喜欢的电影是 Gladiator , Star Wars 和 Fight Club 。 在Datomic中对此建模最明显的方案是基数很多属性,例如: #{[“ John”:person / favorite-movies ..
发布时间:2020-10-16 04:28:03 其他开发

如何用原子表示数据透视表(上面有额外的数据)?

我意识到我们不需要datomic中的普通数据透视表,因为我们可以选择关系的一侧,并在其上放置:db.cardinality / many 属性那里(请务必仅在一个方向上对 )。 我从sql转换时遇到的下一件事是数据透视表,该数据透视表还存储关系的属性,例如: series_subscriptions user_id int series_id int expires_at ..
发布时间:2020-10-02 22:04:18 其他开发

处理Datomic中存储的乱序消息?

背景 在分布式系统中,消息可能以乱序的方式到达。例如,如果在时间T1发送消息A,在时间T2发送消息B,则有可能在A之前接收到B。例如,如果A是消息,例如“ CustomerRegistered”,而B是“ CustomerUnregistered”,则这很重要。 在其他数据库中,如果收到数据库中不存在的客户的CustomerUnregistered,我通常会写一个墓碑。然后,当接收到C ..
发布时间:2020-10-02 21:56:20 其他开发

Clojure调用一系列函数并存储其返回值

我正在构建一个原子模式,并在 clj 文件的底部具有以下内容,该文件定义并处理模式和初始数据。每次调用下面被调用的函数 d / transact 。 (defn recreate-database [] “在bin / repl中运行delete-database后要重新创建db” (pt1-transact-schema) (pt1-transact-数据) (pt2-transact ..
发布时间:2020-10-02 21:56:16 其他开发

地理查询性能改进

在Datomic数据库中,我有一个与此相似的架构: ; ---租户 {:db / id#db / id [:db.part / db] :db / ident:tenant / guid :db / unique:db.unique /身份 :db / valueType:db.type / string :db / cardinality:db.cardinality / one ..
发布时间:2020-10-02 21:54:25 其他开发

Clojure RuntimeException-标签db / id没有读取器功能

在Clojure中遇到此错误时会发生什么情况? java.lang.RuntimeException:标记db没有读取器功能/ id 解决方案 标记文字 此错误消息与Clojure 1.7中引入的功能有关, 带标签的文字。标记文字是扩展 的一种简单方法,它可以在Clojure代码或 EDN中将哪些数据类型表示为文字 数据。 Clojure附带了带有 ..
发布时间:2020-10-02 21:23:21 其他开发

查找其ref-to-many属性包含输入的所有元素的实体

假设我有实体 entry ,且具有ref-to-many属性:entry / groups 。我应该如何构建查询以查找其:entry / groups 属性包含我所有输入的外国ID的实体? 下一个伪代码将更好地说明我的问题: [2 3];将其作为输入的外国ID ;;并将这些条目实体放入db [{:entry / id“ A”:entry / groups [2 3 4]} ..
发布时间:2020-10-02 21:11:37 其他开发

合格的恋爱关系

在关系数据库中,我可以有一个表Person和一个表Hobby.每个人都可以拥有零个,一个或多个爱好,我还想记录每个人对这些爱好的优先级. 我可以用两个外键PersonFK和HobbyFK以及一个普通列Priority创建一个关系表. 在原子论中,为了建模简单的n:m关系(无优先级),我可能会创建类型为Reference且基数为Many 的属性用于Person实体. 但是我将如何限 ..
发布时间:2020-05-05 13:11:23 其他开发

我如何在Heroku上使用Datomic Pro?

我想在Heroku上使用Datomic Pro(现在的Starter Edition)。但我不想将我的下载密钥提交到Git。相反,正确的做法似乎是将其存储在环境变量中。这意味着我的 project.clj 现在包含: :dependencies [[ org.clojure / clojure“1.5.1”] [com.datomic / datomic-pro“0.9.4707”]] ..
发布时间:2018-06-07 11:31:45 其他开发

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

我试图找到所有用户创建的属性与下面的代码,它返回许多其他默认属性,如 db / unique 和 fressian /标签。 我想得到一个没有他们的集合,所以我想知道是否有一个更好的方式来获得它比过滤出属性的前缀。 p> 感谢 (q {:find'[?ident] :where'[[:db.part / db:db.install / attribute?p] [?p:db ..
发布时间:2016-11-27 22:06:35 其他开发语言

在Datomic中使用事件时间而不是事务时间?

背景 我使用Datomic存储由其他系统生成的事件的投影(在这种情况下,投影可以被视为实体在Datomic)。这些事件具有与它们相关联的时间戳,用于告知事件何时(例如)创建。这显然不同于在投影中存储新属性(基于事件)时Datomic将分配给事务的事务时间。我的应用程序的用户对事务时间不感兴趣,而是事件时间。我首先使用Datomic的原因是为了能够获得一个实体(或查询数据库),因为它在特定的时 ..
发布时间:2016-11-27 20:23:29 其他开发语言

如何处理一个库中的变量需要在它外面设置?

我在几个项目中使用Datomic,现在是时候把所有的公共代码移动到一个小的实用程序库。 一个挑战是处理大多数操作所依赖的共享数据库 uri ,但必须设置该项目使用库。我想知道是否有一个完善的方法来做到这一点。以下是我想到的一些替代方案: 删除 uri 通过 alter-var->变量修改 root $ / $> 在动态库中保存它 * uri * 并覆盖希望的小适配器层中的值 ..
发布时间:2016-11-27 20:05:25 其他开发语言

lein REPL服务器启动超时

在基于解放者的clojure项目中,我们使用数据库作为DB。将我们的本地dev数据库迁移到S3托管的一个,并添加所需的依赖项在我们的project.clj我们不能启动REPL,但Liberator堆栈运行良好通过 lein run 我的猜测是数据库连接是搞乱了,所以,问题是,我怎么能“调试”或弄清楚这是什么的原因 lein repl 超时? 我的project.clj (defp ..
发布时间:2016-11-27 19:55:36 其他开发语言

建模数据中的多个多对多关系

也许我仍然在思考sql,但我无法编写一个简单的博客的数据库模式。 我不太理解:db / cardinality 属性及其含义。 系统支持多个用户 每个用户可能有许多用户 每篇文章可能有许多评论 每个评论都有一个用户 解决方案 查看下图并在 https://gist.github.com/a2ndrade/5651419 。它可以帮助您了解如何在Datomic中建模数据 ..
发布时间:2016-11-27 19:11:31 其他开发语言