Azure 数据工厂中的可靠性

本文介绍 Azure 数据工厂的可靠性支持。 它通过 可用性区域多区域部署涵盖区域内部复原能力。

可靠性是你和Microsoft之间的共同责任。 可以使用本指南了解哪些可靠性选项满足特定的业务目标和运行时间目标。

可以使用数据工厂为无服务器数据集成和数据转换创建灵活而强大的数据管道。 因此,定义可靠性 业务连续性计划 时,需要考虑以下方面的可靠性要求和指南:

  • 数据工厂管道

  • 集成运行时 (IR),用于连接数据存储并执行管道中定义的活动。

  • 连接到数据工厂的数据存储。 若要帮助确保数据存储满足业务连续性要求,请参阅其产品可靠性文档和指南。

可靠性体系结构概述

数据工厂由多个基础结构组件组成。 每个组件以各种方式支持基础结构可靠性。

数据工厂的组件包括:

  • 核心数据工厂服务,用于管理管道触发器并监督管道活动的协调。 核心服务还管理数据工厂中每个组件的元数据。 Microsoft管理核心服务。

  • 集成运行时 (IR),用于在管道中执行特定活动。 有不同类型的 IR。

    • Microsoft 托管的 IR,其中包括 Azure IR 和 Azure-SQL 服务器集成服务(Azure-SSIS)IR。 Microsoft 管理构成这些运行时的组件。 在某些情况下,可以配置影响 IR 复原能力的设置。

    • 自承载集成运行时 (SHIR)。 Microsoft提供可在自己的计算基础结构上运行的软件,以执行数据工厂管道的某些部分。 你负责计算资源的部署和管理,以及这些计算资源的复原能力。

暂时性故障

暂时性故障是指组件发生短暂的间歇性故障。 这些故障经常出现在云之类的分布式环境中,在运营过程中比较常见。 经过短暂的时间后,它们就会自我纠正。 应用程序必须能够处理暂时性故障,处理方式通常是重试受影响的请求。

与任何云托管 API、数据库和其他组件通信时,所有云托管的应用程序都应遵循 Azure 暂时性故障处理指南。 有关详细信息,请参阅 有关处理暂时性故障的建议

使用数据工厂时,请务必准备暂时性故障,尤其是在设计管道和活动时。

幂等性

管道活动应是 幂等的,这意味着它们可以多次重新运行,而不会造成任何负面影响。 如果发生网络故障或可用性区域中断等暂时性故障,数据工厂可能会重新运行管道活动。 此重新运行可以创建重复的记录。

若要防止由于暂时性故障而插入重复记录,请实现以下最佳做法:

  • 在写入数据库之前,请为每个记录使用唯一标识符。 此方法可以帮助你查找和消除重复记录。

  • 对支持 upsert 的连接器使用 upsert 策略 。 在发生重复记录插入之前,请使用此方法检查记录是否已存在。 如果已存在,则更新它; 如果不存在,则插入它。 例如,MERGEON DUPLICATE KEY UPDATE 等 SQL 命令将使用此更新插入方法。

  • 使用复制操作策略。 有关详细信息,请参阅 复制活动中的数据一致性验证

重试策略

可以使用重试策略来配置管道的某些部分,以在出现问题时重试,例如连接资源中的暂时性故障。 在数据工厂中,可以在以下管道对象类型上配置重试策略:

有关如何更改或禁用数据工厂触发器和活动相关重试策略的详细信息,请参阅管道运行和触发器

可用性区域支持

可用性区域是每个 Azure 区域内在物理上独立的数据中心组。 当一个区域发生故障时,服务可以转移到其他剩余区域中的一个。

有关 Azure 中可用性区域的详细信息,请参阅什么是可用性区域?

数据工厂支持区域冗余性,从而能够在可用性区域中抵御故障。 本部分介绍数据工厂服务的每个部分如何支持区域冗余。

支持的区域

可以在 支持可用性区域的任何区域中部署区域冗余数据工厂资源。

注意事项

核心服务: Microsoft管理核心数据工厂服务中的组件,并将其分散到可用性区域。

