代码之家  ›  专栏  ›  技术社区  ›  mitroberts

Azure数据工厂与工厂

  •  8
  • mitroberts  · 技术社区  · 7 年前

    目前,我正在使用数据工厂构建Azure数据湖,我想听听关于多个数据工厂而不是一个数据工厂的建议。

    目前我有一个数据工厂,它从一个EBS实例中为企业下的一个特定公司获取数据。虽然将来可能会有其他EBS实例和其他公司(以其他应用程序作为源)加入工厂,但我认为图表可能会有点混乱。

    我到处搜索,发现了这个网站,它建议将所有内容都保存在一个数据工厂中,以重用链接服务。我想这是一件好事,然而,由于我已经为一个数据工厂编写了构建脚本,因此再次构建链接服务以指向同一个数据湖将非常容易。

    https://www.purplefrogsystems.com/paul/2017/08/chaining-azure-data-factory-activities-and-datasets/

    只有一个data factory实例的优点:

    • 只需创建一次数据集、链接服务
    • 可以在一个图表中看到整体沿袭

    欺骗

    • 随着时间的推移可能会变得一团糟
    • 甚至可以找到你要找的管道

    是否有人部署了一些Azure数据工厂的大型部署,这些部署可能带来数千个数据源,将它们混合在一起并进行转换?我很想听听你的想法。

    5 回复  |  直到 7 年前
        1
  •  5
  •   Martin Esteban Zurita    7 年前

    我的建议是只有一个,因为这样可以更容易地配置多个集成运行时(网关)。如果您决定拥有多个数据工厂,请考虑一台pc只能安装1个集成运行时,并且集成运行时只能注册到1个数据工厂实例。

    我认为你列出的缺点都是通过命名规则来解决的。如果将它们命名为pipeline\u[数据库名称],那么找到所需的管道并不麻烦 [数据库架构] [表名]例如。

    我有一个拥有数千个数据集和管道的项目,它并不比较小的项目更难处理。

    希望这有帮助!

        2
  •  4
  •   Alex KeySmith    6 年前

    我最初同意将集成运行时绑定到单个数据工厂是一种限制,但我怀疑它不再是或即将不再是一种限制。

    March 13th update to AzureRm.DataFactories ,有一条注释指出“允许在数据工厂中共享集成运行时”。

    我认为这将取决于数据工厂的复杂性,以及各种源和目标之间是否存在相互依赖关系。

    尤其是UI(在V2中更是如此)使管理大型数据工厂变得简单。

    然而 如果您选择ARM部署技术,那么即使是在稍微复杂的数据工厂中,数据工厂JSON也可能很快变得很难使用。从这个意义上说,我建议把它们分开。

    当然,正如人们所提到的,您可以通过将ARM模板分解为嵌套部署、ARM参数化或data factory V2参数化,使用SDK direct和单独的文件来缓解可维护性问题。甚至只需使用UI(现在支持git:-))

    也许更重要的是,特别是当你提到从不同的公司采购时;这听起来可能与数据无关,如果不是- 应该 是否应将其隔离以避免任何编码错误?或者甚至可能为数据工厂提供独立的角色和责任。

    另一方面,如果数据是相互关联的,那么将其放在一个数据工厂中可以让数据工厂更容易地管理数据依赖关系并一次性重新运行失败的切片。

        3
  •  1
  •   Geoffery A Williams    6 年前

    3月份发布后,您可以在不同工厂之间链接集成运行时。

    另一件事是为各种管道和数据集创建不同的文件夹

        4
  •  1
  •   Ardalan Shahgholi    4 年前

    我的建议是为每个项目创建一个DataFactory服务。如果您需要将数据从两个源传输到一个目标,并且对于每个转换,您需要几个管道和链接的服务以及其他东西,我建议为每个源创建两个独立的ADF服务。在这种情况下,我将每个源视为一个分离的集成项目。

    enter image description here

    每个项目也将有两个单独的CI/CD。

    enter image description here

    在源代码控制器中,还需要有两个独立的存储库。

    enter image description here

        5
  •  0
  •   CodeMonkey    7 年前

    如果您使用的是ADF v1,那么它将变得混乱。我们的一个客户在一个数据工厂中有1000多条管道。如果您刚开始学习,我建议您看看v2,因为它允许您对内容进行参数化,并且应该使您的脚本更加可重用。