如果您的應用程序頻繁更改並且頻繁添加功能,我一直會閱讀Cassandra。如何從另一個列中填充Cassandra列族?
這很有意義,因爲您沒有任何固定的模式,您可以向行添加列以滿足您的需求,而不是運行ALTER TABLE查詢,這可能會凍結您的數據庫數小時以用於非常大的表。
但是我有一個我不能解決的問題。 比方說,我有:
CREATE COLUMN FAMILY Students
with comparator='CompositeType(UTF8Type,UTF8Type),
and key_validation_class=UUIDType;
每個學生具有一定的通用列(你知道,元:用戶名,元:密碼,薈萃:姓等),再加上每個學生可以跟隨ñ課程。該N-N關係使用非規範化解決,向每個學生添加N列(課程:ID1,課程:ID2)。
另一方面,我可能有一個課程CF,其中每行包含以下所有學生UUID。
所以我可以問「哪些課程後跟XXX」和「哪些學生按照課程YYY」。
問題是:如果我沒有創建第二列家族,該怎麼辦?也許在創建應用程序時,讓學生遵循特定的課程並不是必需的。
這是一個簡單的例子,但我相信這是很常見的。 「有了Cassandra,你可以根據查詢而不是關係來計劃CFs。」我現在需要這個查詢,而起初它不是必需的。
給定一張有數千條記錄的學生表格,你將如何填寫課程CF?這是Hadoop,Pig或Hive的工作(我從來沒有碰過任何這些,只是猜測)。
可能的副本[什麼是最快的方式複製列家庭卡桑德拉?](http://stackoverflow.com/questions/12086395/what-is-the-fastest-way-to-copy-column-family -in-cassandra) –
@ChrisGerken:我不這麼認爲。他不想複製數據;他希望根據現有數據生成新的數據。這需要不同的工具。 –
嗯,重要的是,有一種方法可以快速完成這項工作,並行通過Pig,並且該操作不會DOS背後的應用程序... –