关于Azure数据工厂,我有些失落。
我的目标是从我们公司的postgresql数据库中检索数据,并将其转换为Azure SQL数据库(以后可以由Power BI访问)。
我创建了一个管道,并尝试将“数据流”用作活动。但是,我不能选择我的postgresql数据库作为那里的源。有效的来源例如是其他Azure SQL数据库。
因此,我尝试执行“复制数据”活动,以将数据从Postgresql数据库复制到Azure SQL database (1)
,然后使用“数据流”将数据转换为Azure SQL database (2)
(具有不同的表格结构)。
这是一种好方法吗?
此方法存在两个问题:
Azure SQL database (1)
中都不能选择)。 Azure使我可以选择一个表或“无”。如果我要创建几个具有不同表的数据集,则可以解决此问题,但这似乎是错误的,并不可行。Azure SQL database (1)
中已经存在数据将会发生什么。在“数据流”活动中,我可以选择“允许插入”,“允许更新”或其他键列。在“复制数据”活动中,我没有这个机会。 有人可以引导我朝正确的方向吗?
答案 0 :(得分:2)
有三种方法可以处理转换:
在数据源端 您可以将逻辑放入存储过程(不确定使用postgresql是否可行)或直接放入sql查询。然后仅获取结果表。
在数据工厂集成运行时上进行处理 这将是数据流的选项。在这里,将表复制到集成运行时,然后进行处理,然后将结果复制到接收器。 由于这是一个安静的新选项,因此没有很多连接可用。您可能需要先解决将数据复制到ASQL Server的问题。
在接收器上处理 将原始数据复制到ASQL Server并在其中运行查询或存储过程。
这三个都是有效的选项,并且完全取决于您的用例和要求(关于操作,SLA,...)
关于选择多个表的问题: 您将需要分别处理每个表,但是如果它们都遵循相同的逻辑,则可以创建水印表,在其中查找所有表名并在复制模块上循环。这样,您只有一个管道可以按顺序复制所有表。
关于当前数据: 复制仅插入数据。如果要首先截断该表,则可以将其添加为“预复制脚本”。
如果我忘记了任何内容,请发表评论,我将相应地更新帖子