【问题标题】:Azure Data Factory V2 multiple environments like in SSISAzure 数据工厂 V2 多个环境,如 SSIS
【发布时间】:2020-03-09 04:10:39
【问题描述】:

我来自长期的 SSIS 背景,我们正在寻求使用 Azure 数据工厂 v2,但我正在努力寻找任何(明确的)处理多个环境的方法。在 SSIS 中,我们将项目参数绑定到 Visual Studio 项目配置(例如开发/测试/生产等),并假设 SourceServerName 和 DestinationServerName 有 2 个参数,如果我们处于开发或测试阶段,这些参数将指向不同的服务器.

从我最初的游戏开始,我看不到在数据工厂中执行此操作的任何方法。我当然搜索过谷歌,但我发现的任何信息似乎都在 CI/CD 周围,然后谈到 Git 的“分支”,很难理解。

我基本上是在寻找一个非常简单的解释和示例,说明如何在 Azure 数据工厂 v2 中实现这一点(如果可能的话)。

【问题讨论】:

    标签: azure ssis azure-data-factory-2


    【解决方案1】:

    它的工作方式不同。您为每个环境创建一个数据工厂实例,并且您的环境有效地嵌入到每个实例中。

    所以这里有一个简单的方法:

    1. 创建三个数据工厂:dev、test、prod
    2. 在开发环境中创建指向开发源和目标的链接服务
    3. 在测试中创建相同命名的链接服务,但当然这些指向您的 tst 系统
    4. 现在,当您将管道从开发“迁移”到测试时,它们使用相同的逻辑名称(就像连接管理器一样)

    因此,您无需在执行时指定环境或映射变量或任何东西......测试中的所有内容都只是针对测试运行,因为这是定义链接服务器的方式。

    这是第一步。

    下一步是将 dev ADF 实例连接到 Git。如果你是 Git 的新手,这可能会让人望而生畏,但它只是一个版本控制系统。您将代码保存到其中,它会记住您所做的每一个更改。

    一旦您的管道代码在 git 中,理论上是您以自动化的方式将代码从 git 迁移到更高的环境中。

    如果您浏览其他答案中提供的链接,您会看到如何设置它。

    确实对这种方法有疑问-您必须在密钥库中查找所有环境值,这对我来说很愚蠢,因为为什么我们每次都需要指定测试服务器主机名我们部署测试?

    最后一件事是,如果您的管道不使用链接服务(例如 REST 管道),我还没有找到一种方法来让该环境感知。我最终围绕当前数据工厂名称构建逻辑以动态更改端点。

    这有点像垃圾场,但请随时提出问题。

    【讨论】:

    • 感谢您的回复,它看起来越来越不像您在 Visual Studio 和 SSIS 中所做的那样(即使用项目配置和项目参数)。理想情况下,我不希望拥有 3 个不同的数据工厂并使用相同的命名组件重新创建每个数据工厂......
    • 这与拥有三组环境没有什么不同。除了它不那么繁琐。创建数据工厂很简单。
    • 我猜是这样 ;-) 所以如果我创建 3 个数据工厂,那么我该怎么做,正如你所说的“将代码从 git 迁移到更高的环境中”?我已经阅读了其他答案中的帖子,但没有说得很清楚,目前我对实施 CI/CD 不感兴趣(还)。一次一步;-)
    • 您可以通过复制源代码(恰好是 JSON)并将其粘贴到目标中来手动迁移 ADF“东西”。或者您可以使用 API(即 powershell)来迁移代码。我一直觉得 SSIS 很繁琐。 ADF 绝不是功能齐全,但很多事情都更容易做到。
    • 好的,谢谢,看来我需要整理一些脚本了 :)
    【解决方案2】:

    虽然不推荐 - 是的,您可以这样做。
    查看链接服务 - 在这种情况下,我连接到 Azure SQL 数据库:
    您可以对服务器名称和数据库名称使用动态内容。 只需向您的管道添加一个参数,将其传递给链接服务并在必填字段中使用。
    让我知道我是否解释得足够清楚?

    【讨论】:

      【解决方案3】:

      是的,虽然不像在 VS for SSIS 中那么简单,但这是可能的。
      1)首先:开发ADF没有桌面应用,只有浏览器。
      因此,开发人员应该在他们的 DEV 环境中进行更改,出于多种原因,最好的方法是使用连接的 GIT 存储库。
      2) 然后,您需要“仅”:
      a) 发布更改(它在 git 中创建/更新 adf_publish 分支)
      b) 使用 Azure DevOps 从 adf_publish 部署代码,替换目标环境所需的参数。 我知道一开始这听起来很糟糕,但是越早设置这样的环境,您在开发管道时节省的时间就越多。

      如何一步步做这些事情?
      我在以下帖子中描述了所有步骤:
      - Setting up Code Repository for Azure Data Factory v2
      - Deployment of Azure Data Factory with Azure DevOps

      我希望这会有所帮助。

      【讨论】:

      • 感谢您的回复,我已经阅读了链接,但似乎更多的是在“开发”分支中创建所有内容,并将其与 GIT 中的“主”分支合并。我仍然不清楚如何(如果在 ADF 中确实可以)当您在 dev 中运行时动态更改数据源的服务器名称,然后在发布时更改为实时服务器名称,您怎么知道哪个环境你在吗?
      • 在下面查看我的另一个答案(我无法在评论中放截图)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-29
      • 2020-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-01
      • 1970-01-01
      相关资源
      最近更新 更多