從關聯式資料庫向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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 從關聯式資料庫遷移到NoSQL雲資料庫資料庫SQL
- 從關聯式資料庫遷移到CouchDB資料庫
- 【轉載】關聯式資料庫還是NoSQL資料庫資料庫SQL
- 關聯式資料庫和NoSQL結合使用:MySQL + MongoDB資料庫MySqlMongoDB
- 資料從Oracle向Mysql資料遷移例項OracleMySql
- NoSQL資料庫探討之一 - 為什麼要用非關聯式資料庫?SQL資料庫
- NoSQL:從關係型資料庫到非關係型資料庫SQL資料庫
- 相比NoSQL,關聯式資料庫為何不適合儲存影像? - RedditSQL資料庫
- 物件導向的關聯式資料庫設計(轉)物件資料庫
- 【遷移】使用rman遷移資料庫資料庫
- 資料庫遷移資料庫
- 匯豐銀行從65個關聯式資料庫遷移到一個全球MongoDB資料庫 - diginomica資料庫MongoDB
- Web Sql 關聯式資料庫WebSQL資料庫
- 關聯式資料庫設計資料庫
- 關聯式資料庫之父 (轉)資料庫
- 資料庫遷移 :理解資料庫
- laravel資料庫遷移Laravel資料庫
- Odoo遷移資料庫Odoo資料庫
- redis資料庫遷移Redis資料庫
- Cacti 遷移資料庫資料庫
- 資料庫遷移方案資料庫
- ORACLE資料庫遷移Oracle資料庫
- 遷移資料庫成功!資料庫
- 建立資料庫遷移資料庫
- 資料庫-oracle-資料庫遷移資料庫Oracle
- 關聯式資料庫與文件資料庫對比資料庫
- NoSQL資料庫概念與NoSQL資料庫家族SQL資料庫
- Oracle資料庫資料遷移流程Oracle資料庫
- 關聯式資料庫分片原則資料庫
- 如何將資料從Hadoop匯出到關係型和NoSQL資料庫?HadoopSQL資料庫
- 資料庫遷移神器——Flyway資料庫
- 遷移MySQL 5.7資料庫MySql資料庫
- 用rman遷移資料庫資料庫
- 資料庫遷移手記資料庫
- django資料庫遷移-15Django資料庫
- SQL Server資料庫遷移SQLServer資料庫
- mysql資料庫遷移 mysqldumpMySql資料庫
- 遷移資料庫到ASM資料庫ASM