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