IR: 区域冗余支持取决于您使用的 IR 类型。

  • Azure IR 支持区域冗余,Microsoft管理此功能。

  • Azure-SSIS IR 要求至少部署两个节点。 这些节点会自动分配到不同的可用性区域。

  • A SHIR 赋予你部署计算基础架构以托管运行环境的责任。 可以部署多个节点,例如单个虚拟机(VM),并对其进行配置以实现高可用性。 然后,可以将这些节点分布在多个可用性区域中。 有关详细信息,请参阅 高可用性和可伸缩性

成本

核心服务: 区域冗余无需额外付费。

国税 局: 区域冗余的成本因使用的 IR 类型而异。

  • Azure IR 包括区域冗余,无需额外付费。

  • Azure-SSIS IR 要求部署至少两个节点以实现区域冗余。 有关如何对每个节点计费的详细信息,请参阅 定价示例:在 Azure-SSIS IR 上运行 SSIS 包

  • SHIR 要求部署和管理计算基础结构。 若要实现区域复原,需要将计算资源分散到多个区域。 根据部署的节点数和配置方式,可能会从基础计算服务和其他支持服务产生额外的成本。 在多个节点上运行 SHIR 无需额外付费。

配置可用性区域支持

核心服务: 无需配置。 数据工厂核心服务自动支持区域冗余。

国税 局:

  • Azure IR: 无需配置。 Azure IR 自动启用区域冗余。

  • Azure-SSIS IR:无需配置。 Azure-SSIS IR 在使用两个或更多节点部署时自动启用区域冗余。

  • SHIR 要求您自行配置弹性能力,包括跨多个可用区分布节点。

容量规划和管理

核心服务: 数据工厂核心服务可根据需求自动缩放,无需计划或管理容量。

国税 局:

  • Azure IR 可根据需求自动缩放,无需计划或管理容量。

  • Azure-SSIS IR 需要你具体配置所使用的节点数。 如果希望为应对可用性区域故障作好准备,可考虑过度预配 IR 的容量。 超额预配使解决方案能够容忍一定程度的容量损失,并且仍然可以继续运行而不会降低性能。 有关详细信息,请参阅 通过过度预配管理容量

  • SHIR 要求您配置自己的容量和扩展。 部署 SHIR 时,可考虑过度预配。

常规操作

区域之间的流量路由: 在正常作期间,数据工厂会在每个可用性区域中的正常实例之间自动分配管道活动、触发器和其他工作。

区域关闭体验

检测和响应: 数据工厂平台负责检测可用性区域中的故障并做出响应。 你无需执行任何作,即可在管道或其他组件中启动可用区故障转移。

活动请求:正在进行的任何管道和触发器将继续运行,且不会发生因区域故障导致立即中断的情况。 但是,在区域故障期间正在进行的活动可能会失败并重新启动。 请务必将活动设计为幂等活动,这有助于它们从可用区故障和其他故障中恢复。 有关更多信息,请参阅暂时性故障

故障回复

在可用区恢复后,数据工厂会自动故障回复到原始可用区。 你无需执行任何作,即可在管道或其他组件中启动可用区故障回复。

但是,如果使用 SHIR,则可能需要重启计算资源(如果它们已停止)。

对区域故障进行测试

对于核心服务以及 Azure 和 Azure-SSIS IR,数据工厂会管理支持区域冗余的资源的流量路由、故障转移和故障回复。 由于此功能是完全托管的,因此你无需启动或验证可用性区域故障流程。

对于 SHIR,可以使用 Azure Chaos Studio 模拟 Azure VM 上的可用性区域故障。

多区域支持

数据工厂资源部署到单个 Azure 区域。 如果该区域变得不可用,数据工厂也会不可用。 但是,有一些方法可用于帮助确保区域中断的复原能力。 这些方法取决于数据工厂是处于配对区域还是非配对区域,以及您的具体要求和配置。

Microsoft 管理的故障转移(切换到到配对区域)

数据工厂支持对配对区域中的数据工厂进行 Microsoft 管理的故障转移,巴西南部和东南亚除外。 在区域长时间故障情况(极不可能发生)下,Microsoft 可能会对你的 数据工厂实例启动区域故障转移。

