2016-04-21 74 views
2

簡要地回答了存儲序列化類型的json與在Cassandra中使用UDT的不同含義的真實答案。我現在希望有經驗的人來詳細說明。序列化的Json與UDT在cassandra中的數據和模式遷移中的含義

就性能,數據和模式更改(添加,更改,刪除列)而言,它們有何不同? 每種方法有哪些專業和缺點? 他們有什麼其他值得注意的方式不同?

在此先感謝!

回答

2

有一個很大的區別,我會盡力解釋它。

如果您不希望在CQL模式中使用「強類型」字段,則UDT很棒。您可以將UDT用作主鍵(集羣列)的一部分以及添加和重命名字段。缺點是在做選擇時你總是選擇整個UDT,並且你不能刪除一個字段。不要因爲使用過於瘋狂,因爲如果在多個表中使用相同的字符,它們就是一團糟。

使用序列化的JSON字符串對於某些情況非常有用。我甚至聽到人們將壓縮數據保存到字段(protobuff)中以解決他們的問題(我認爲Soundcloud的某個人正在討論這個問題)。 JSON的問題在於它們不是鍵入的,並且您需要應用程序的其他邏輯來處理序列化和數據更改。這也意味着你可以有變量結構並只插入你需要的字段。

只要你瞭解兩種方法的優點和缺點,最後就是你的偏好。