问题描述
我在数据工厂中有一个 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 中提取文件时是否有任何方法可以拆分文件,并且还可以指定湖中的文件名?
解决方法
我尝试重现该问题,并且通过变通可以正常工作。无需在从 SAP BW 复制到 Azure 数据湖存储时拆分数据,只需将整个准确数据(无分区)复制到 Azure SQL 数据库即可。请关注copy data from SAP Business warehouse by using azure data factory(确保使用 Azure SQL 数据库作为接收器)。
现在数据在您的 Azure SQL 数据库中,您现在可以简单地使用复制活动将数据复制到 Azure 数据湖存储。
在源配置中,保持“分区选项”为无。