操作数据层数据加载:
✅ 数据必须与源系统同步
✅ 适当的数据加载策略
✅ 生产系统: 数据变化的频率和数量
✅ 消费系统: 对数据时效性的明确要求
第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
Danny Chan, specialty of FSI and Serverless
Kenny Chan, specialty of FSI and Machine Learning
Top comments (0)