出身背景
我们选择Cassandra作为我们的存储引擎,因为我们有一个应用程序,必须处理网站上许多用户之间的异步消息传递和事件存储(某些类型的分析,现场发生的事情以及何时发生等)。此外,我们有一个投票平台,所以我们每天为每个用户存储投票,Cassandra在这些用例中很好。
最近,我们有了在现有系统之上构建关系模型的新需求(至少我们认为它是关系的)。一些类型的政治候选人有工作、教育、历史投票、支持等名单。
问题
我们有可以在两端编辑的关系(即候选人由公司支持,但在我们的管理面板中,该公司可以在没有候选人的情况下进行编辑)。候选项是我们的卡桑德拉数据库中由 UUID 标识的一行。在前端,我们需要有关候选人的完整信息(政党,学校,工作,投票历史,支持公司)。我们希望将大部分候选信息放在一行中,以便我们可以通过一次读取来读取数据。但是,当我们放置支持公司UDT列表时,我们在编辑它时遇到问题(我们需要在company_by_id
中更改它,candidate_by_id
表)。
问题
在我们的情况下,如何解决编辑问题和关系模型问题?
我们想出了几个解决方案:
我们倾向于选择3,因为我们无论如何都会添加Spark,我们将只保留Cassandra数据库(这不会使维护和部署另一个数据库复杂化),并且我们可以在应用程序级别上获得某种JOINS和GROUP BY。
你觉得怎么样?
如果你只想使用cassandra,正确的方法是第一步:反规格化。但是如果你有很多关系,这将会在应用层面带来很多努力。如果在您的环境中添加另一个dbms不成问题,那么为正确的工作使用正确的工具是最好的选择:对我来说是第三个选择
问题内容: 再次出现这种情况时,我到处乱跑,我快要疯了。 我希望Python首先会分析所有文件,以便它从一开始就知道所有标识符(我认为就像Java一样)。 我有一个“ main.py”和一个“ gui.py”。每个文件都包含一个类,该类使用另一个文件中的类。当我尝试运行“ main.py”时,解释器导入“ gui”,然后在“ gui.py”中导入“ main”,然后处理整个main模块,并说:“
表模式如下: 表A的主键[ID1(分区键)id2(分区键)id3(群集键)] 表B主键[ID1(分区键)id2(分区键)状态(聚类键)id3(聚类键)] 那么在卡桑德拉我该怎么解决呢?
我试图使用Apache Spark来处理我的大型(230K条目)cassandra数据集,但我经常遇到不同类型的错误。然而,我可以成功地运行应用程序时,运行在一个数据集约200个条目。我有一个由3个节点和1个主节点和2个工作节点组成的spark设置,这两个工作节点还安装了一个cassandra集群,该集群的数据索引复制系数为2。我的两个spark workers在web界面上显示2.4和2.8GB
我对MongoDB中的多对多关系实现有一个特定的问题。 我收集了歌曲和艺术家的作品(数百万份文档)。在这里,这首歌可以被许多艺术家演唱,一个艺术家可以唱许多首歌。所以我在两个集合中都遵循了文档引用的方法。像这样... 1.歌曲集:- 2.艺术家收藏:- 但这里的问题是,在删除艺术家的同时,我必须从歌曲所有文档中的艺术家数组中删除一个艺术家,如果该文档中有艺术家,反之亦然。这会导致原子性问题。我如何
这样我就可以 但我的问题是,这对我来说并不合适--它看起来确实像是一种变通方法,而不是真正的Spring方式来实现这个需求。所以.. 我目前正在努力使用Spring的创建关系资源。我想创建一个新组,并将其与调用用户关联,如下所示: 但是唯一的结果是响应。我不知道为什么。这可能与我的另一个问题有关,也可能与我的另一个问题无关(请参见此处),我试图通过在JSON有效负载中设置相关资源来实现同样的问题-
问题内容: 让我们看一个例子-书。一本书可以有1..n位作者。作者可以拥有1..m本书。代表一本书的所有作者的一种好方法是什么? 我想到了一个创建Books表和Authors表的想法。Authors表具有一个主要AuthorID密钥,即作者的姓名。图书表具有主要的图书ID和有关图书的元数据(书名,出版日期等)。但是,需要一种将书籍链接到作者以及将作者链接到书籍的方法。这就是问题所在。 假设我们有三