此参考体系结构概述了在现代化过程中复制和同步数据的实施计划。 它讨论数据存储、工具和服务等技术问题。
体系结构
下载此体系结构的 Visio 文件。
工作流
大型机和中型机系统定期更新本地应用程序数据库。 为了保持一致性,解决方案将最新数据与 Azure 数据库同步。 同步过程涉及以下步骤:
这些操作在整个过程中发生:
- 本地数据网关在本地系统和 Azure 服务之间快速安全地传输数据。 借助此配置,本地数据网关可以从 Azure 接收指令并复制数据,而无需本地网络直接公开本地数据资产。
- Azure 数据工厂管道协调从数据提取到数据加载这一系列的活动。 可以计划管道活动、手动启动管道活动或自动触发它们。
本地数据库(如 Db2 zOS、Db2 for i 和 Db2 LUW)存储数据。
管道将执行任务的活动分组。 为了提取数据,数据工厂动态为每个本地表创建一个管道。 然后,可以在 Azure 中复制数据时使用大规模并行实现。 但还可以配置解决方案配置以满足要求:
- 完全复制:复制整个数据库,对目标 Azure 数据库中的数据类型和字段进行必要的修改。
- 部分复制、增量复制:使用源表中的水印列将更新的行与 Azure 数据库同步。 这些列包含连续递增键或指示表上次更新的时间戳。
数据工厂还使用管道转换以下任务:
- 数据类型转换
- 数据操作
- 数据格式设置
- 列派生
- 数据平展
- 数据排序
- 数据筛选
自承载集成运行时 (IR) 提供数据工厂用于运行和调度活动的环境。
Azure Data Lake Storage Gen2 和 Azure Blob 存储为数据暂存提供位置。 转换和合并来自多个源的数据有时需要此步骤。
接下来将进行数据准备。 数据工厂使用 Azure Databricks、自定义活动和管道数据流来快速有效地转换数据。
数据工厂将数据加载到关系和非关系 Azure 数据库:
- Azure SQL
- Azure Database for PostgreSQL
- Azure Cosmos DB
- Azure Data Lake Storage
- Azure Database for MariaDB
- Azure Database for MySQL
某些用例中,其他工具也可加载数据。
其他工具还可复制和转换数据:
- 用于分布式关系数据库体系结构 (DRDA) 的Microsoft 服务:这些 DRDA 服务可以连接到 Azure SQL 数据库系列,并使本地数据库保持最新状态。 这些服务在本地虚拟机 (VM) 或 Azure VM 上运行。
- 用于 Db2 的 Microsoft SQL Server 迁移助手 (SSMA):此工具将架构和数据从 IBM Db2 数据库迁移到 Azure 数据库。
- SQL Server Integration Services (SSIS):此平台可以提取、转换和加载数据。
- 第三方工具:当解决方案需要准实时复制时,可以使用第三方工具。 其中一些代理可在 Azure 市场中找到。
Azure Synapse Analytics 管理数据并使其可用于商业智能和机器学习应用程序。
组件
此解决方案使用以下组件:
工具
用于 DRDA 的 Microsoft 服务是 Host Integration Server (HIS) 的组件。 Microsoft Service for DRDA 是 DRDA 应用程序请求程序 (AR) 客户端使用的应用程序服务器。 DRDA AR 客户端的示例包括适用于 z/OS 的 IBM Db2 和适用于 i5/OS 的 Db2。 这些客户端使用此应用程序服务器来转换 Db2 SQL 语句,并在 SQL Server 上运行它们。
用于 Db2 的 SSMA 实现从 Db2 到 Microsoft 数据库服务的自动化迁移。 在 VM 上运行时,此工具将 Db2 数据库对象转换为 SQL Server 数据库对象,并在 SQL Server 中创建这些对象。 然后,用于 Db2 的 SSMA 将数据从 Db2 迁移到以下服务:
- SQL Server 2012
- SQL Server 2014
- SQL Server 2016
- Windows 和 Linux 上的 SQL Server 2017
- Windows 和 Linux 上的 SQL Server 2019
- Azure SQL 数据库
Azure Synapse Analytics 是用于数据仓库和大数据系统的分析服务。 此工具使用 Spark 技术,并与 Power BI、Azure 机器学习和其他 Azure 服务深度集成。
数据集成服务
Azure 数据工厂是混合数据集成服务。 可以使用此完全托管的无服务器解决方案来创建、计划和协调 ETL 和 ELT 工作流。
Azure Synapse Analytics 是一项企业分析服务,可以缩短在数据仓库和大数据系统中生成见解所需的时间。 Azure Synapse 汇集了企业数据仓库中所用 SQL 技术的精华、用于大数据的 Spark 技术、用于日志和时序分析的数据资源管理器、用于数据集成和 ETL/ELT 的管道,以及与其他 Azure 服务(如 Power BI、Azure Cosmos DB 和 Azure 机器学习)的深度集成。
SQL Server Integration Services (SSIS) 是用于生成企业级数据集成和数据转换解决方案的平台。 可以使用 SSIS 来管理、复制、清理和挖掘数据。
Azure Databricks 是一个数据分析平台。 Azure Databricks 基于 Apache Spark 开源分布式处理系统,针对 Azure 云平台进行了优化。 在分析工作流中,Azure Databricks 从多个源读取数据,并使用 Spark 提供见解。
数据存储
Azure SQL 数据库属于 Azure SQL 系列,专为云而构建。 此服务拥有完全托管且经久不衰的平台即服务的所有优势。 SQL 数据库还包含由 AI 提供支持的自动化功能,这些功能可优化性能和持续性。 无服务器计算和超大规模存储选项可按需自动缩放资源。
SQL 托管实例属于 Azure SQL 服务系列。 这种可缩放的智能云数据库服务将最强的 SQL Server 引擎兼容性与完全托管且经久不衰的平台即服务 (PAAS) 的所有优势相结合。 借助 SQL 托管实例,可以大规模实现现有应用的现代化。
Azure VM 上的 SQL Server 提供了一种方法,可将 SQL Server 工作负载迁移到具有 100% 代码兼容性的云中。 作为 Azure SQL 系列一部分,Azure VM 上的 SQL Server 既有 SQL Server 的性能、安全性和分析功能,又有 Azure 的灵活性和混合连接功能。 借助 Azure VM 上的 SQL Server,可以迁移现有应用或生成新应用。 也可以访问最新的 SQL Server 更新和版本,包括 SQL Server 2019。
Azure Database for PostgreSQL 是基于开放源代码 PostgreSQL 数据库引擎社区版本的完全托管的关系数据库服务。 使用此服务,可以专注于应用程序创新,而不是数据库管理。 还可快速轻松地缩放工作负载。
Azure Cosmos DB 是全球分布的多模型数据库。 借助 Azure Cosmos DB,解决方案可在任意数量的地理区域内灵活且独立地缩放吞吐量和存储。 此完全托管的 NoSQL 数据库服务可保证全球任何位置实现个位数毫秒级延迟(第 99 分位值)。
Data Lake Storage 是可按原始格式存储大量数据的存储库。 Data Lake 存储经过优化,数据规模可以达到数 TB 甚至数 PB。 这些数据通常来自多个异类源,可以是结构化的、半结构化的或非结构化的。 Data Lake Storage Gen2 结合了 Data Lake Storage Gen1 功能与 Blob 存储。 这一下一代数据湖解决方案提供文件系统语义、文件级安全性和缩放功能。 但它还提供 Blob 存储的分层存储、高可用性和灾难恢复功能。
Azure Database for MariaDB 是基于云的关系数据库服务。 此服务基于 MariaDB 社区版数据库引擎。
Azure Database for MySQL 是基于社区版开源 MySQL 数据库引擎的完全托管的关系数据库服务。
Blob 存储提供优化的云对象存储,用于管理大量非结构化数据。
网络
本地数据网关充当连接本地数据与云服务的桥梁。 通常是将网关安装在专用的本地 VM 上。 随后云服务就可以安全地使用本地数据。
IR 是数据工厂用来在不同网络环境间集成数据的计算基础结构。 数据工厂使用自承载 IR 在云数据存储和本地网络的数据存储之间复制数据。 还可以使用 Azure Synapse Pipelines。
方案详细信息
数据可用性和完整性在大型机和中型机现代化中发挥着重要作用。 数据优先策略有助于在迁移到 Azure 期间保持数据完好且可用。 为了避免在现代化过程中影响应用程序,有时需要快速复制数据或使本地数据与 Azure 数据库保持同步。
具体来说,此解决方案涉及:
- 提取:连接到源数据库并从中提取数据。
- 转换:
- 暂存:临时以原始格式存储数据,并准备数据以进行转换。
- 准备:使用满足目标数据库要求的映射规则来转换和操控数据。
- 加载:将数据插入目标数据库。
可能的用例
可从此解决方案中受益的数据复制和同步方案包括:
- 可使用 Azure 来服务所有查询通道的命令和查询责任分离 (CQRS) 体系结构。
- 可并行测试本地应用程序和重新托管/重新设计的应用程序的环境。
- 具有需要分阶段修正或现代化的紧密耦合应用程序的本地系统。
建议
使用数据工厂提取数据时,请优化复制活动的性能。
注意事项
这些注意事项实施 Azure 架构良好的框架的支柱原则,即一套可用于改善工作负荷质量的指导原则。 有关详细信息,请参阅 Microsoft Azure 架构良好的框架。
考虑此体系结构时,请记住以下几点。
可靠性
可靠性可确保应用程序符合你对客户的承诺。 有关详细信息,请参阅可靠性支柱概述。
基础结构管理(包括可用性)在 Azure 数据库中自动完成。
若要了解用于 DRDA 的 Microsoft 服务提供的故障转移保护,请参阅池和故障转移。
可以聚集本地数据网关和 IR,以提供更高的可用性保证。
安全性
安全性针对蓄意攻击及滥用宝贵数据和系统提供保障措施。 有关详细信息,请参阅安全性支柱概述。
利用网络安全组将服务的访问权限限制在它们需要运行的范围。
对你的 PaaS(平台即服务)服务使用专用终结点。 使用服务防火墙来补充可通过 Internet 访问和无法访问的服务的安全性。
请注意本地客户端标识与 Azure 中的客户端标识之间的差异。 你需要补偿任何差异。
对组件到组件数据流使用托管标识。
请参阅使用 Microsoft Service for DRDA 规划和构建解决方案,了解 Microsoft Service for DRDA 支持的客户端连接类型。 客户端连接会影响网络上的事务、池、故障转移、身份验证和加密的性质。
成本优化
成本优化是关于寻找减少不必要的费用和提高运营效率的方法。 有关详细信息,请参阅成本优化支柱概述。
定价模型因组件服务而异。 查看可用组件服务的定价模型,以确保定价模型符合预算。
要估计此解决方案的实现成本,请使用 Azure 定价计算器。
卓越运营
卓越运营涵盖了部署应用程序并使其在生产环境中保持运行的运营流程。 有关详细信息,请参阅卓越运营支柱概述。
性能效率
性能效率是指工作负荷能够以高效的方式扩展以满足用户对它的需求。 有关详细信息,请参阅性能效率要素概述。
使用本地应用程序网关时,请注意读取和写入操作的限制。
如果实施时使用大量带宽用于初始复制或持续复制更改的数据,请考虑使用 Azure ExpressRoute 进行大规模操作。
后续步骤
- 有关详细信息,请参考 Azure 数据工程 - 本地现代化。
- 阅读迁移指南。
相关资源
- [Azure 数据体系结构指南][Azure 数据体系结构指南]
- Azure 数据平台端到端