由于巴西南部和东南亚的数据驻留要求,数据工厂数据仅使用 Azure 存储区域冗余存储存储在本地区域中。 对于东南亚区域,所有数据都存储在新加坡; 对于巴西南部区域,所有数据都存储在巴西。

对于非配对区域或巴西南部/东南亚的数据工厂,Microsoft 不会代表你执行区域故障转移。

重要

Microsoft 触发 Microsoft 托管的故障转移。 很可能在出现重大延迟后发生,并尽最大努力完成。 此过程也存在一些例外情况。 你可能会丢失数据工厂元数据。 数据工厂资源的故障转移可能在与其他 Azure 服务的故障转移时间不同时发生。

如果你需要应对区域中断,请考虑使用一种备选多区域方法

IR 故障转移

若要为应对故障转移做好准备,可能需要遵从一些额外的注意事项,这具体取决于所使用的 IR。

  • 可以将 Azure IR 配置为自动解析其使用的区域。 如果区域设置为“自动解决”,当主要区域中发生中断时,Azure IR 会自动故障转移到配对区域。 此故障转移存在限制。 若要在 IR 设置中为活动实现或调度配置 Azure IR 区域,请将该区域设置为 自动解析

  • Azure-SSIS IR 故障转移的管理独立于数据工厂的 Microsoft 托管的故障转移。 有关详细信息,请参阅 备用多区域方法

  • SHIR 在你负责的基础结构上运行,因此Microsoft管理的故障转移不适用于 SHIR。 有关详细信息,请参阅 备用多区域方法

故障转移后的重新配置

Microsoft 托管的故障转移完成后,可以在配对区域中访问数据工厂管道。 但是,故障转移完成后,可能需要对 IR 或其他组件执行一些重新配置。 此过程包括重新建立网络配置。

备选多区域方法

如果需要管道具有弹性以应对区域性中断,并且需要控制故障切换过程,请考虑使用元数据驱动的管道。

  • 为数据工厂设置源代码管理 ,以跟踪和审核对元数据所做的任何更改。 可以使用此方法访问管道、数据集、链接服务和触发器的元数据 JSON 文件。 数据工厂支持不同的 Git 存储库类型,例如 Azure DevOps 和 GitHub。 有关详细信息,请参阅 数据工厂中的源代码管理

  • 使用持续集成和持续交付(例如 Azure DevOps)系统来管理管道元数据和部署。 可以使用 CI/CD 快速恢复其他区域中的实例操作。 如果某个区域不可用,你可以手动或通过自动化方式预配新的数据工厂。 创建新的数据工厂后,可以从现有 Git 存储库还原管道、数据集和链接服务 JSON。 有关详细信息,请参阅 数据工厂和 Azure Synapse Analytics 管道的业务连续性和灾难恢复(BCDR)。

根据所使用的 IR,可能还有其他需要注意的事项。

  • Azure-SSIS IR 使用存储在 Azure SQL 数据库或 Azure SQL 托管实例中的数据库。 你可以为此数据库配置异地复制或故障转移组。 Azure-SSIS 数据库位于具有读写访问权限的主要 Azure 区域中。 数据库将持续复制到具有只读访问权限的次要区域。 如果主要区域不可用,则会触发故障转移过程,这会导致主数据库和辅助数据库交换角色。

    还可以配置与 Azure SQL 数据库或 SQL 托管实例故障转移组同步工作的双备用 Azure SSIS IR 对。

    有关详细信息,请参阅 为 BCDR 配置 Azure-SSIS IR

  • SHIR 在所管理的基础结构上运行。 如果将 SHIR 部署到 Azure VM,则可以使用 Azure Site Recovery 触发 VM 故障转移 到另一个区域。

备份和还原

数据工厂通过源代码管理集成支持 CI/CD,以便可以备份数据工厂实例的元数据。 CI/CD 管道将此元数据无缝部署到新环境中。 有关详细信息,请参阅 数据工厂中的 CI/CD

服务级别协议

Azure 数据工厂的服务级别协议(SLA)描述了服务的预期可用性。 此协议还描述了实现此期望的条件。 若要了解这些条件,请确保查看联机服务的服务级别协议 (SLA)