选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

使用 Precission Connect 将大型机数据库复制到 AWS

聚焦模式
使用 Precission Connect 将大型机数据库复制到 AWS - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

由 Lucio Pereira (AWS)、Balaji Mohan (AWS) 和 Sayantan Giri (AWS) 编写

摘要

此模式概述了使用 Precission Connect 近乎实时地将数据从大型机数据库复制到 Amazon 数据存储的步骤。它通过 Amazon Managed Streaming for Apache Kafka (Amazon MSK) 和云中的自定义数据库连接器实现了基于事件的架构,以提高可扩展性、弹性和性能。

Precisely Connect 是一种复制工具,可从遗留大型机系统捕获数据并将其集成到云环境中。通过使用具有低延迟和高吞吐量的异构数据管道的近乎实时的消息流,通过变更数据捕获 (CDC) 将数据从大型机复制到 AWS。 

该模式还涵盖了具有多区域数据复制和失效转移路由功能的弹性数据管道的灾难恢复策略。

先决条件和限制

先决条件

架构

源技术堆栈

至少包含以下数据库之一的大型机环境:

  • IBM IMS 数据库

  • IBM DB2 数据库

  • VSAM 文件

目标技术堆栈

  • Amazon MSK

  • Amazon Elastic Kubernetes Service (Amazon EKS) 和 Amazon EKS Anywhere

  • Docker

  • AWS 关系或 NoSQL 数据库,如下所示:

    • Amazon DynamoDB

    • Amazon Relational Database Service (Amazon RDS) for Oracle、Amazon RDS for PostgreSQL 或 Amazon Aurora

    • ElastiCache 适用于 Redis 的 Amazon

    • Amazon Keyspaces(Apache Cassandra 兼容)

目标架构

将大型机数据复制至 AWS 数据库

下图说明了将大型机数据复制到 AWS 数据库,例如 DynamoDB、Amazon RDS、Amazon 或 Amazon Keyspac ElastiCache es 的情况。通过在本地大型机环境中使用 Precisely Capture 和 Publisher、在本地分布式环境中使用 Amazon EKS Anywhere 上的 Precisely Dispatcher 以及在 Amazon Web Services Cloud 中使用 Precisely Apply Engine 和数据库连接器,可以近乎实时地进行复制。 

将大型机数据复制到 AWS 数据库

图表显示了以下工作流:

  1. Precisely Capture 从 CDC 日志中获取大型机数据,并将数据维护在内部临时存储中。

  2. Precisely Publisher 侦听内部数据存储中的更改,并通过 TCP/IP 连接将 CDC 记录发送到 Precisely Dispatcher。

  3. Precisely Dispatcher 从 Publisher 接收 CDC 记录并将其发送到 Amazon MSK。调度程序根据用户配置和多个工作任务创建 Kafka 键以并行推送数据。当记录存储在 Amazon MSK 中后,调度程序会向 Publisher 发送确认信息。

  4. Amazon MSK 在云环境中保存 CDC 记录。主题的分区大小取决于您的事务处理系统 (TPS) 对吞吐量的要求。Kafka 密钥对于进一步的转换和事务排序是必需的。

  5. Precisely Apply Engine 监听来自 Amazon MSK 的 CDC 记录,并根据目标数据库要求转换数据(例如,通过筛选或映射)。您可将自定义逻辑添加至 Precission SQD 脚本。(SQD 是 Precist 的专有语言。) Precisely Apply Engine 将每条 CDC 记录转换为 Apache Avro 或 JSON 格式,并根据您的要求将其分发到不同的主题。

  6. 目标 Kafka 主题根据目标数据库保存多个主题中的 CDC 记录,并且 Kafka 根据定义的 Kafka 键促进事务排序。分区键与相应的分区对齐以支持顺序过程。 

  7. 数据库连接器(自定义 Java 应用程序)监听来自 Amazon MSK 的 CDC 记录并将其存储在目标数据库中。

  8. 可根据您的要求选择目标数据库。此模式同时支持 NoSQL 与关系数据库。

