适用于: Azure 数据工厂 Azure Synapse Analytics

现在,可将 SQL Server Integration Services (SSIS) 项目、包和工作负荷移到 Azure 云。 在 Azure SQL 数据库或 SQL 托管实例上使用 SQL Server Management Studio (SSMS) 等熟悉工具来部署、运行和管理 SSIS 项目和包。 本文重点介绍了在结合使用 Azure SQL 托管实例和 Azure-SSIS Integration Runtime (IR) 时的以下特定方面:

  • 为 Azure-SSIS IR 预配由 Azure SQL 托管实例托管的 SSIS 目录 (SSISDB)
  • 通过 Azure SQL 托管实例代理作业执行 SSIS 包
  • 通过 Azure SQL 托管实例代理作业清理 SSISDB 日志
  • 使用 Azure SQL 托管实例进行 Azure-SSIS IR 故障转移
  • 将本地 SSIS 工作负荷迁移到 ADF 中的 SSIS
  • 为 Azure-SSIS IR 预配由 Azure SQL 托管实例托管的 SSISDB

  • 选择 Azure Active Directory 身份验证时, 在 Azure SQL 托管实例上启用 Azure Active Directory (Azure AD)

  • 选择如何连接 SQL 托管实例,即是通过专用终结点进行连接,还是通过公共终结点进行连接:

  • 通过专用终结点(首选)

  • 选择 Azure-SSIS IR 要联接到的虚拟网络:

  • 与托管实例位于相同的虚拟网络中,但位于不同的子网。
  • 通过虚拟网络对等互联(由于全局 VNet 对等互联约束,仅限于相同的区域)或通过虚拟网络到虚拟网络的连接,与托管实例位于不同的虚拟网络中。
  • 若要详细了解 SQL 托管实例连接性,请参阅 将应用程序连接到 Azure SQL 托管实例

  • 配置虚拟网络

  • 通过公共终结点

    Azure SQL 托管实例可通过 公共终结点 进行连接。 若要允许 SQL 托管实例和 Azure-SSIS IR 之间的流量,必须满足入站和出站要求:

  • 当 Azure-SSIS IR 不在虚拟网络中时(首选)

    SQL 托管实例的入站要求,以允许来自 Azure-SSIS IR 的入站流量。

    源端口范围 目标端口范围
  • 当 Azure-SSIS IR 在虚拟网络中时

    有一种特殊情况,即当 SQL 托管实例位于 Azure-SSIS IR 不支持的区域中时,由于全球 VNet 对等互连限制,Azure-SSIS IR 位于没有 VNet 对等互连的虚拟网络中。 在这种情况下,虚拟网络中的 Azure-SSIS IR 通过公共终结点连接 SQL 托管实例 。 使用下面的网络安全组 (NSG) 规则以允许 SQL 托管实例和 Azure-SSIS IR 之间的流量:

  • SQL 托管实例的入站要求,以允许来自 Azure-SSIS IR 的入站流量。

    源端口范围 目标端口范围
  • 用户权限。 创建 Azure-SSIS IR 的用户必须至少使用以下选项之一在 Azure 数据工厂资源上进行 角色分配

  • 使用内置的“网络参与者”角色。 此角色具有 Microsoft.Network/* 权限,具有比所需作用域更大的作用域。
  • 创建仅包括必需的 Microsoft.Network/virtualNetworks/*/join/action 权限的一个自定义角色。 如果还需要在将 Azure-SSIS IR 联接到 Azure 资源管理器虚拟网络的同时为它创建自己的公共 IP 地址,还请在角色中添加 Microsoft.Network/publicIPAddresses/*/join/action 权限。
  • 虚拟网络。

  • 请确保虚拟网络的资源组可以创建和删除特定 Azure 网络资源。

    Azure-SSIS IR 需要在与虚拟网络相同的资源组下创建某些网络资源。 这些资源包括:

  • 名为 <Guid>-azurebatch-cloudserviceloadbalancer 的 Azure 负载均衡器
  • 名为 *<Guid>-azurebatch-cloudservicenetworksecuritygroup 的网络安全组
  • Azure 公共 IP 地址,名为 -azurebatch-cloudservicepublicip
  • 这些资源在 Azure-SSIS IR 启动时创建, 并在 Azure-SSIS IR 停止时删除。 为了避免阻止 Azure-SSIS IR 停止,请不要在其他资源中重用这些网络资源。

  • 确保虚拟网络所属的资源组/订阅中没有任何 资源锁 。 如果配置只读/删除锁,则启动和停止 Azure-SSIS IR 将会失败,或者它会停止响应。

  • 请确保你的 Azure Policy 定义不会阻止在虚拟网络所属的资源组/订阅下创建以下资源:

  • Microsoft.Network/LoadBalancers
  • Microsoft.Network/NetworkSecurityGroups
  • 允许网络安全组 (NSG) 上流量的规则,以允许 SQL 托管实例和 Azure-SSIS IR 之间的流量,以及 Azure-SSIS IR 所需的流量。

  • SQL 托管实例的入站要求,以允许来自 Azure-SSIS IR 的入站流量。

    源端口范围 目标端口范围 Internet (可选)虚拟网络中的 Azure-SSIS IR 节点使用此端口从 Internet 下载证书吊销列表。 如果阻止此流量,在启动 IR 时可能会出现性能下降,并且无法在证书吊销列表中检查证书的使用情况。 若要进一步将目标范围缩小到特定 FQDN,请参阅 配置用户定义的路由 (UDR) 。 VirtualNetwork (可选)只有当你要执行存储在 Azure 文件存储中的 SSIS 包时,才需要此规则。 VirtualNetwork 29876、29877(如果将 IR 加入资源管理器虚拟网络)

    10100、20100、30100(如果将 IR 加入经典虚拟网络) 数据工厂服务使用这些端口来与虚拟网络中 Azure-SSIS IR 的节点通信。

    无论是否创建子网级 NSG,数据工厂都始终会在附加到托管 Azure-SSIS IR 的虚拟机的网络接口卡 (NIC) 级别配置 NSG。 此 NIC 级别的 NSG 仅允许来自指定端口上的数据工厂 IP 地址的入站流量。 即使你在子网级别向 Internet 流量打开这些端口,来自非数据工厂 IP 地址的流量也会在 NIC 级别被阻止。 CorpNetSaw VirtualNetwork (可选)只有当 Microsoft 支持者要求客户打开以进行高级故障排除,并且可以在故障排除后立即关闭时,才需要此规则。 CorpNetSaw 服务标记只允许 Microsoft 企业网络中的安全访问工作站使用远程桌面。 无法在门户中选择此服务标记,只能通过 Azure PowerShell 或 Azure CLI 选择。

    在 NIC 级别 NSG 处,端口 3389 是默认打开的,允许在子网级别 NSG 处控制端口 3389;但在此期间,Azure-SSIS IR 在每个 IR 节点上的 Windows 防火墙规则处默认禁止端口 3389 出站以实现保护。
  • 如果你为 Azure-SSIS IR 创建自己的公共 IP 地址
  • 如果你使用自己的域名系统 (DNS) 服务器
  • 如果你使用 Azure ExpressRoute 或用户定义的路由 (UDR)
  • 如果你使用自定义的 Azure-SSIS IR
  • 选择 SQL 托管实例专用终结点或公共终结点。

    在 Azure 门户/ADF 应用中 预配 Azure-SSIS IR 时,请在“SQL 设置”页上使用创建 SSIS 目录 (SSISDB) 时涉及的 SQL 托管实例专用终结点或公共终结点。

    公共终结点主机名的格式为 .public. .database.windows.net,用于连接的端口为 3342。

  • 选择在应用时启用 Azure AD 身份验证。

    若要详细了解如何启用 Azure AD 身份验证,请参阅 在 Azure SQL 托管实例上启用 Azure AD

  • 应用时,将 Azure-SSIS IR 联接到虚拟网络。

    在“高级设置”页上,选择要联接到的虚拟网络和子网。

    如果与 SQL 托管实例位于相同的虚拟网络中,请选择与 SQL 托管实例位于不同的子网中。

    若要详细了解如何将 Azure-SSIS IR 联接到虚拟网络,请参阅 将 Azure-SSIS Integration Runtime 联接到虚拟网络

    有关如何创建 Azure-SSIS IR 的详细信息,请参阅 在 Azure 数据工厂中创建 Azure-SSIS 集成运行时

    清理 SSISDB 日志

    SSISDB 日志保留策略由 catalog.catalog_properties 中的以下属性定义:

  • OPERATION_CLEANUP_ENABLED

    如果值为 TRUE,则会从目录中删除超过 RETENTION_WINDOW(天)的操作详细信息和操作消息。 如果值为 FALSE,则会在目录中存储所有操作详细信息和操作消息。 注意:清理操作是由 SQL Server 作业执行。

  • RETENTION_WINDOW

    操作详细信息和操作消息存储在目录中的天数。 如果值为 -1,保留时段是无限的。 注意:如果无需清理,请将 OPERATION_CLEANUP_ENABLED 设置为 FALSE。

    若要删除在管理员设置的保留时段之外的 SSISDB 日志,可以触发存储过程 [internal].[cleanup_server_retention_window_exclusive] 。 还可以安排 SQL 托管实例代理作业执行,以触发此存储过程。

  • 通过 Azure SQL 托管实例代理作业执行 SSIS 包
  • 设置业务连续性和灾难恢复 (BCDR)
  • 将本地 SSIS 工作负荷迁移到 ADF 中的 SSIS
  •