我有一个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等。
答案 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 ...."