DEV Community

Cover image for 🌐 开始使用: 什么是MongoDB操作数据层? (第2部分) 🌐
Danny Chan for MongoDB Builders

Posted on

🌐 开始使用: 什么是MongoDB操作数据层? (第2部分) 🌐

操作数据层数据加载:
✅ 数据必须与源系统同步
✅ 适当的数据加载策略
✅ 生产系统: 数据变化的频率和数量
✅ 消费系统: 对数据时效性的明确要求


第1步: 批量提取和加载:
📁 初始批量加载
📁 将应用程序数据库数据复制到操作数据层
📁 一次性从源系统加载数据


第2步: 增量提取和加载:
🔄 紧跟初始批量加载之后立即开始
🔄 实时同步
🔄 从源系统增量更新到ODL
🔄 使用变更数据捕获(CDC)
🔄 捕获源系统的变更
🔍 匹配、合并、校准数据


数据流和成熟度模型:
🏗️ 起步简单
🌱 范围和战略重要性不断扩大
🏆 为业务带来越来越多的收益


第1阶段: 简单的ODL, 卸载读取:
💻 仅提供读取操作
💰 降低成本
🔒 高可用性: 在源系统宕机时接管
⚡ 提高性能
📊 处理长时间运行的分析查询
📈 应对高峰读取量


第2阶段: 功能丰富的ODL应用新场景:
🔍 建立单一的客户视图
💳 例如: 信用卡交易数据细化为各类消费
💰 分析每个消费类别(如旅行)的支出


第3阶段: 卸载读写:
📥 同时降低延迟,并行引入新系统


第4阶段: ODL优先:
✍️ 所有写入直接到操作数据层(ODL)


第5阶段: 系统的记录:
🗃️ 操作数据层成为系统的记录
🏳️ 源系统可以退役以节省成本
🏛️ 架构更加简单


MongoDB用于操作数据层:
🤗 便利性: MongoDB的文档模型易于管理数据
🧩 灵活性: 将多个源系统集成到单一ODL, 无需预先定义模式
⚡ 速度: 访问数据时性能更好
🎨 多功能性: 凭借文档模型的灵活性满足各种应用需求


示例:
📁 嵌套数组和子文档
📊 建模复杂关系和层次数据
🗄️ 无需重写整个文档即可操作深层嵌套数据
🗂️ 建模平面、类似表格的结构, 简单键值对, 文本
🌍 地理空间数据
🕸️ 图处理中使用的节点和边


处理管道:
🔍 查找和范围查询
📊 数据分析
🔨 转换
🔍 分面搜索
🌎 地理空间处理
🕵️ 图遍历


智能分布(操作数据层)ODL:


可用性:
💻 使用副本集保存多份数据副本
🔄 故障转移和恢复完全自动化


可扩展性:
🆙 挑战: 新的源系统, 数据量增加, 新的消费系统, 负载增大
🗄️ 大数据集
⚡ 高吞吐量需求
🧩 解决方案 - 分片:
🤖 MongoDB提供低成本的水平扩展
🔁 自动将数据分区并分布到多个物理实例


工作负载隔离:
🔍 操作数据层能够安全地服务于不同的工作负载
🔍 在不影响生产应用的情况下, 对最新数据进行分析查询


数据本地化:
🌎 精确控制数据实际存储位置
🗺️ 控制地理区域以满足延迟和管治要求


🤖 Reference:

https://www.mongodb.com/resources/basics/implementing-an-operational-data-layer
Implementing an Operational Data Layer

https://www.mongodb.com/resources/solutions/use-cases/mainframe-modernization-reference-architecture
Mainframe Modernization Reference Architecture


Editor

Image description

Danny Chan, specialty of FSI and Serverless

Image description

Kenny Chan, specialty of FSI and Machine Learning

Top comments (0)