信息造價網(wǎng),seo是啥,濟南市住宅與房地產(chǎn)信息網(wǎng),紅酒網(wǎng)站模板應(yīng)用場景及選型
MongoDB 數(shù)據(jù)庫定位
OLTP 數(shù)據(jù)庫橫向擴展能力,數(shù)據(jù)量或并發(fā)量增加時候架構(gòu)可以自動擴展靈活模型,適合迭代開發(fā),數(shù)據(jù)模型多變場景JSON 數(shù)據(jù)結(jié)構(gòu),適合微服務(wù)/REST API基于功能選擇 MongoDB 關(guān)系型數(shù)據(jù)庫遷移
從基…應(yīng)用場景及選型
MongoDB 數(shù)據(jù)庫定位
- OLTP 數(shù)據(jù)庫
- 橫向擴展能力,數(shù)據(jù)量或并發(fā)量增加時候架構(gòu)可以自動擴展
- 靈活模型,適合迭代開發(fā),數(shù)據(jù)模型多變場景
- JSON 數(shù)據(jù)結(jié)構(gòu),適合微服務(wù)/REST API
- 基于功能選擇 MongoDB
關(guān)系型數(shù)據(jù)庫遷移
從基于關(guān)系型數(shù)據(jù)庫應(yīng)用遷移到 MongoDB 的理由
- 高并發(fā)需求 (數(shù)千 – 數(shù)十萬 ops) ,關(guān)系型數(shù)據(jù)庫不容易擴展
- 快速迭代 – 關(guān)系型模式太嚴(yán)謹(jǐn)
- 靈活的 JSON 模式
- 大數(shù)據(jù)量需求
- 地理位置查詢
- 多數(shù)據(jù)中心跨地域部署
應(yīng)用遷移難度
- 關(guān)系型到關(guān)系型 – 相對簡單
- 關(guān)系型到文檔型 – 相對復(fù)雜
- 需要考慮
- 總體架構(gòu) (從單體式到分布式)
- 模式設(shè)計(從關(guān)系模型到文檔模型)
- SQL 語句 / 存儲過程 / JDBC / ORM
- 數(shù)據(jù)遷移 (如何處理已有數(shù)據(jù)?)
總體架構(gòu)
模式設(shè)計
- 針對已有關(guān)系模型,考慮如何用文檔模型進行設(shè)計
-
數(shù)據(jù)遷移
- 數(shù)據(jù)庫導(dǎo)出+導(dǎo)入
- 批量遷移工具
- 實時同步工具
- 應(yīng)用主導(dǎo)遷移
數(shù)據(jù)遷移方式及工具
數(shù)據(jù)遷移
數(shù)據(jù)庫導(dǎo)出導(dǎo)入
- 停止現(xiàn)有的基于 RDBMS 的應(yīng)用
- 使用 RDBMS 的數(shù)據(jù)庫導(dǎo)出工具,將數(shù)據(jù)庫表導(dǎo)出到 CSV 或者 JSON(如 mysqldump)
- 使用 mongoimport 將 CSV 或者 JSON 文件導(dǎo)入 MongoDB 數(shù)據(jù)庫
- 啟動新的 MongoDB 應(yīng)用
- 數(shù)據(jù)庫導(dǎo)出導(dǎo)入: mysql - mongo
- mysqldump inventory -hxxxx -uroot -p -T mysql-files
批量同步
- 安裝同步工具(如 Kettle / Talend) - 創(chuàng)建輸入源(關(guān)系型數(shù)據(jù)庫)
- 創(chuàng)建輸出源(MongoDB) - 編輯數(shù)據(jù)同步任務(wù)
- 執(zhí)行
- 適用批量同步,定期更新, 特別是每晚跑批的場景
- 支持基于時間戳的增量同步,需要源表有合適的時間戳支持
- 對源庫有較明顯的性能影響,不宜頻繁查詢
- 不支持實時同步
實時同步
- 安裝實時同步工具(如Informatica / Tapdata) - 創(chuàng)建輸入源(關(guān)系型數(shù)據(jù)庫)
- 創(chuàng)建輸出源(MongoDB) - 編輯實時數(shù)據(jù)同步任務(wù)
- 執(zhí)行
- 基于源庫的日志文件解析機制,可以實現(xiàn)秒級數(shù)據(jù)的同步
- 對源庫性能影響較小
- 可以支持應(yīng)用的無縫遷移
應(yīng)用主導(dǎo)遷移
- 升級已有應(yīng)用支持 MongoDB
- 數(shù)據(jù)插入請求直接進入 MongoDB
- 數(shù)據(jù)查詢和更新請求首先定向到 MongoDB
- 如果記錄不存在,從 RDBMS 讀出來并寫入到 MongoDB
- 重復(fù)步驟3
- 當(dāng)步驟4在限定時間段(一星期、一個月)沒有被調(diào)用,認(rèn)為遷移完成
- 需要研發(fā)團隊配合 ,有一定開發(fā)和測試量
- 為保證不遺漏數(shù)據(jù),仍然先要執(zhí)行一次批量同步
應(yīng)用遷移比較