【发布时间】:2019-12-02 01:02:09
【问题描述】:
我正在设计我们的 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 个节点说一堆表,我将使用像 cluster1 这样的 ID,这样当我查询 id 时,我将只使用 id=cluster1 可以吗?但它失去了唯一性特征
Allow filtering 在这里是一个选项。但我一直读到这是一种不好的做法,尤其是在处理数百万个查询时。
我正在使用 ScyllaDB,它是 Apache Cassandra 的兼容 c++ 版本。
【问题讨论】:
标签: cassandra-3.0 scylla