iT邦幫忙

2022 iThome 鐵人賽

DAY 24
0
Software Development

NoSQL: Not Only SQL系列 第 24

[Day 24] Column Family Database:簡介

  • 分享至 

  • xImage
  •  

Column Family Database 身上可以看到其他資料庫設計的影子,像是 Keyspace 的概念與 Key-Value Database 接近,各個 Row 也可以有不同的 Columns 設計則和 Document Database 相似,並且提供類 SQL 可以對複雜結構進行查詢的功能。每個 Family 中,Columns 是可以動態定義和新增的,而資料的儲存方式其實就是 Key(+Timestamp)-Value 的結構。

https://ithelp.ithome.com.tw/upload/images/20220926/201511374ASSeLWdAa.png

儘管有相似之處,Column Family Database 終究不是關聯式資料庫,不支援 ACID 交易,資料的存放和關聯方式也不相同,因此在資料模型的規劃上需要特別注意,通常會透過反正規劃的結構設計,避免出現需要包裝多個 Row 的交易或子查詢的設計。

沒有什麼資料庫是萬能的,開發者需要在適合的場景選擇適合的資料庫類別,Column Family Database 的特性非常適合應用在大量寫入的情境,像是 Cassandra 就算在節點無法處理時,也允許接收寫入請求的特點非常符合大量寫入,它也很適合有不只是多節點,甚至是跨資料中心需求的設計。但如果單純是需要有彈性的資料結構,或是需要完全支援 ACID 等級的交易,Column Family Database 可能不會是你的首選,可以考慮使用 Key-Value Database 或 Document Database,混合使用 SQL 和 NoSQL 資料庫也會是不錯的選擇。


上一篇
[Day 23] Column Family Database:簡介
下一篇
[Day 25] Column Family Database:以 Cassandra 為例
系列文
NoSQL: Not Only SQL30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言