NoSQL 模式遷移

2021-08-29 07:55:11 字數 635 閱讀 9618

資料庫模式變更指令碼最好能在開發階段編寫,因為這樣做可以把模式變更資訊與資料遷移指令碼存在同乙份指令碼檔案中。

但是很多時候,我們需要修改已經上線的資料庫的模式。在nosql的應用程式改變模式後,必須把既有資料全都轉化成新模式才行。

還有乙個很常用的解決辦法,就是確保改變模式之前的那些舊資料仍然可以為新**所解析,而在儲存時,將其以新模式寫會資料庫。這種漸進遷移資料的技術,就叫「增量遷移」(incremental migration)。

執行增量遷移時,應用程式端可能會存在多個物件版本,它們都可將舊模式轉譯為新模式。在把物件存回資料庫時,則使用新的物件格式。這種漸進式資料遷移能幫應用程式更快地演化。

增量遷移技術會令物件設計變複雜,尤其是新的修改已經引入,而舊的修改尚未執行完時。自開始部署修改,到資料庫中最後乙個舊物件遷移至新模式為止,中間的這段時間叫做「過渡期」(transition period)。過渡期的時間越短越好,而且其範圍也要盡量縮小,這樣才能保持物件整潔。

在領域和資料庫之間一定要有適當的「轉譯層」(translation layer)。這樣的話,在模式變更時,管理多個模式版本的**就會侷限於轉譯層而不會瀰漫到整個應用程式之中了。

使用「增量遷移」技術,可以在不影響應用程式讀取其資料的前提下,修改資料的隱含模式。

NoSQL架構模式與MySQL對比

lsm 樹 log structured merge tree 犧牲了一定的讀效能來換取寫入資料的高效能,hbase cassandra leveldb 都是用這種演算法作為儲存的引擎.當從 lsm 樹裡面讀資料時,我們首先從 memtable 中查詢資料,如果資料沒有找到,再從 sstable 中...

NoSQL注入

nosql,指的是非關係型的資料庫。nosql有時也稱作not only sql的縮寫,是對不同於傳統的關係型資料庫的資料庫管理系統的統稱。nosql用於超大規模資料的儲存。例如谷歌或facebook每天為他們的使用者收集萬億位元的資料 這些型別的資料儲存不需要固定的模式,無需多餘操作就可以橫向擴充...

Nosql的架構模式之列族儲存

列族儲存 的設計源於google的bigtable 該 對以後的列族儲存 如 hbase,cassandra,hypertable 的實現產生了深遠的影響。先來看看熟悉的excel 它有助於我們理解列族儲存的模型,如圖 1 所示 電子 是乙個二維的 通過 行號 列號 3 c 可以快速地找到對應的單元...