Azure 数据工厂:从 postgresql 数据库复制数据(或数据流)

Azure Data Factory: Copy data (or Data Flow) from postgresql database

我对 Azure 数据工厂有点迷茫。

我的目标是从我们公司的 postgresql 数据库中检索数据并将其转换为 Azure SQL 数据库(稍后可以通过 Power BI 访问)。

我创建了一个管道并尝试将 "Data Flow" 用作 activity。但是,我不能 select 我的 postgresql 数据库作为那里的来源。例如,有效来源是其他 Azure SQL 数据库。

所以我尝试执行 "Copy Data" activity 将数据从 postgresql 数据库复制到 Azure SQL database (1),然后使用 "Data Flow" 将数据转换为 Azure SQL database (2)(具有不同的 table 结构)。

这是一个好的有效方法吗?

我在使用这种方法时遇到了一些问题:

有人可以指导我正确的方向吗?

可以通过三个选项进行转换处理:

  1. 在数据源端 您可以将逻辑放入存储过程(不确定 postgresql 是否可行)或直接放入 sql 查询。然后只获取结果 table.

    • 网络流量减少
    • 更多的源负载,可能是不允许的
  2. 数据工厂集成运行时处理 这将是数据流的选项。这里 tables 被复制到集成 运行time,然后进行处理,然后将结果复制到您的接收器。 由于这是一个安静的新选项,因此没有很多连接可用。您可能需要先将数据复制到 ASQL Server。

    • 可能较慢,具体取决于您的资源大小
    • 易于构建logic/visual界面
  3. 正在接收器上处理 将原始数据复制到 ASQL Server 并在那里 运行 查询或存储过程。

    • 最大的灵活性,因为如果它占用更多资源,您可以调整 ASQL 的大小
    • 快速处理
    • 如果可以进行增量摄取和处理(进行更新/合并),则更加灵活
    • 大量维护工作

这三个都是有效选项,完全取决于您的用例和要求(关于操作、SLA 等)

关于选择多个table的问题: 您需要分别执行每个 table,但如果它们都遵循相同的逻辑,您可以创建水印 table,在其中查找所有 table 名称并循环复制模块.这样一来,您只有一个管道可以按顺序复制所有 table。

关于目前的数据: copy 只插入数据。如果您想先 运行 分类 table,您可以将其添加为 "pre copy script"。

如果我忘记了什么请评论,我会相应地更新 post