從關聯式資料庫向NoSQL遷移
儘管關聯式資料庫用於儲存資料已經有幾十年的歷史,而且對很多用例而言,這仍然代表著一類可行的方案,但NoSQL正在成為人們當前的選擇,尤其是考慮可伸縮性和效能的時候。本文是對Couchbase的產品管理主管Dipti Borkar的採訪,主要談到了從關聯式資料庫向NoSQL遷移的挑戰、收益和過程。
Dipti Borkar:這個問題可能有些尖銳——事實上,大多數情況下並不是放棄SQL轉而尋求NoSQL解決方案,而是為了讓應用和用例滿足需求的變化,從一種方案轉向另一種方案。一般而言,在構建現代Web和移動應用時,不管是伸縮模型還是資料模型,對靈活性都有特定的需求,而這種需求正是從SQL向NoSQL遷移的推動因素。
典型的Web應用程式是採用三層架構構建的。應用程式要向外擴充套件時,一般是簡單地在負載均衡器之後新增更多的商品化Web伺服器來支援更多使用者。而對於越來越重要的雲端計算模型而言,向外擴充套件能力是其核心原則。在雲端計算模型中,虛擬機器例項很容易根據需求進行相應地新增或刪除。
然而,當涉及到資料層時,關聯式資料庫(RDBMS)不但無法向外擴充套件,也沒有提供靈活的資料模型,這方面有很多挑戰。要處理更多的使用者,這意味著要加入一臺更為大型的伺服器,而大型的伺服器複雜度很高,一般是專有的而且非常昂貴,不像基於Web或雲的架構中所使用的商品化硬體那樣廉價。因此,當公司開始發現現有應用或新應用所用的關聯式資料庫存在效能問題時,特別是這一切與使用者數目的增長有關時,他們意識到需要一個更快的、有彈性的資料庫層。現在是時候評估NoSQL技術並將其作為互動式Web應用的資料庫層了。
InfoQ:在從SQL向NoSQL遷移時,需要哪些主要步驟?
Dipti Borkar:在使用NoSQL資料庫時,不同的組織或專案追求的目標是五花八門的。所以很多遷移還是取決於具體的使用情況。下面是遷移時的一些通用指導原則:
#1 理解應用的關鍵需求:
某些與NoSQL匹配的需求如下:
快速應用開發
— 變化的市場需求
— 變化的資料需求
可伸縮性
– 未知的使用者需求
– 訪問、新增和更新資料使吞吐量持續增長而帶來的需求
一致的效能
– 低響應時間,以便支援更好地使用者體驗
– 高吞吐量,以便處理快速地增長
執行可靠性
– 高可用性,能夠優雅地處理失效並儘量減小對應用的影響
– 內建監控API,便於執行時維護
Dipti Borkar:這個問題可能有些尖銳——事實上,大多數情況下並不是放棄SQL轉而尋求NoSQL解決方案,而是為了讓應用和用例滿足需求的變化,從一種方案轉向另一種方案。一般而言,在構建現代Web和移動應用時,不管是伸縮模型還是資料模型,對靈活性都有特定的需求,而這種需求正是從SQL向NoSQL遷移的推動因素。
典型的Web應用程式是採用三層架構構建的。應用程式要向外擴充套件時,一般是簡單地在負載均衡器之後新增更多的商品化Web伺服器來支援更多使用者。而對於越來越重要的雲端計算模型而言,向外擴充套件能力是其核心原則。在雲端計算模型中,虛擬機器例項很容易根據需求進行相應地新增或刪除。
然而,當涉及到資料層時,關聯式資料庫(RDBMS)不但無法向外擴充套件,也沒有提供靈活的資料模型,這方面有很多挑戰。要處理更多的使用者,這意味著要加入一臺更為大型的伺服器,而大型的伺服器複雜度很高,一般是專有的而且非常昂貴,不像基於Web或雲的架構中所使用的商品化硬體那樣廉價。因此,當公司開始發現現有應用或新應用所用的關聯式資料庫存在效能問題時,特別是這一切與使用者數目的增長有關時,他們意識到需要一個更快的、有彈性的資料庫層。現在是時候評估NoSQL技術並將其作為互動式Web應用的資料庫層了。
InfoQ:在從SQL向NoSQL遷移時,需要哪些主要步驟?
Dipti Borkar:在使用NoSQL資料庫時,不同的組織或專案追求的目標是五花八門的。所以很多遷移還是取決於具體的使用情況。下面是遷移時的一些通用指導原則:
#1 理解應用的關鍵需求:
某些與NoSQL匹配的需求如下:
快速應用開發
— 變化的市場需求
— 變化的資料需求
可伸縮性
– 未知的使用者需求
– 訪問、新增和更新資料使吞吐量持續增長而帶來的需求
一致的效能
– 低響應時間,以便支援更好地使用者體驗
– 高吞吐量,以便處理快速地增長
執行可靠性
– 高可用性,能夠優雅地處理失效並儘量減小對應用的影響
– 內建監控API,便於執行時維護
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/301743/viewspace-750262/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 匯豐銀行從65個關聯式資料庫遷移到一個全球MongoDB資料庫 - diginomica資料庫MongoDB
- 相比NoSQL,關聯式資料庫為何不適合儲存影像? - RedditSQL資料庫
- 資料庫遷移資料庫
- 金倉資料庫資料遷移實戰:從MySQL到KES的順利遷移資料庫MySql
- redis資料庫遷移Redis資料庫
- 資料庫遷移 :理解資料庫
- laravel資料庫遷移Laravel資料庫
- 如何將資料從Hadoop匯出到關係型和NoSQL資料庫?HadoopSQL資料庫
- NoSQL資料庫概念與NoSQL資料庫家族SQL資料庫
- Web Sql 關聯式資料庫WebSQL資料庫
- linux mysql資料庫遷移LinuxMySql資料庫
- django資料庫遷移-15Django資料庫
- 用rman遷移資料庫資料庫
- 資料庫遷移手記資料庫
- 遷移MySQL 5.7資料庫MySql資料庫
- 資料庫遷移神器——Flyway資料庫
- dm資料庫遷移命令資料庫
- SQL Server資料庫遷移SQLServer資料庫
- 關聯式資料庫很快會替代向量資料庫資料庫
- 關聯式資料庫與文件資料庫對比資料庫
- NoSql資料庫SQL資料庫
- 從 SQL Server 到 MySQL (一):異構資料庫遷移ServerMySql資料庫
- 高速遷移MySQL資料到分散式時序資料庫DolphinDBMySql分散式資料庫
- 關聯式資料庫 Query_Execution資料庫
- 雲資料庫管理與資料遷移資料庫
- dnf資料庫備份&遷移資料庫
- OGG資料庫遷移方案(一)資料庫
- OGG資料庫遷移方案(二)資料庫
- OGG資料庫遷移方案(三)資料庫
- OGG資料庫遷移方案(四)資料庫
- 資料庫邏輯遷移方案資料庫
- 遷移資料庫資料考慮問題資料庫
- Oracle資料庫(資料泵)遷移方案(上)Oracle資料庫
- Oracle資料庫(資料泵)遷移方案(下)Oracle資料庫
- 事件溯源超越關聯式資料庫 - confluent事件資料庫
- 無外網Oracle資料庫遷移Oracle資料庫
- Oracle資料庫(DataGuard)遷移方案(上)Oracle資料庫
- Oracle資料庫(DataGuard)遷移方案(中)Oracle資料庫
- Oracle資料庫(DataGuard)遷移方案(下)Oracle資料庫