我正在为以下用例设计 Cassandra 列族模式。我不确定为以下用例设计 cassandra 列族的最佳方法是什么?我将为此使用 CQL Datastax Java 驱动程序。
下面是我的用例和我现在设计的示例模式 -
SCHEMA_ID RECORD_NAME SCHEMA_VALUE TIMESTAMP
1 ABC some value t1
2 ABC some_other_value t2
3 DEF some value again t3
4 DEF some other value t4
5 GHI some new value t5
6 IOP some values again t6
现在我将从上表中看到的是这样的 -
- 每当我的应用程序运行时,我第一次会要求上表中的所有内容.. 意思是给我上表中的所有内容..
- 然后每隔 5 或 10 分钟,我的后台线程将检查此表,并要求给我所有已更改的内容(如果该行有任何更改,则为整行)..这就是我使用时间戳的原因之一这里的专栏..
但是我不确定如何设计查询模式,以便我的两个用例都能轻松满足,以及为此设计表的正确方法是什么?这里 SCHEMA_ID 将是我想使用的主键......
我将为此使用 CQL 和 Datastax Java 驱动程序。
更新:-
如果我使用这样的东西,那么这种方法有什么问题吗?
CREATE TABLE TEST (SCHEMA_ID TEXT, RECORD_NAME TEXT, SCHEMA_VALUE TEXT, LAST_MODIFIED_DATE TIMESTAMP, PRIMARY KEY (ID));
INSERT INTO TEST (SCHEMA_ID, RECORD_NAME, SCHEMA_VALUE, LAST_MODIFIED_DATE) VALUES ('1', 't26', 'SOME_VALUE', 1382655211694);
因为,在我的这个用例中,我不希望任何人每次都插入相同的SCHEMA_ID
内容..SCHEMA_ID
每当我们将任何新行插入此表时都应该是唯一的.. 因此,对于您的示例(@omnibear),有人可能会这样做可以两次插入相同的 SCHEMA_ID 吗?我对么?
并且还考虑type
到您已将其作为额外的列,该类型列可以record_name
在我的示例中。