下载200万行

2020-09-04 05:31发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我正在尝试下载200万行左右的超大表格

据我搜索,内部表可以容纳的内容没有限制。

客户端希望第一次运行prg以获得一定数量的记录,并以sap格式下载文件

然后再次运行剩余的记录。

您认为最有效的解决方案是什么?

我应该限制文件最多100K个记录(或多或少)吗?

如何从上次下载中选择最后一条记录?

提前谢谢

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我正在尝试下载200万行左右的超大表格

据我搜索,内部表可以容纳的内容没有限制。

客户端希望第一次运行prg以获得一定数量的记录,并以sap格式下载文件

然后再次运行剩余的记录。

您认为最有效的解决方案是什么?

我应该限制文件最多100K个记录(或多或少)吗?

如何从上次下载中选择最后一条记录?

提前谢谢

付费偷看设置
发送
6条回答
软件心理学工程师
1楼 · 2020-09-04 06:15.采纳回答

到目前为止,我找到的最好的解决方案是在您的时间限制内运行该程序,然后查看它可以处理多少记录而不会崩溃。

然后以该数量运行程序,当达到该数量时,您必须将行保存在标准SAP表中。

在第二次运行时,您首先从表中读取并选择大于行的数据。

重复该过程,直到没有剩余数据为止。

粗暴的香蕉
2楼-- · 2020-09-04 06:22

如果文件存储在前端,则必须读取整个文件。 如果在应用程序服务器上,则可以使用GET DATASET获得文件的总长度,而使用SET DATASET获得大约位置的位置(例如,您可以假设最后一行的长度永远不会超过1000个字节,因此位置位于total处) 减去1000,然后读取行,直到结尾。)

callcenter油条
3楼-- · 2020-09-04 06:06

乔纳森,你好,当我几年前不得不创建一个程序来做类似这样的事情时, 在程序中执行文件的"拆分",而不是多次执行程序。 您基本上需要的是围绕一个文件的选择,处理和下载的一些循环逻辑。 像这样:

  1. 将所有需要的键值放入一个内部表中。 只要此表仅包含一些键字段,该表应能够容纳数百万个条目(如果需要)。 唯一的限制是一个进程可以使用多少内存。 确定此键表中的项目数(即在名为max_items的变量中)
  2. 在选择字段中定义一个参数字段,您可以在其中提供要在一个循环中处理的项目数 -迭代。 在开发系统中,这可能相当低,而在测试和生产中,这可能会更高。 将其作为参数使您可以"播放"可以处理的数据量,而不会遇到内存或运行时问题。
  3. 您将需要两个参数来保存" from"和" to",其中初始" from-value"将为1,而" to-value"将是您在参数中指定的值。每次循环迭代时,这些值将以参数值递增,您只需要 以确保" to-value"永远不会高于键表中的条目数(max_items)。
  4. 在循环中,您将根据索引" from"从完整键表中复制条目 "和"到第二个内部表(或范围表),然后可以在随后从表中进行选择的过程中使用该表,您实际上需要从中下载数据。
  5. 处理每个表 数据本身的"子集",例如,根据循环迭代在文件名中使用后缀以使名称区分。

在一些代码 ,这可能还没有100%完成,但我希望它能对您有所帮助!

干杯

Bärbel

CPLASF-自律
4楼-- · 2020-09-04 05:55

GáborMárián

它将被下载到samba服务器中。

格式将为xml

没关系,要求是下载此文件,就是全部

粗暴的香蕉
5楼-- · 2020-09-04 06:20

由于将数据下载到服务器,这意味着程序可以在后台执行 ,因此不会发生超时转储。

超出内存限制的潜在风险仍然存在,因此我建议像这样处理数据:

 SELECT ... FROM  INTO TABLE结果PACKAGE SIZE rows_per_file
  
   ...将单个文件写入服务器...
  
 ENDSELECT。
 

仍需要确定每个文件的行数的最佳值,这主要取决于您要导出的记录的大小。

Doze时光
6楼-- · 2020-09-04 05:56

Sandra Rossi

感谢您提到背景处理,我显然在回复中忘了这样做。 乔纳森(Jonathan)的要求所涉及的庞大数据几乎完全排除了在线处理的可能性。 我的即将来临的假设-可能是错误的-基本上是一次出于某种原因而产生数据的活动,并且(希望如此!)这并不是定期运行的东西(我多年以前写的程序是在 与这种情况,因此您可以想象一下需要提取哪种类型的数据。)

一周热门 更多>

向帮助了您的网友说句感谢的话吧!