我正在设计我们的 Scylla 数据库的数据模型。例如,我创建了一个表 intraday_history,其中包含以下字段:
CREATE TABLE intraday_history (id bigint,timestamp_seconds bigint,timestamp timestamp,sec_code text,open float,high float,low float,close float,volume float,trade int, PRIMARY KEY ((id,sec_code),timestamp_seconds,timestamp));
我的 id 是 twitter_snowflake 生成的 64 位整数。我的问题是如何在不提供 id 的情况下使用 WHERE(大多数情况下我将使用带有 bigint 的时间戳)。我在其他表中也遇到了这个问题。因为 id 是唯一的,所以我无法查询一批时间戳。
如果让我们为我的 1 个节点说一堆表,我会使用这样的 ID,cluster1
这样当我查询 id 时,我只会 id=cluster1 吗?但它失去了唯一性特征
Allow filtering
在这里作为一个选项。但我一直读到这是一种不好的做法,尤其是在处理数百万个查询时。
我正在使用 ScyllaDB,它是 Apache Cassandra 的兼容 c++ 版本。