Cassandra中的超级列是传统RDBMS中1:n关系的正确模型吗

Cassandra中的超级列是传统RDBMS中1:n关系的正确模型吗,cassandra,analytics,data-modeling,cql3,Cassandra,Analytics,Data Modeling,Cql3,首先,请原谅我,如果这个问题不适合堆栈溢出,我真的不知道该问谁或在哪里 我有以下情况:在事务系统中,我们有一个表,其中包含由用户执行的业务流程。这些过程可能类似于ID为xzy的退役汽车。流程本身涉及任意任务,执行这些任务可能需要,也可能不需要 现在,在Cassandra DB中,我们要设置对进程的监视。也就是说,每天的进程数、打开的进程数、取消的进程数,以及最重要的:进程在哪一步停止、取消或暂停。此外,一个步骤直到完成所需的时间也是令人感兴趣的 请注意,所有这些过程和步骤都是手动完成的,并在系统

首先,请原谅我,如果这个问题不适合堆栈溢出,我真的不知道该问谁或在哪里

我有以下情况:在事务系统中,我们有一个表,其中包含由用户执行的业务流程。这些过程可能类似于ID为xzy的退役汽车。流程本身涉及任意任务,执行这些任务可能需要,也可能不需要

现在,在Cassandra DB中,我们要设置对进程的监视。也就是说,每天的进程数、打开的进程数、取消的进程数,以及最重要的:进程在哪一步停止、取消或暂停。此外,一个步骤直到完成所需的时间也是令人感兴趣的

请注意,所有这些过程和步骤都是手动完成的,并在系统中报告

现在我想知道如何最好地模拟这个

我考虑的是一个超级列,其中进程id存储为uuid,关于作业/进程本身的信息,以及每个步骤的行,每个步骤都有步骤id uuid和列键

那是正确的模式吗

我也不确定时间的价值。我有整个流程的开始和结束时间,以及每个步骤的开始和结束时间。考虑到大多数查询都是基于时间的,比如今天开始了多少退役作业,时间值至关重要。我应该使用二级索引,还是将时间作为列键的表更合适

也许有人能给我指引正确的方向,因为我对卡桑德拉还很陌生

亲切问候,


Chris

顺便说一句,对于那些被删除的内容,您不需要超级列。您应该使用集群键。你可以从中了解它们是如何工作的。以下主键允许您跟踪每个流程、任务和事件时间的状态:主键流程id、任务id、时间。之后,您可以仅通过进程id或同时通过进程id和任务id进行查询。

集群键是不推荐使用的Thrift dynamics列的CQL概念;但最终还是一样的。