Azure数据工厂: Copy data (or Data Flow) from postgresql database

标签 azure azure-data-factory

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

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

我创建了一个管道并尝试使用“数据流”作为事件。但是,我无法选择我的 postgresql 数据库作为那里的源。有效源例如是其他 Azure SQL 数据库。

因此,我尝试执行“复制数据”事件,将数据从 postgresql 数据库复制到 Azure SQL 数据库 (1),然后使用“数据流”将数据转换为 Azure SQL 数据库 (2)(具有不同的表结构)。

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

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

  • 我无法从源 postgresql 数据集中选择多个表(也无法从目标数据集 Azure SQL 数据库 (1))中选择多个表。 Azure 为我提供了选择单个表或“无”的选项。如果我创建多个数据集,每个数据集都有不同的表,我可以解决这个问题,但这似乎是错误的且不可行。
  • 我不确定如果数据已存在于 Azure SQL 数据库 (1) 中会发生什么情况。在“数据流”事件中,我可以选择“允许插入”、“允许更新”或不同的键列。在“复制数据”事件中我没有这个机会。

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

最佳答案

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

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

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

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

    • 最大的灵 active ,因为如果需要更多资源,您可以调整 ASQL 的大小
    • 快速处理
    • 如果可以进行增量提取和处理(进行更新插入/合并),则更加灵活
    • 大量维护

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

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

关于现有数据: 复制仅插入数据。如果您想先截断表,可以将其添加为“预复制脚本”。

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

关于Azure数据工厂: Copy data (or Data Flow) from postgresql database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56887080/

相关文章:

Azure 文件复制任务 - [错误]未将对象引用设置为对象的实例

sql-server - Microsoft SQL Server Management Studio SSMS 2012 中缺少 SQL Azure 数据库的数据库图表节点?

asp.net-mvc-4 - 如何在我的 Azure 应用服务防火墙中允许 IP 地址

azure - 使用 powershell 如何通过运行 ID 重新运行 Azure 数据工厂中失败的管道?

Azure 数据工厂 (V2) 复制事件 - 缺少高级编辑器

Java - DocumentDB未经授权的访问

node.js - 无法使用 NestJS 应用程序验证 Azure AD token

azure - 如何在 ADF "form-data"事件 POST 调用中提交 "Web"

azure - 如何通过私有(private)链接从Azure数据工厂连接Azure批处理?

Azure 数据工厂架构,包含 Azure SQL 数据库到 Power BI