在PyRFC中分块大数据集。可能的

2024-04-28 15:31:46 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有办法用SAP-RFC将大的结果“分块”成几个小的部分

根据这些链接,您似乎需要自己实现分块:-(

我希望避免这种情况,我希望有一种方法可以让SAP-RFC库进行分块

用例:

The result are 100k rows. I would like to fetch 1k rows until all rows are received.

我想这并不重要,但我将使用PyRFC作为我的代码


Tags: httpsgithubcom链接rfcthreadare分块
2条回答

RFC库在这里做不了什么:它只是发出一个请求,然后从R/3系统接收响应。因此,如果R/3系统返回100k行,库将接收这些100k行,如果R/3系统返回这些行中的一个块,库将只接收这个块

为了进行分块(或“分页”),双方(外部程序和被调用的ABAP代码)必须以某种方式进行合作。这是泛型库无法做到的

RFC基本上遵循“请求-响应”模式,如果您想要更小的响应数据,那么客户端必须发出多个请求,服务器只需为每个请求返回“总体数据”的一部分

编辑:我现在也读了您的第60期,如果您主要关心的是性能,那么您最好直接使用C/C++NW RFC库,而不是Python包装器

我不熟悉Python的工作原理,但如果它与Java/JNI有些类似,那么我希望内存中的所有数据总共有两个副本:首先RFC库从wire接收数据并将其存储在C堆上,然后是一些C<-&燃气轮机;Python互操作层需要将数据复制到Python虚拟机?!如果是这样的话,通过用C/C++编写提取器程序,您已经可以保证50%的内存消耗

根据这个issue #60sap rfc不能进行分块。你需要打几个较小的RFC电话

那太可悲了。我猜在专有的封闭源代码中有几百个肮脏的本地生成的分块解决方案,它们都一次又一次地解决相同的问题

相关问题 更多 >