使用数据工厂将表从SAP BW提取到Azure Data Lake Gen2

时间:2020-03-10 05:32:48

标签: azure sap azure-data-factory-2 sap-bw

我想知道将表从安装在Azure云上的SAP BW提取到Azure数据湖gen2的过程。我想使用ADF将数据从SAP BW复制到Data Lake。

我们可以使用SAP连接器将ADF直接连接到SAP吗?为此连接是否需要安装Runtime Integration和任何VM? SAP BW Open Hub连接器和通过MDX的SAP BW有什么区别?

当SAP也托管在Azure上时,想听听专家关于如何从SAP BW提取数据的信息。谢谢。

2 个答案:

答案 0 :(得分:1)

请遵循https://docs.microsoft.com/en-us/azure/data-factory/connector-sap-business-warehouse上的官方指南。通过详细的分步指南,涵盖了必需的NetWeaver RFC DLL安装。

答案 1 :(得分:1)

我不是专家,但是BW人员向我解释了这种差异,您可以同时使用两者,但是使用OpenHub,您可以在不涉及BW人员的情况下对BW查询运行摘录,但性能不会大。我相信使用MDX时,需要在BW上进行其他开发,但性能会更好。

还请记住,当我运行这些查询时,我发现很难并行化它,而Microsoft文档没有提供一个很好的例子,我发现我推送到BW的所有内容都是作为单个查询发送的。

或者,我最近的用例是从SAP BW与多维数据集中的表中获取数据,所以这可能起作用。

我遵循了"SAP Table" connector

列出的说明

要使此过程正常运行,您将需要一个自托管的IR(在笔记本电脑上或连接到ADF的VM上),并且需要安装以下驱动程序:

SAP Table connector requirements

要获得这些驱动程序,您可能需要联系您的基础团队。他们还需要创建一个Interface角色(特别是如果这是您第一次建立此连接,并且您希望服务帐户可被其他进程重用)。

毕竟,您还需要将RFC授权添加到此接口。以下是对我有用的。 Microsoft网站确实给出了建议的RFC授权,但是这些授权几乎处于管理员级别,我们的Basis团队基本上不想这样做:

S_RFC: FUGR-RFC1,SYST,SYSU FUNC-RFCPING,RFC_FUNCTION_SEARCH ACTVT – 16

除上述内容外,我们还必须运行一些测试,发现根据要从中提取数据的表的数量,它们可能需要添加其他授权,以便您只能从该表中读取数据。

上面的过程是我遵循的过程,因此您的过程可能看起来有些不同,但是要完成此工作,您需要:自托管IR,在这些IR上安装的SAP驱动程序,允许您访问BW系统ID,接口的防火墙规则由Basis创建,然后由RFC授权创建。

我已经在Microsoft github文档上提出了有关不正确的RFC授权列表的问题:https://github.com/MicrosoftDocs/azure-docs/issues/60637

还请记住,ADF首先将查询发送到BW的方式提取数据,然后BW在其末端创建一个收集该信息的文件,然后将该文件发送回自托管IR,然后由该IR写入数据通过ADF进入存储帐户。可能发生的是,如果文件太大,则管道可能会失败,但这不是由于ADF,而是由于BW方面的限制。

希望我的经验可以帮助陷入困境的其他人:)