加载平面文件的性能降低

2020-09-24 10:13发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)亲爱的 我正在使用Sap数据服...

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

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


亲爱的

我正在使用Sap数据服务进行概念验证,并且在一个简单的任务中性能下降。
欢迎您提出任何提示或线索,以减少执行任务的时间。
我已经更改了DSconfig.txt和其他并行性选项中的参数,并进行了一些改进,但与其他ETL工具的时间相去甚远 。
我注意到在处理过程中,CPU达到了97%,但是使用的内存达到了11 GB,仍然保留了5 GB的可用内存。

目标:
加载10个文件,这些文件包含10,000,000行,4个整数字段,按3个字段分组,计算行号并将输出排序为1个文件。
每个文件大小为200MB
服务器上文件的源和目标

问题:
与其他ETL工具相比,读取文件的性能较低
Pentaho:50s
IBM DataStage:37s
PowerCenter:47s
SAP Data 服务:126秒

在Linux上进行了测试,可通过cat delay 7s System读取相同的10个文件(100,000,000行)

环境

软件:

SUSE Enterprise 12上的VMWARE ESX 5.5
Sap Data Services 4.2 SP9
存储库AnyWhere 17

硬件:

Dell PowerEdge M630刀片服务器,带有2个Intel(R)Xeon(R)CPU E5-2697 @ v4 @ 2.30GHz和512GB RAM。
存储IBM Storwize v7000
Switch Brocade 5100
16 GB RAM

开发了两个Job,一个简单,几乎没有组件,每个都有一个数据流。

第二个作业使用更多的对象,虽然速度更快,但仍比其他ETL工具慢。
------------------------- -------------------------------------------------- -------------------------------------------

1)第一份工作(JB_POC)

使用以下组件开发了一个数据流:

对象属性
并行度:10
缓存类型:in_memory_cache

平面文件源属性

查询

从FF_Arquivo1
组中按FF_Arquivo1.Field2,FF_Arquivo1.Field3,FF_Arquivo1.Field4
从FF_Arquivo1.Field2 ASC排序,FF_Arquivo1.Field3 ASC,FF_Arquivo1.Field4 ASC = 映射描述数据类型内容类型
Field2 = FF_Arquivo1.Field2 INT
Field3 = FF_Arquivo1.Field3 INT
Field4 = FF_Arquivo1.Field4 INT
Field5 = count(*)INT

总时间157s

--------------------------------------------------- -------------------------------------------------- ----------------------
2)第二份工作(JB_POC_MULTIFILES)

开发了一个具有10个数据流的工作流(WF_MULTIFILES),每个数据流(DF_POC_ArquivoX)读取一个特定的文件,对行进行分组和计数,并将其保存到1个日志文件中。
另一个数据流(DF_POC_GROUP)合并了10个文件,汇总了 进行分组和计数。

WorkFlow(WF_MULTIFILES)

对象属性
并行度:1
缓存类型:in_memory_cache

总时间126s

谢谢。

最好的问候

(21.2 kB)
4条回答
nice_wp
2020-09-24 10:55

不要尝试对文件进行排序,汇总...。 DS必须将完整的文件内容读取到内存中才能执行这些操作。

首先将文件复制到暂存数据库。 您可以使用Data_Transfer作为数据流中的第一个转换来执行此操作。 查询转换的逻辑将在数据库中执行,只有结果将通过DS内存流式传输到输出文件。

一周热门 更多>