灾难恢复

业务连续性是组织成功的关键。Amazon Web Services Cloud 提供高可用性 (HA) 和灾难恢复 (DR) 功能,并支持贵组织的失效转移和备用计划。此模式遵循主动/被动灾难恢复策略,并为实施满足 RTO 和 RPO 要求的灾难恢复策略提供高级指导。

下图说明了 DR 的工作流。

用于在 AWS 上复制大型机数据的灾难恢复工作流

此图显示以下内容:

  1. 如果 AWS 区域 1 发生任何故障,则需要进行半自动失效转移。如果区域 1 出现故障,系统必须启动路由更改,才能将 Precisly Dispatcher 连接至区域 2。 

  2. Amazon MSK 在不同区域间通过镜像复制数据,因此,在失效转移期间,区域 2 中的 Amazon MSK 集群必须提升为主要领导者。 

  3. Precisely Apply Engine 和数据库连接器是无状态应用程序,可以在任何区域中工作。 

  4. 数据库同步取决于目标数据库。例如,DynamoDB 可以使用全局表,也可以使用全局数据 ElastiCache 存储。

通过数据库连接器执行低延迟和高吞吐量处理

数据库连接器是此模式中的关键组件。连接器采用基于侦听器的方法从 Amazon MSK 收集数据,并通过任务关键型应用程序(第 0 层和第 1 层)的高吞吐量和低延迟处理将事务发送到数据库。下图阐明了此过程。

使用数据库连接器在 AWS 复制大型机数据

该模式支持通过多线程处理引擎开发具有单线程消耗的定制应用程序。

  1. 连接器主线程使用来自 Amazon MSK 的 CDC 记录并将其发送至线程池进行处理。

  2. 线程池中的线程处理 CDC 记录并将其发送至目标数据库。

  3. 如果所有线程都处于繁忙状态,则线程队列保留 CDC 记录。

  4. 主线程等待从线程队列中清除所有记录,并将偏移量提交至 Amazon MSK 中。

  5. 子线程处理故障。如果在处理过程中发生故障,则失败的消息将发送到 DLQ(死信队列)主题。

  6. 子线程根据大型机时间戳启动条件更新(参见 DynamoDB 文档中的条件表达式),以避免数据库中的任何重复 out-of-order或更新。

有关如何实现具有多线程功能的 Kafka 消费者应用程序的信息,请参阅 Confluent 网站上的博客文章 Apache Kafka 消费者使用多线程消息消费

工具

Amazon Web Services

其他工具

  • Precission Connect 将来自传统大型机系统(例如 VSAM 数据集或 IBM 大型机数据库)的数据集成到下一代云和数据平台中。

最佳实践

  • 找到 Kafka 分区和多线程连接器的最佳组合,从而平衡最佳性能和成本。由于 MIPS(每秒百万条指令)消耗量更高,多个 Precist Capture 和 Dispatcher 实例可能会增加成本。

  • 避免向数据库连接器添加数据操作和转换逻辑。为此,请使用 Precisely Apply Engine,它提供以微秒为单位的处理时间。

  • 在数据库连接器中创建对数据库的定期请求或运行状况检查调用(检测信号),以频繁预热连接并减少延迟。

  • 实现线程池验证逻辑,以了解线程队列中的待处理任务,并在下一次 Kafka 轮询之前等待所有线程完成。这有助于避免节点、容器或进程崩溃时数据丢失。

  • 通过运行状况端点公开延迟指标,通过控制面板和跟踪机制增强可观测性。

操作说明

Task描述所需技能

设置大型机过程(批处理或在线实用程序),以从大型机数据库启动 CDC 过程。

  1. 确定大型机环境。

  2. 确定将参与 CDC 流程的大型机数据库。

  3. 在大型机环境中,开发一个启动 CDC 工具来捕获源数据库中的更改的过程。有关说明,请参阅大型机文档。

  4. 记录 CDC 过程,包括配置。

  5. 在测试和生产环境部署该过程。 

