我第一次和Cassandra一起玩,我覺得我理解了基本知識和限制。作爲示例,我正在使用以下模型來存儲通過hashtag收集的推文。在Cassandra中定義分區鍵
create table posts
(
id text,
status text,
service text,
hashtag text,
username text,
caption text,
image text,
link text,
repost boolean,
created timestamp,
primary key (hashtag, created)
);
這非常適用於查詢的類型,我需要:
select * from posts where hashtag = 'demo' order by created desc;
但是,如果我理解正確的事情,有一個上限,我可以存儲使用奇異的職位數'demo'分區鍵,更重要的是,與「演示」分區鍵匹配的整個帖子集必須與每個副本一起存儲。如果我理解正確,我應該使用更隨機或可變的分區鍵(可能是文章的id
),但我不知道如何使用這些鍵不會改變查詢的要求。
如果我使用id
作爲分區鍵(如PRIMARY KEY (id, created)
)和#標籤欄添加輔助指標,我收到以下錯誤,當我運行我的查詢:
ORDER BY with 2ndary indexes is not supported.
我得到使用ORDER BY,分區鍵必須在where子句中顯示,因此我最初的想法是使用hashtag。
我在推翻事物還是有更好的候選分區鍵?
嗨。爲了讓你的答案更加有用,你可以添加一個示例或鏈接到描述如何最有效地執行客戶端「合併_separate ordered queries_」的資源(例如在Java中)嗎?謝謝。 – user909481