2010-02-02 52 views
0

分配数据我有一个10节点DB2 9.5数据库,与原始数据的每个机器上(即,节点1 :/scratch/data/dataset.1 节点2:/scratch/data/dataset.2 ... 节点10:/scratch/data/dataset.10DB2负载并联

有没有共享NFS挂载 - 没有我的机器可以处理所有的数据集相结合的

一个集文件的每一行是一个长第一列是键,我不知道DB2将使用的散列函数,所以数据集没有预先分区。

对我的所有文件进行重命名的方式不多,是否有任何方法让DB2将它们全部并行加载? 我试图做一些像

加载从'/ scratch/data/dataset'del修改由coldel |将fastparse消息/ dev/null替换为TESTDB.data_table part_file_location'/ scratch/data';

,但我不知道怎样建议到DB2,它应该寻找第一个节点上dataset.1等

回答

0

如果每个分区上的单个数据文件并没有从同一个数据库分区起源,那么你就会陷入困境,并且必须运行10次负载 - 一次从每个不同的数据库分区运行一次。你可以这样做与db2_all在单个命令来执行负载:

db2_all "db2 connect to db; db2 load from /scratch/data/dataset.\$DB2NODE of del ..." 

不要试图在并行运行db2_all命令。 ;-)

对未来的另一种想法:如果先压缩所有文件,那么单个服务器上是否有足够空间?您可以从命名管道加载:

mkfifo f 
    cat dataset.*.gz | gzip -dc > f & 
    db2 "load from f of del ...."