大型机工程师

激活大型机数据库日志流。

  1. 在大型机环境中配置日志流以捕获 CDC 日志。有关说明,请参阅大型机文档。

  2. 测试日志流以确保捕获了必要的数据。

  3. 在测试和生产环境部署日志流。

大型机数据库专家

使用捕获组件捕获 CDC 记录。

  1. 在大型机环境中安装与配置 Precision Capture 组件。有关说明,请参阅 Precisely 文档

  2. 测试配置以确保 Capture 组件正常运行。

  3. 设置复制过程以通过捕获组件复制捕获的 CDC 记录。

  4. 记录每个源数据库的捕获配置。

  5. 开发监控系统以确保 Capture 组件随着时间的推移正确收集日志。

  6. 在测试和生产环境中部署安装与配置。

大型机工程师、Precisely Connect SME

配置 Publisher 组件以侦听 Capture 组件。

  1. 在大型机环境中安装并配置 Precisely Publisher 组件。有关说明,请参阅 Precisely 文档

  2. 测试配置以确保 Publisher 组件正常工作。

  3. 设置复制流程,将 CDC 记录从 Publisher 发布至 Precist Dispatcher 组件。

  4. 记录 Publisher 配置。

  5. 开发一个监控系统以确保 Publisher 组件随着时间的推移正常工作。

  6. 在测试和生产环境中部署安装与配置。

大型机工程师、Precisely Connect SME

在本地分布式环境中预配 Amazon EKS Anywhere。

  1. 在本地基础设施上安装 Amazon EKS Anywhere,并确保其配置正确。有关说明,请参阅 Amazon EKS Anywhere 文档。

  2. 为 Kubernetes 集群设置安全的网络环境,包括防火墙。

  3. 实施并测试将示例应用程序部署到 Amazon EKS Anywhere 集群。

  4. 实现集群的自动伸缩功能。

  5. 制定并实施备份和灾难恢复程序。 

DevOps 工程师

在分布式环境中部署和配置 Dispatcher 组件,以便在 Amazon Web Services Cloud 中发布主题。

  1. 配置和容器化 Precisely Dispatcher 组件。有关说明,请参阅 Precisely 文档

  2. 将 Dispatcher Docker 映像部署至本地 Amazon EKS Anywhere 环境中。

  3. 在 Amazon Web Services Cloud 和 Dispatcher 之间建立安全连接。

  4. 开发监控系统以确保 Dispatcher 组件随着时间的推移正常工作。

  5. 在测试和生产环境中部署安装与配置。 

DevOps 工程师,Precission Conn

准备源环境(本地)

Task描述所需技能

设置大型机过程(批处理或在线实用程序),以从大型机数据库启动 CDC 过程。

  1. 确定大型机环境。

  2. 确定将参与 CDC 流程的大型机数据库。

  3. 在大型机环境中,开发一个启动 CDC 工具来捕获源数据库中的更改的过程。有关说明,请参阅大型机文档。

  4. 记录 CDC 过程,包括配置。

  5. 在测试和生产环境部署该过程。 

大型机工程师

激活大型机数据库日志流。

  1. 在大型机环境中配置日志流以捕获 CDC 日志。有关说明,请参阅大型机文档。

  2. 测试日志流以确保捕获了必要的数据。

  3. 在测试和生产环境部署日志流。

大型机数据库专家

使用捕获组件捕获 CDC 记录。

  1. 在大型机环境中安装与配置 Precision Capture 组件。有关说明,请参阅 Precisely 文档

  2. 测试配置以确保 Capture 组件正常运行。

  3. 设置复制过程以通过捕获组件复制捕获的 CDC 记录。

  4. 记录每个源数据库的捕获配置。

  5. 开发监控系统以确保 Capture 组件随着时间的推移正确收集日志。

  6. 在测试和生产环境中部署安装与配置。

