使用 Azure 数据工厂 + Azure Integration Runtime 连接到本地 SQL 服务器

Use Azure Data Factory + Azure Integration Runtime to connect to on-premises SQL Server

我在虚拟机上安装了一个 SQL 服务器实例,该虚拟机连接到 Azure VNet。我的目标是连续从此 SQL 服务器获取数据并将其存储在 Azure Data Lake 中。

是否可以使用 Azure 数据工厂 + Azure 集成运行时(不是自托管集成运行时!)来做到这一点?

如果我创建一个新的数据工厂(包括专用端点,这样工厂就可以获得 VNet 的 IP 地址)并使用标准集成运行时“AutoResolveIntegrationRuntime”,则可以指定 SQL 服务器名称和凭据,但是,连接测试失败:

在 VM 上安装自承载集成运行时并使用此 IR 后,它似乎可以工作:

集成运行时到底在做什么,没有它就不可能做到?最后,难道 Azure Integration Runtime(托管在 Azure 上)不能只打开一个 ODBC 连接,尤其是因为所有资源都在同一个网络中吗?

我们无法使用 Azure IR 针对 本地Azure VNet 中的计算资源调度以下转换活动。

引用此 document。我们可以得出结论:

  1. Azure IR 可以:
  • 运行 Azure 中的数据流
  • 运行 在云数据存储之间复制 activity
  • public 网络.
  • 中调度以下转换活动
  1. 自托管 IR 能够:
  • 运行在云数据存储和私有网络中的数据存储之间复制activity。
  • 针对 本地Azure 虚拟网络
  • 中的计算资源调度以下转换活动

更新:
根据章节 Integration runtime location,我们可以看到 Azure IR 是动态的 built.And Auto-resolve Azure IR 默认是 运行 in public network。我认为这就是您无法通过 Azure IR 连接位于 Azure VNet 中的 sql 服务器的原因。

我们可以看到Azure IR的子类型是public如下: