首先,请原谅我,如果这个问题不适合堆栈溢出 - 我真的不知道在哪里或哪里可以问。
我有以下情况:在事务系统中,我们有一个表,其中包含由用户执行的业务流程。这些过程可能类似于"停用带有ID xzy"的汽车。该过程本身涉及任意任务,执行该过程可能需要也可能不需要执行任务。
现在,在Cassandra数据库中,我们希望设置对进程的监视。也就是说,每天的进程数,打开进程数,已取消进程数以及最重要的进程:进程停止,取消或暂停的步骤是什么。一直到完成一步所花费的时间也是有意义的。
请注意,所有这些流程和步骤都是手动完成的,并在系统中报告。
现在我想知道如何最好地模拟这个。
我正在考虑一个带有进程ID(存储为uuid)的超级列和有关作业/进程本身的信息,以及每个步骤ID(UUID也是列)作为列键的步骤的行。
那会是正确的型号吗?
我也不确定时间值。我有整个过程的开始和结束时间以及每个步骤的开始和结束时间。鉴于这一事实,大多数查询都是基于时间的,例如今天开始的退役工作有多少?",时间价值至关重要。我应该使用二级索引还是一个以时间为列密钥的表更适合?
也许有人可以指导我朝着正确的方向前进,因为我对卡桑德拉来说还是一个新手
亲切的问候,
克里斯
答案 0 :(得分:0)
你不需要那些超级列(它被删除了btw)。您应该使用群集键。您可以从this response了解它们的工作原理。以下主要内容允许您跟踪每个流程,任务和事件时间的状态:primary key (process_id, task_id, time)
。之后,您可以通过process_id或process_id和task_id查询它。