我想知道从安装在Azure cloud上的SAP提取表到Azure data lake gen2的过程。我想使用ADF将数据从SAP BW复制到数据湖。
我们可以使用SAP连接器将ADF直接连接到SAP吗?我是否必须为此连接安装Runtime Integration和任何VM?SAP BW Open Hub connector与SAP BW via MDX有何不同?
当SAP也托管在Azure上时,我希望听到专家关于如何从SAP BW中提取数据的意见。谢谢。
发布于 2020-09-02 22:25:42
我不是专家,但BW人员向我解释了其中的区别,您可以同时使用两者,但是使用OpenHub,您可以在没有BW人员参与的情况下对BW查询运行摘录,但性能不会很好。有了MDX,我相信需要在BW上设置额外的开发,但性能更好。
还请记住,当我运行这些查询时,我发现很难将其并行化,虽然Microsoft docs没有提供很好的示例,但我发现我推送到BW的任何东西都是作为单个查询发送的。
或者,我最近的用例是从SAP中的表中获取数据,而不是从多维数据集中获取数据,因此这可能会起作用。
我按照为"SAP Table" connector列出的说明进行操作
要使此过程正常工作,您将需要一个自托管IR (在您的笔记本电脑上或连接到ADF的VM上),并需要安装以下驱动程序:

要获得这些驱动程序,您可能需要联系您的Basis团队。他们还需要创建一个接口角色(特别是如果这是您第一次建立此连接,并且您希望服务帐户被其他进程重用)。
在所有这些之后,您还需要将RFC授权添加到此接口。以下是对我有效的方法。微软网站确实给出了建议的RFC授权,但这些授权几乎是管理员级别的,而我们的Basis团队基本上不想这样做:
S_RFC: FUGR - RFC1,SYST,SYSU FUNC - RFCPING,RFC_FUNCTION_SEARCH ACTVT - 16
除此之外,我们还运行了几个测试,发现根据您希望从其中提取数据的表的数量,它们可能需要添加额外的授权,以便您只能从该表中读取数据。
上面的过程是我遵循的,所以你的可能看起来有点不同,但要让它工作,你需要:自托管IR,安装在这些IRs上的SAP驱动程序,允许你访问BW系统id的防火墙规则,Basis创建的接口,然后还有RFC授权。
我在microsoft github文档中提出了一个关于不正确的RFC授权列表的问题:https://github.com/MicrosoftDocs/azure-docs/issues/60637。
还请记住,ADF拉取数据的方式首先将查询发送到BW,然后BW在其一端创建一个收集该信息的文件,然后该文件被发送回自托管IR,该IR然后通过ADF将数据写入存储帐户。可能发生的情况是,如果文件太大,那么管道可能会失败,但不是因为ADF,而是因为BW端的限制。
希望我的经验可以帮助其他陷入困境的人:)
https://stackoverflow.com/questions/60612030
复制相似问题