点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)亲爱的 我正在使用Sap数据服...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)亲爱的 我正在使用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
存储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)
不要尝试对文件进行排序,汇总...。 DS必须将完整的文件内容读取到内存中才能执行这些操作。
首先将文件复制到暂存数据库。 您可以使用Data_Transfer作为数据流中的第一个转换来执行此操作。 查询转换的逻辑将在数据库中执行,只有结果将通过DS内存流式传输到输出文件。
一周热门 更多>