DB2并行加载分区数据

时间:2010-02-02 22:19:33

标签: database load db2

我有一个10节点的DB2 9.5数据库,每台机器上都有原始数据(即 节点1:/scratch/data/dataset.1 节点2:/scratch/data/dataset.2 ... 节点10:/scratch/data/dataset.10

没有共享的NFS挂载 - 我的机器都无法处理所有合并的数据集。

数据集文件的每一行都是一长串文本,以列为界。第一列是关键。我不知道DB2将使用的哈希函数,因此数据集不是预分区的。

没有重命名我的所有文件,有没有办法让DB2并行加载它们? 我正在尝试做类似

的事情

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

但我不知道如何向db2建议它应该在第一个节点上查找dataset.1等。

1 个答案:

答案 0 :(得分: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 ...."