将数据从 SAP BW Open Hub 导入 Azure 数据湖时,如何在数据工厂中使用文件名前缀?

问题描述

我在数据工厂中有一个 SAP BW Open Hub 源和一个 Azure 数据湖 gen2 接收器,我正在使用复制活动来移动数据。

我正在尝试将数据传输到湖中并拆分为多个文件,每个文件有 200000 行。我还希望能够为所有文件添加前缀,例如'cust_',因此文件将类似于 cust_1、cust_2、cust_3 等。

方法仅在使用 SAP BW Open Hub 作为源时才会出现问题(使用 sql Server 作为源时它工作正常。请参阅下面的警告消息。与内部 SAP BW 团队核对后,他们保证我认为数据是表格格式,并且没有启用显式分区,所以应该没有问题。

enter image description here

在执行复制活动时,文件被传输到湖,但文件名前缀设置被忽略,而是自动设置文件名,如下所示(名称似乎是自动由 SAP BW Open Hub 组成的表和请求 ID):

enter image description here

这是源配置:

enter image description here

其他选项卡上的所有其他属性均设置为认值且未更改。

问题:在不使用数据流的情况下,从 SAP BW Open Hub 中提取文件时是否有任何方法可以拆分文件,并且还可以指定湖中的文件名?

解决方法

我尝试重现该问题,并且通过变通可以正常工作。无需在从 SAP BW 复制到 Azure 数据湖存储时拆分数据,只需将整个准确数据(无分区)复制到 Azure SQL 数据库即可。请关注copy data from SAP Business warehouse by using azure data factory(确保使用 Azure SQL 数据库作为接收器)。

现在数据在您的 Azure SQL 数据库中,您现在可以简单地使用复制活动将数据复制到 Azure 数据湖存储。

在源配置中,保持“分区选项”为无。

源配置: enter image description here

接收器配置: enter image description here

输出: enter image description here