首页 > 解决方案 > 从 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 团队核实后,他们向我保证数据采用表格格式,并且没有启用显式分区,因此应该没有问题。 在此处输入图像描述

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

在此处输入图像描述

这是源配置:

在此处输入图像描述

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

问题:在不使用数据流的情况下,有没有办法在从 SAP BW Open Hub 中提取文件时拆分文件,并且还能够指定湖中的文件名?

标签: azure-data-factoryazure-data-factory-2azure-data-lakeazure-data-factory-pipelinesap-bw

解决方案


我试图重现该问题,并且可以通过解决方法正常工作。无需在从 SAP BW 复制到 Azure 数据湖存储时拆分数据,只需将整个确切数据(不带分区)复制到 Azure SQL 数据库即可。请使用 Azure 数据工厂从 SAP Business 仓库复制数据(确保使用 Azure SQL 数据库作为接收器)。

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

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

源配置: 在此处输入图像描述

接收器配置: 在此处输入图像描述

输出: 在此处输入图像描述


推荐阅读