我正在研究卡桑德拉超過2個星期只是有相同的全面掌握。我幾乎讀過關於卡桑德拉的所有網絡,但仍不清楚一些概念。以下是: -卡桑德拉數據同步問題
根據文檔: - 我們根據我們的查詢建模我們的列族。因此,我們需要事先了解我們的查詢,這在現實世界的場景中根本不可能。我們可以事先進行一定的查詢,這些查詢都隨時間而變化。因此,如果我基於以前的查詢設計了一個模型,那麼在我提出新的要求之後,我需要重新設計一個模型。當讀過一個SO線程在未來修復一個糟糕的Cassandra數據模型非常困難。對於如: - 我倒是具有領域user
模型說
name, age,phone,imei,address, state,city,registration_type, created_at
目前,我需要(可以說)只有state
過濾。我會做一個PK爲state
。讓我們命名模型UserByState
。 現在2-3個月後,我要求過濾created_at
。現在我將創建一個型號爲UserByCreatedAt
,PK爲created_at
。
現在有2個問題: -
a)如果我創建了一個新的模式時,要求進來,然後我需要將數據遷移到新的模式,也就是說,如果我創建了一個新的模式,我還需要在當前模型中包含以前的數據。因此,我需要將數據從UserByState
遷移到UserByCreatedAt
,即我需要編寫一個腳本將數據從UserByState
複製到UserByCreatedAt
。 糾正我,如果我錯了!
如果還有其他新的過濾要求出現,我將創建新模型,然後遷移等。 b)要根據查詢手動創建模型,我需要保持數據同步,即在上述用戶的情況下,我爲2個查詢創建了2個模型。
UserByState
和UserByCreatedAt
所以,做我需要辦理2個不同的編寫查詢??,即
UserByState.create(row = value,......)
UserByCreatedAt.create(row = value,......)
而且如果我有其他機型,如 'UserByGender' 等。我是否需要手動將不同的寫入查詢應用於不同的模型?或者它是否獨立發生?保持數據同步的問題出現了。