2017-04-10 65 views
1

如果我使用隨機生成的唯一標識,那麼基數是否會相當大?分區鍵的基數是多少?

如果我有一個低基數像5類值,該分區鍵可以一鍵,我想發佈它,推薦的方法似乎是使分區鍵成複合鍵。

但這需要我指定我的查詢中的複合鍵的所有部分檢索該鍵的所有記錄。

即使這樣生成的令牌最終可能會是同一個節點。

有沒有辦法在決定複合鍵,額外的列將保證數據將如何分配?

回答

1

的事情是,與卡桑德拉你真正想擁有「已知」,這樣當你需要它,你可以訪問數據分區鍵。我不確定你說的分區密鑰的大基數是什麼意思。您會在羣集中獲得很多分區。這通常是o.k.

如果您想要在集羣周圍分發數據。你可以使用人造的列。而且這種方法有時也被稱爲bucketing。基本上,如果你想保持100k +或從未版本100萬+列,這是o.k.將這些數據分割成分區。

有些人簡單地用一招,當他們插入數據,他們添加一些人工鬥列分區......假設隨機(1-10),然後當他們讀出來的數據,他們只需發出10個查詢或使用in運算符,然後獲取數據並將其合併到客戶端。這種方法有很多好處,它可以防止在羣集中出現「熱門行」。

機會爲每個鍵都或多或少1/NUM_NODES它將在同一節點上結束。所以我會說大多數時候這不是你應該擔心的事情。除非您的分區數量小於羣集中節點的數量。

基本上有兩種選擇,用於附加列隨機(已經描述)或基於某些輸入數據的某些功能,即當使用時間序列數據並且您決定基於月份進行存儲時,您總是可以根據數據計算月份你要插入,然後你把它放在桶裏。當你檢索數據時,你就知道... ...。我在2016年5月看到了一些東西,然後你知道如何選擇合適的存儲桶。

相關問題