datastage谁用过?请问一下如何在里面添加分区

0
已邀请:
0

我是最优雅的杀手,不杀人专杀狗 - 日光之下并无新事 2016-03-22 回答

如果控件设置为并行执行的模式(在Stage页面下的Advanced页面进行设置),那么可以通过Partition type下来菜单来选择分区的方式:

Auto:    默认情况下的选项是Auto,它会根据配置文件中设定的结点数以及当前、前置Stage的执行模式进行分析,得到最优的分区方法。Auto的方式保证了数据在Join前是基于关键字分区的,且排过序的。
通过选择auto可以保证正确的进行分区和排序,如果输入的数据集在进入join之前是已经被前置的stage进行过分区或排序处理的,选择auto可以探测出来,不会再进行处理。

Entire:  每一个处理的节点都会接收所有的数据集。
Hash:   将数据集按关键值进行分区。   
Modulus:使用模函数对数据集按关键值进行分区,与Hash的方法类似,区别在于Modulus仅能处理Integer和Decimal类型的数据。
Random:基于随机数字生成器的输出,对数据集进行随机的分区。
Round Robin:将数据按顺序循环的放入处理节点。
Same:   保留已有的分区方式。
DB2:    对一个特定的DB2表的分区方法进行复制,很少使用。
Range:  将数据集按照一个或多个关键值分成相等的几个分区,必须先生成Range Map。很少使用。
一般情况下,建议使用“Auto”的方式,若自定义分区方式,较常用的是“Hash”分区。   

有疑问可以直接交流。


 
0

simon_cao - 打酱油 2016-03-21 回答

用过Datastage的人不少,先说说你的问题呗,分区有很多种方法,也可以说在parallel job中大部分stage都使用了auto分区。

要回复问题请先登录注册