在向dpf环境的表中插入数据时,是如何分发到各个节点的,是先插入到某几个节点然后进行均衡,还是直接根据创建表时定义的distribute by hash(key)key值直接插入到对应的节点中?
DPF里有一个叫做PARTITIONMAPS的东东和HASH算法共同起作用,在V9.7以后是一个长度为65536的映射表,容纳了32768个两字节的整数,它的结构很简单,比如你有8个分区节点,那内容就是 1 2 3 4 5 6 7 8 1 2 ... 7 8 ...7 8 ...总共32768个1-8的循环。设置为HASH键的字段经过哈希算法后得到一个小于32768的值,比如是10480,会在PARTITIONMAPS中第10480位找到这个值对应的PARTITION ID。差不多就是这样了。
收起