大型机工程师、Precisely Connect SME

配置 Publisher 组件以侦听 Capture 组件。

  1. 在大型机环境中安装并配置 Precisely Publisher 组件。有关说明,请参阅 Precisely 文档

  2. 测试配置以确保 Publisher 组件正常工作。

  3. 设置复制流程,将 CDC 记录从 Publisher 发布至 Precist Dispatcher 组件。

  4. 记录 Publisher 配置。

  5. 开发一个监控系统以确保 Publisher 组件随着时间的推移正常工作。

  6. 在测试和生产环境中部署安装与配置。

大型机工程师、Precisely Connect SME

在本地分布式环境中预配 Amazon EKS Anywhere。

  1. 在本地基础设施上安装 Amazon EKS Anywhere,并确保其配置正确。有关说明,请参阅 Amazon EKS Anywhere 文档。

  2. 为 Kubernetes 集群设置安全的网络环境,包括防火墙。

  3. 实施并测试将示例应用程序部署到 Amazon EKS Anywhere 集群。

  4. 实现集群的自动伸缩功能。

  5. 制定并实施备份和灾难恢复程序。 

DevOps 工程师

在分布式环境中部署和配置 Dispatcher 组件,以便在 Amazon Web Services Cloud 中发布主题。

  1. 配置和容器化 Precisely Dispatcher 组件。有关说明,请参阅 Precisely 文档

  2. 将 Dispatcher Docker 映像部署至本地 Amazon EKS Anywhere 环境中。

  3. 在 Amazon Web Services Cloud 和 Dispatcher 之间建立安全连接。

  4. 开发监控系统以确保 Dispatcher 组件随着时间的推移正常工作。

  5. 在测试和生产环境中部署安装与配置。 

DevOps 工程师,Precission Conn
Task描述所需技能

在指定的 AWS 区域配置 Amazon EKS 集群。

  1. 登录您的 Amazon Web Services account 并对其进行配置,以确保拥有创建和管理 Amazon EKS 集群所需权限。

  2. 在所选 AWS 区域中创建虚拟私有云(VPC)和子网。有关说明,请参阅 Amazon EKS 文档

  3. 创建和配置必要的网络安全组,以允许 Amazon EKS 集群与 VPC 中的其他资源间进行通信。有关更多信息,请参阅 Amazon EKS 文档

  4. 创建 Amazon EKS 集群并使用正确的节点组大小和实例类型对其进行配置。

  5. 通过部署示例应用程序,以验证 Amazon EKS 集群。

DevOps 工程师、网络管理员

配置 MSK 集群并配置适用 Kafka 主题。

  1. 配置您的 Amazon Web Services account,确保拥有创建和管理 MSK 集群所需权限。

  2. 创建和配置必要的网络安全组,以允许 MSK 集群与 VPC 中的其他资源进行通信。有关更多信息,请参阅 Amazon VPC 文档

  3. 创建 MSK 集群,并将其配置为包含应用程序将使用的 Kafka 主题。有关更多信息,请参阅 Amazon MSK 文档

DevOps 工程师、网络管理员

配置 Apply Engine 组件,以侦听复制的 Kafka 主题。

  1. 配置和容器化 Precisely Apply Engine 组件

  2. 将 Apply Engine Docker 映像部署到您的 Amazon Web Services account 中的 Amazon EKS 集群。

  3. 设置 Apply Engine 以侦听 MSK 主题。

  4. 在 Apply Engine 中开发和配置 SQD 脚本来处理筛选和转换。有关更多信息,请参阅 Precisely 文档

  5. 在测试与生产环境中部署应用引擎。

Precisely Connect SME

