1、MongoDB高級應用場景及技術特點錦木信息唐峰MongoDB+PostgreSQL 中文社區南京大會RDBMS,MongoDB?NoSQL,MongoDB?哪些場景適合MongoDB?核心特點Document Model最佳的數據管理方式Distributed System智能得將數據放在需要的地方Run Anywhere自由得運行于任意平臺文檔模型模型易用 _id:123456,first_name:Mark,last_name:Smith,city:San Francisco,phones:number:1-212-777-1212,dnc:true,type:home,number:“
2、1-212-777-1213”,type:cell 舉例金融行業資產管理案例?關系模型傳統關系型設計模式客戶ID名稱地址組織機構代碼營業執照礦井儲量開工面積.發電量100001多多的電力xxxxxxxxxxxxxxxx100002大大的地產xxxxxxxxxxxxxxxx傳統方案1:寬表客戶ID名稱地址100001深深的煤業xxxx客戶IDMETRIC_NAMEMETRIC_VALUE100001生產許可證mtsc017100001礦井儲量2000000100001礦井位置138.2031-124.4904100002百萬噸死亡率2%傳統方案2:主從表文檔模型文檔類型設計模式文檔1 name:
3、“深深的礦業”,orgId:“70107890X”,industryInfo:type:“采礦”coalCertificate:“mtsc017”,location:38.2031,-120.4904 ,mineReserves:2000000,deathsByMT:0.02 文檔2 name:“大大的地產”,orgId:“565425429”,industryInfo:type:“地產”,estateCertificate:“fdczz0000001”,areaPerYear:897600.00,salesAreaPerYear:300000.00 儲量小于2000萬噸:db.collect
4、ion.find(industryInfo.mineReserves:$lt:20000000 )事務支持4.0版本支持多文檔事務with client.start_session()as s:s.start_transaction()try:collection.insert_one(doc1,session=s)collection.insert_one(doc2,session=s)mit_transaction()except Exception:s.abort_transaction()和關系數據庫的事務操作一樣語法基本一樣任何應用都可以使用一個表或多個表中的多個文檔都適用 ACID
5、 保證要么全成功,要么全失敗 版本要求MongoDB 4.0,支持復制集,已經發布MongoDB 4.2:支持分片,預計19年發布文檔模型性能強大、功能豐富性能強大功能豐富文檔模型、自動分片PB級數據庫支持地理位置查詢圖查詢列表查詢分布式擴展復制集&分片復制集支持2-50個節點自動恢復關鍵能力:-高可用-容災-維護升級任務隔離:聯機與分析作業隔離支持不同存儲引擎(WireTiger、In-memory)分布式擴展復制集&分片分片策略:范圍、哈希、標簽彈性擴展與收縮數據自動均衡應用完全透明分布式擴展復制集&分片彈性擴展海量數據與高并發資源最佳分配冷熱數據自動歸檔地理分布按地域就近讀寫一庫多用不同
6、節點支持不同應用任意部署本地、云端、移動端核心特點最佳的數據管理方式智能的將數據放在需要的地方自由的運行于任意平臺文檔模型易用模型變更零代價性能表現優異查詢功能豐富高可用復制集分片彈性擴展一庫多用可插拔引擎就近數據讀寫服務器云(Atlas)容器移動端統一視圖Single View金融互聯網零售分析用戶資產、信用、盈利、投資數據,控制風險,提供增值業務。根據用戶行為與瀏覽內容,實時推薦感興趣的商品、內容。全渠道用戶信息清洗合并,生成標簽信息,個性化活動推送與服務。統一視圖Single View05功能要求MongoDB數據模型-數據來源于多個系統,數據格式差異大-隨著業務發展,需要動態調整數據模
7、式數據模型-文檔模型支持豐富的數據結構(Attribute Pattern)-靈活模式無變更成本查詢-查詢條件、類型多變-數據算法分析&快速可視化查詢-豐富的查詢、索引、聚合-數據可視化:MongoDB Charts&BI Connector-AI:Spark connector、R&Python Drivers性能與安全-新數據源持續集成,數據量增長迅速-敏感數據安全與保護性能與安全-自動擴展分片架構-鑒權、權限、加密、審計-基于Zone的分區物聯網&時序數據IoT&Time-series DataIoT交易數據日志可穿戴設備、車聯網、等傳感器數據,包含了大量數據價值。行情數據、交易行為分析
8、,提供相似K線,智能投顧等增值業務?;A架構及應用系統產生的日志分析,提升運維效率降低故障率。物聯網&時序數據IoT&Time-series Data功能要求MongoDB數據模型-時序類數據,大并發寫入-數據結構隨著軟/硬件版本的更新發生變化 數據模型-文檔模型支持豐富的數據結構(Bucket Pattern)-靈活模式無變更成本擴展與性能-數據量大,隨設備全球分布-持續在線-讀寫實時性要求高擴展性-分布式架構auto-sharding-rang hash zone的分片策略計算分析-實時寫入與實時分析-大數據量計算分析 計算分析-一庫多用-豐富的查詢、索引、聚合-數據可視化:MongoDB
9、 Charts&BI Connector-AI:Spark connector、R&Python Drivers產品目錄&內容管理Product Catalog&Content Management產品目錄內容管理移動應用SKUs、F/X標的,設備等。屬性和metadata頻繁更新。組織管理任何形式的數據:文本、視頻、音頻、圖片等。移動/現代應用快速開發、快速上線、快速迭代。產品目錄&內容管理Product Catalog&Content Management功能要求MongoDB數據模型-對象有復雜多變的屬性,元數據-應用快速迭代,頻繁更新數據模型數據模型-文檔模型支持豐富的數據結構-靈活模
10、式無變更成本,應用版本快速迭代上線-GridFS支持存儲二進制數據用戶體驗-用戶查詢請求條件組合多變-促銷、秒殺等活動期間數據庫性能不能降低-7*24在線用戶體驗-豐富的查詢、索引、聚合-分布式架構auto-sharding,用戶就近訪問數據-一庫多用:復制集同時滿足在線交易與分析型需求實時分析-用戶個性化推薦-實時統計銷售指標與內容消費情況實時分析-聚合Aggregation Pipline-AI:Spark connector、R&Python Drivers-數據可視化:MongoDB Charts&BI Connector主機下移&數據中臺Mainframe Offload&Opera
11、tional Data Layer成本敏捷體驗大量查詢壓力轉移到ODL上,更好的性能與擴展性,降低成本??焖夙憫獦I務變化,ODL數據平臺提升開發效率3-5倍。7*24,滿足不斷增長的用戶和數據量增長。主機下移&數據中臺Mainframe Offload正在使用用戶案例情況用戶交易-整合全行分散交易數據,實現客戶層面一本帳-收支實時匯總交易金額,秒級響應-千億級別數據實時處理中臺系統&策略量化-用戶全局數據、共享數據、標簽、字典,處理三端一微30000/s的并發請求-產品資訊信息,模擬大盤數據-行情數據存放與分析,量化交易旅客數據-旅客多數據源的快速集成(航信、行程、行李、投訴、貴賓廳、網站、App等)-Spark和MongoDB集成,大幅提升數據分析合處理速度-旅客敏感數據集中到MongoDB中,成為唯一用戶數據來源正在使用用戶案例情況機票緩存-機票價格緩存在MongoDB內存引擎中,快速響應票價請求-利用TTL索引,自動刪除過期票價-分片架構應彈性對壓力增長網盤-存放網盤文件的metadata元數據-3PB數據量-分片架構應彈性對壓力增長智能捷創平臺-保證普華永道全球所有用戶能夠協同工作-支持跨區讀寫文檔、附件;讀寫高性能,低延遲-基于地理位置的分片集群-低代碼、低花費、快速開發謝謝