【问题标题】:DB2 load partitioned data in parallelDB2 并行加载分区数据
【发布时间】:2010-02-02 22:19:32
【问题描述】:

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

没有共享的 NFS 挂载 - 我的机器都不能处理所有组合的数据集。

数据集文件的每一行都是一长串文本,以列分隔。第一列是关键。我不知道 DB2 将使用的散列函数,因此数据集没有预先分区。

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

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

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

【问题讨论】:

    标签: database load db2


    【解决方案1】:

    如果每个分区上的各个数据文件不是源自同一个数据库分区,那么您就会陷入困境,并且必须运行 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 ...."
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多