本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Precission Connect 将大型机数据库复制到AWS其中
由 Lucio Pereira (AWS)、Balaji Mohan () 和 Sayantan Giri (AWS) 创作 AWS
环境:生产 | 来源:本地大型机 | 目标:AWS数据库 |
R 类型:重构 | 工作负载:所有其他工作负载 | 技术:数据库;大型机 CloudNative;现代化 |
AWS服务:亚马逊 DynamoDB;亚马逊 Keyspaces;亚马逊;MSK亚马逊;亚马逊 RDS ElastiCache |
Summary
此模式概述了使用 Precission Connect 近乎实时地将数据从大型机数据库复制到 Amazon 数据存储的步骤。它通过适用于 Apache Kafka 的 Amazon Managed Streaming(MSK亚马逊)和云中的自定义数据库连接器实现了基于事件的架构,以提高可扩展性、弹性和性能。
Precisely Connect 是一种复制工具,可从遗留大型机系统捕获数据并将其集成到云环境中。AWS通过使用具有低延迟和高吞吐量的异构数据管道的近乎实时的消息流,将数据从大型机复制到变更数据捕获 (CDC)。
该模式还涵盖了具有多区域数据复制和失效转移路由功能的弹性数据管道的灾难恢复策略。
先决条件和限制
先决条件
要复制到云端的现有大型机数据库 IBMDB2,例如IBM信息管理系统 (IMS) 或虚拟存储访问方法 (VSAM) AWS
一个活跃的AWS账户
AWSDirect Connect
或AWS虚拟专用网络 (AWSVPN ) 从您的企业环境到 AWS 具有可由您的旧平台访问的子网的虚拟私有云
架构
源技术堆栈
至少包含以下数据库之一的大型机环境:
IBMIMS数据库
IBMDB2数据库
VSAM文件
目标技术堆栈
亚马逊 MSK
亚马逊 Elastic Kubernetes Service(亚马逊)和 Amazon Anywhere EKS EKS
Docker
AWS关系数据库或 “无” SQL 数据库,如下所示:
Amazon DynamoDB
适用于 Oracle 的亚马逊关系数据库服务(亚马逊RDS)、适用于 Postg SQL re RDS 的亚马逊或亚马逊 Aurora
ElastiCache 适用于 Redis 的亚马逊
Amazon Keyspaces(Apache Cassandra 兼容)
目标架构
将大型机数据复制到数据库 AWS
下图说明了将大型机数据复制到 DynamoDB、Amazon、Amazon 或 A RDS mazon Keyspaces 等AWS数据库 ElastiCache的情况。通过在本地大型机环境中使用 Precist Capture 和 Publisher,在本地分布式环境中使用 Amazon EKS Anywhere 上的 Precist Dispatcher,在云中使用 Precist Apply Engine 和数据库连接器,在云中使用 Precist AWS
图表显示了以下工作流:
Precist Capture 从CDC日志中获取大型机数据,并将这些数据保存在内部瞬态存储器中。
Publisher 精确地监听内部数据存储的变化,并通过 TCP /IP 连接将CDC记录发送到 Precist Dispatcher。
确切地说,Dispatcher 从出版商那里接收CDC记录并将其发送到亚马逊MSK。调度程序根据用户配置和多个工作任务创建 Kafka 键以并行推送数据。记录存储在亚马逊后,调度员会向出版商发送确认信息。MSK
亚马逊将CDC记录MSK保存在云环境中。主题的分区大小取决于您的事务处理系统 (TPS) 对吞吐量的要求。Kafka 密钥对于进一步的转换和事务排序是必需的。
Precissily Apply Engine 监听来自亚马逊的CDC记录,MSK并根据目标数据库要求转换数据(例如,通过筛选或映射)。您可以将自定义逻辑添加到 Preclisy SQD 脚本中。(SQD是 Precist 的专有语言。) Precissily Apply Engine 将每CDC条记录转换为 Apache Avro 或JSON格式,然后根据你的要求将其分发到不同的主题。
目标 Kafka 主题根据目标数据库保存多个主题的CDC记录,而 Kafka 便于根据定义的 Kafka 密钥进行事务排序。分区键与相应的分区对齐以支持顺序过程。
数据库连接器(自定义 Java 应用程序)监听来自 Amazon 的CDC记录MSK并将其存储在目标数据库中。
可根据您的要求选择目标数据库。此模式同时支持 “否” SQL 和关系数据库。
灾难恢复
业务连续性是组织成功的关键。AWS云提供高可用性 (HA) 和灾难恢复 (DR) 功能,并支持贵组织的故障转移和备用计划。此模式遵循主动/被动灾难恢复策略,为实施符合您RTO和RPO要求的灾难恢复策略提供了高级指导。
下图说明了 DR 的工作流。
此图显示以下内容:
如果AWS区域 1 中发生任何故障,则需要半自动故障转移。如果区域 1 出现故障,系统必须启动路由更改,才能将 Precisly Dispatcher 连接至区域 2。
Amazon 通过区域间镜像来MSK复制数据,因此,在故障转移期间,必须将区域 2 中的 Amazon MSK 集群提升为主要领导者。
Precisely Apply Engine 和数据库连接器是无状态应用程序,可以在任何区域中工作。
数据库同步取决于目标数据库。例如,DynamoDB 可以使用全局表,也可以使用全局数据 ElastiCache 存储。
通过数据库连接器执行低延迟和高吞吐量处理
数据库连接器是此模式中的关键组件。连接器采用基于侦听器的方法从 Amazon 收集数据,MSK并通过任务关键型应用程序(第 0 层和第 1 层)的高吞吐量和低延迟处理将事务发送到数据库。下图阐明了此过程。
该模式支持通过多线程处理引擎开发具有单线程消耗的定制应用程序。
连接器主线程使用来自 Amazon 的CDC记录MSK并将其发送到线程池进行处理。
线程池中的线程处理CDC记录并将其发送到目标数据库。
如果所有线程都很忙,则线程队列会保留CDC记录。
主线程等待从线程队列中清除所有记录,并将偏移量提交到 Amazon。MSK
子线程处理故障。如果在处理过程中发生故障,则失败的消息将发送到DLQ(死信队列)主题。
子线程根据大型机时间戳启动条件更新(参见 DynamoDB 文档中的条件表达式),以避免数据库中出现任何重复 out-of-order或更新。
有关如何实现具有多线程功能的 Kafka 消费者应用程序的信息,请参阅 Confluent 网站上的博客文章 Apache Kafka 消费者使用多线程消息消费
工具
AWS服务
适用于 Apache Kafka 的亚马逊托管流媒体 Kafka(MSK亚马逊)是一项完全托管的服务,可帮助您构建和运行使用 Apache Kafka 处理流数据的应用程序。
亚马逊 Elastic Kubernetes Servic EKS e(亚马逊)可帮助你在上面运行 AWS Kubernetes,而无需安装或维护自己的 Kubernetes 控制平面或节点。
Amazon EKS Anywhere
可帮助您部署、使用和管理在您自己的数据中心运行的 Kubernetes 集群。 Amazon DynamoDB 是一项完全托管的SQL无数据库服务,可提供快速、可预测和可扩展的性能。
Amazon Relational Database Service (AmazonRDS) 可帮助您在AWS云中设置、操作和扩展关系数据库。
Amazon ElastiCache 可帮助您在AWS云中设置、管理和扩展分布式内存缓存环境。
Amazon Keyspaces(适用于 Apache Cassandra)是一项托管数据库服务,可帮助您在云中迁移、运行和扩展 Cassandra 工作负载。AWS
其他工具
Precission Connect 将
来自传统大型机系统(例如VSAM数据集或IBM大型机数据库)的数据集成到下一代云和数据平台中。
最佳实践
找到 Kafka 分区和多线程连接器的最佳组合,从而平衡最佳性能和成本。由于消耗量更高MIPS(每秒百万条指令),多个 Precissy Capture 和 Dispatcher 实例可能会增加成本。
避免向数据库连接器添加数据操作和转换逻辑。为此,请使用 Precisely Apply Engine,它提供以微秒为单位的处理时间。
在数据库连接器中创建对数据库的定期请求或运行状况检查调用(检测信号),以频繁预热连接并减少延迟。
实现线程池验证逻辑,以了解线程队列中的待处理任务,并在下一次 Kafka 轮询之前等待所有线程完成。这有助于避免节点、容器或进程崩溃时数据丢失。
通过运行状况端点公开延迟指标,通过控制面板和跟踪机制增强可观测性。
操作说明
任务 | 描述 | 所需技能 |
---|---|---|
设置大型机进程(批处理或联机实用程序),以从大型机数据库启动该CDC进程。 |
| 大型机工程师 |
激活大型机数据库日志流。 |
| 大型机数据库专家 |
使用捕获组件来捕获CDC记录。 |
| 大型机工程师,精确连接 SME |
配置 Publisher 组件以侦听 Capture 组件。 |
| 大型机工程师,精确连接 SME |
在本地分布式环境中配置 Amazon EKS Anywhere。 |
| DevOps 工程师 |
在分布式环境中部署和配置 Dispatcher 组件,以便在AWS云端发布主题。 |
| DevOps 工程师,精确连接 SME |
任务 | 描述 | 所需技能 |
---|---|---|
在指定AWS区域配置一个 Amazon EKS 集群。 |
| DevOps 工程师、网络管理员 |
配置集MSK群并配置适用的 Kafka 主题。 |
| DevOps 工程师、网络管理员 |
配置 Apply Engine 组件,以侦听复制的 Kafka 主题。 |
| 精确连接 SME |
在AWS云中配置数据库实例。 |
| 数据工程师、 DevOps 工程师 |
配置和部署数据库连接器以侦听 Apply Engine 发布的主题。 |
| 应用程序开发人员、云架构师、数据工程师 |
任务 | 描述 | 所需技能 |
---|---|---|
为您的业务应用程序定义灾难恢复目标。 |
| 云架构师、数据工程师、应用程序所有者 |
根据定义的 RTO /设计灾难恢复策略RPO。 |
| 云架构师、数据工程师 |
配置灾难恢复集群和配置。 |
| DevOps 工程师、网络管理员、云架构师 |
测试灾难恢复CDC管道。 |
| 应用程序所有者、数据工程师、云架构师 |
相关资源
AWS资源
Precisely Connect 资源
Confluent 资源