APD在处理数据抛转时,起到不可替代的作用。 因为数据剧增,用户在使用过程中出现“EXSORT_NOT_ENOUGH_MEMORY”的问题,于是我在处理链中直接执行了“Repeat”,重新执行此节点,成功执行。
可是用户第二次执行处理链时,在APD节点又再次出现此异常。 我比对了一下系统内存的设置,数值方面不会有太大的差别。所以摆在前面的路只有一条,分拆APD抽取结果。
第一个想法是拆成几个query,然后分别抽取,操作简单,但是需要多建query和DSO,觉得不是很甘心。 我重新检查了APD的节点设置,万幸地发现可以对结果集进行限制。
设置界面
注意,这里的Package Size是你选择的特征值的大小,而不是产生的数据包大小。
通过这样设置,在开发环境成功执行。但是传输到生产机,执行过程出现错误:
反复执行,仍无法通过,但是出乎意料的是,如果我直接进入APD界面去执行APD处理,又是可以生产结果集的。 实在是想不通原因,也真没辙了。
出于尝试目的,我选择了新的特征进行限制。 我选择了日期,然后PageSize限制成3个,在开发机顺利通过,通过Request传输到生产机后,重新执行了处理链,经过紧张的等待后,顺利执行。 看来,这里的分区还是有讲究的。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/554557/viewspace-751154/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/554557/viewspace-751154/