在 Amazon Web Services Cloud 中配置 DB 实例。

  1. 配置 Amazon Web Services account,确保拥有创建和管理数据库集群和表所需权限。有关说明,请参阅您希望使用的 AWS 数据库服务的 AWS 文档。(有关链接,请参阅资源部分。)

  2. 在选定的 AWS 区域创建 VPC 和子网。

  3. 创建和配置必要的网络安全组,以允许数据库实例与 VPC 中的其他资源进行通信。

  4. 创建数据库,并将其配置为包含应用程序将使用的表。

  5. 设计和验证数据库架构。 

数据工程师、 DevOps 工程师

配置和部署数据库连接器以侦听 Apply Engine 发布的主题。

  1. 设计数据库连接器,将 Kafka 主题与您在前面步骤中创建的 AWS 数据库连接。

  2. 根据目标数据库开发连接器。

  3. 配置连接器以侦听 Apply Engine 发布的 Kafka 主题。

  4. 将连接器部署到 Amazon EKS 集群中。

应用程序开发人员、云架构师、数据工程师

准备目标环境 (AWS)

Task描述所需技能

在指定的 AWS 区域配置 Amazon EKS 集群。

  1. 登录您的 Amazon Web Services account 并对其进行配置,以确保拥有创建和管理 Amazon EKS 集群所需权限。

  2. 在所选 AWS 区域中创建虚拟私有云(VPC)和子网。有关说明,请参阅 Amazon EKS 文档

  3. 创建和配置必要的网络安全组,以允许 Amazon EKS 集群与 VPC 中的其他资源间进行通信。有关更多信息,请参阅 Amazon EKS 文档

  4. 创建 Amazon EKS 集群并使用正确的节点组大小和实例类型对其进行配置。

  5. 通过部署示例应用程序,以验证 Amazon EKS 集群。

DevOps 工程师、网络管理员

配置 MSK 集群并配置适用 Kafka 主题。

  1. 配置您的 Amazon Web Services account,确保拥有创建和管理 MSK 集群所需权限。

  2. 创建和配置必要的网络安全组,以允许 MSK 集群与 VPC 中的其他资源进行通信。有关更多信息,请参阅 Amazon VPC 文档

  3. 创建 MSK 集群,并将其配置为包含应用程序将使用的 Kafka 主题。有关更多信息,请参阅 Amazon MSK 文档

DevOps 工程师、网络管理员

配置 Apply Engine 组件,以侦听复制的 Kafka 主题。

  1. 配置和容器化 Precisely Apply Engine 组件

  2. 将 Apply Engine Docker 映像部署到您的 Amazon Web Services account 中的 Amazon EKS 集群。

  3. 设置 Apply Engine 以侦听 MSK 主题。

  4. 在 Apply Engine 中开发和配置 SQD 脚本来处理筛选和转换。有关更多信息,请参阅 Precisely 文档

  5. 在测试与生产环境中部署应用引擎。

Precisely Connect SME

在 Amazon Web Services Cloud 中配置 DB 实例。

  1. 配置 Amazon Web Services account,确保拥有创建和管理数据库集群和表所需权限。有关说明,请参阅您希望使用的 AWS 数据库服务的 AWS 文档。(有关链接,请参阅资源部分。)

  2. 在选定的 AWS 区域创建 VPC 和子网。

  3. 创建和配置必要的网络安全组,以允许数据库实例与 VPC 中的其他资源进行通信。

  4. 创建数据库,并将其配置为包含应用程序将使用的表。

  5. 设计和验证数据库架构。 

数据工程师、 DevOps 工程师

配置和部署数据库连接器以侦听 Apply Engine 发布的主题。

  1. 设计数据库连接器,将 Kafka 主题与您在前面步骤中创建的 AWS 数据库连接。

  2. 根据目标数据库开发连接器。

  3. 配置连接器以侦听 Apply Engine 发布的 Kafka 主题。

  4. 将连接器部署到 Amazon EKS 集群中。

应用程序开发人员、云架构师、数据工程师
Task描述所需技能

