根据我的要求,需要帮助为cassandra数据模型创建设计

时间:2015-09-04 05:55:05

标签: cassandra

我有一个包含3列的Job_Status表:

Job_ID (numeric)
Job_Time (datetime)
Machine_ID (numeric)

包含统计信息的其他几个字段(如内存,CPU利用率)

以固定间隔(比如说1分钟),在上表中为每台机器上运行的作业插入条目。

我想在Cassandra中设计数据模型。

我的要求是获取在2台或2台以上机器上同时运行的作业列表(对)。

我创建了一个表Job_IdJob_Time作为行的主键,但为了达到预期的效果,我必须在检索后进行大量的数据解析的记录。 当记录数量达到50万左右时,需要花费大量时间。 这个要求需要像SQL的内部联接这样的操作,但是由于某些商业原因我不能使用SQL,而且如果我在SQL Server中尝试使用虚拟数据,那么使用如此庞大的数据集的SQL查询也会占用大量时间。 / p>

所以我需要你的帮助以下几点:

  1. 请在Cassandra中为此要求建议一些有效的数据模型。
  2. 如何在Cassandra数据库中实现/实现SQL的连接操作?
  3. 请建议一些替代设计/算法。我在这个问题上坚持了很长时间。

1 个答案:

答案 0 :(得分:0)

这是一个非常广泛的问题。作为一种通用方法,您可能希望将Cassandra与Spark配对,以便您可以并行执行大型连接。

您可以在启动时将作业插入到表中,并在作业完成时将其删除(可能在插入时设置了TTL,以便不会删除的作业会在一段时间后自动删除)。

当您想要更新作业配对时,您需要运行一个火花批处理作业,将表数据加载到RDD中,然后对数据执行map / reduce操作,或使用spark SQL做一个SQL样式的连接。然后,您可能会将生成的RDD写回Cassandra表。

相关问题