为您的业务应用程序定义灾难恢复目标。

  1. 根据您的业务需求和影响分析,定义 CDC 渠道 RPO 和 RTO 目标。

  2. 定义沟通和通知程序,以确保所有利益相关者都了解灾难恢复计划。

  3. 确定实施灾难恢复计划所需预算以及资源。

  4. 记录灾难恢复目标,包含 RPO 和 RTO 目标。

云架构师、数据工程师、应用程序所有者

根据定义 RTO/RPO 设计灾难恢复策略。

  1. 根据您的关键程度和恢复要求,确定最适合 CDC 管道的灾难恢复策略。

  2. 定义灾难恢复架构和拓扑。

  3. 定义 CDC 管道的失效转移和失效自动恢复程序,以确保它们能够快速、无缝地切换到备份区域。

  4. 记录灾难恢复策略和程序,并确保所有利益相关者对设计有清晰的了解。

云架构师、数据工程师

配置灾难恢复集群和配置。

  1. 为灾难恢复配置辅助 AWS 区域。

  2. 在辅助的 AWS 区域 中,创建与主 AWS 区域 相同的环境。

  3. 在主区域和辅助区域 MirrorMaker 之间配置 Apache Kafka。有关更多信息,请参阅 Amazon MSK 文档

  4. 在辅助区域中配置备用应用程序。

  5. 配置主区域和辅助区域之间的数据库复制。

DevOps 工程师、网络管理员、云架构师

测试 CDC 管道灾难恢复。

  1. 定义 CDC 管道灾难恢复测试的范围和目标,包括测试场景和要实现的 RTO。

  2. 确定用于进行灾难恢复测试的测试环境和基础设施。

  3. 准备测试数据集和脚本来模拟故障场景。

  4. 验证数据的完整性和一致性,确保数据不丢失。

应用程序所有者、数据工程师、云架构师

设置业务连续性和灾难恢复

Task描述所需技能

为您的业务应用程序定义灾难恢复目标。

  1. 根据您的业务需求和影响分析,定义 CDC 渠道 RPO 和 RTO 目标。

  2. 定义沟通和通知程序,以确保所有利益相关者都了解灾难恢复计划。

  3. 确定实施灾难恢复计划所需预算以及资源。

  4. 记录灾难恢复目标,包含 RPO 和 RTO 目标。

云架构师、数据工程师、应用程序所有者

根据定义 RTO/RPO 设计灾难恢复策略。

  1. 根据您的关键程度和恢复要求,确定最适合 CDC 管道的灾难恢复策略。

  2. 定义灾难恢复架构和拓扑。

  3. 定义 CDC 管道的失效转移和失效自动恢复程序,以确保它们能够快速、无缝地切换到备份区域。

  4. 记录灾难恢复策略和程序,并确保所有利益相关者对设计有清晰的了解。

云架构师、数据工程师

配置灾难恢复集群和配置。

  1. 为灾难恢复配置辅助 AWS 区域。

  2. 在辅助的 AWS 区域 中,创建与主 AWS 区域 相同的环境。

  3. 在主区域和辅助区域 MirrorMaker 之间配置 Apache Kafka。有关更多信息,请参阅 Amazon MSK 文档

  4. 在辅助区域中配置备用应用程序。

  5. 配置主区域和辅助区域之间的数据库复制。

DevOps 工程师、网络管理员、云架构师

测试 CDC 管道灾难恢复。

  1. 定义 CDC 管道灾难恢复测试的范围和目标,包括测试场景和要实现的 RTO。

  2. 确定用于进行灾难恢复测试的测试环境和基础设施。

  3. 准备测试数据集和脚本来模拟故障场景。

  4. 验证数据的完整性和一致性,确保数据不丢失。

应用程序所有者、数据工程师、云架构师

相关资源

AWS 资源

Precisely Connect 资源

Confluent 资源

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。