数据落地不落地导入导出的一个误区

面对日益庞大的数据量,不同数据库之间数据同步,或者不同系统之间数据的同步导入和导出。选择的方式越来越多,一味强调什么不落地数据同步,并不意味着效率一定有多高,要视对应的场景来决定。


场景一:DB2 导出同步数据到GreenPlumn数据库


      DB2 普通的数据库db2export 导出速度大概几十M左右,DB2 Dpf分区数据库,多线程按照分区来抽取大概可以达到进200M左右,db2 hpu工具的速度就快了。

     Greenplumn数据库导入的速度,Copy方式可以达到280M/s,gpfdist服务可以达到350M/s左右,gpfdist可以启动多个服务,多个网卡并行处理速度就更快。

     这样如果用Db2不落地方式导出到gp数据库,可能就会出现一个性能的瓶颈。DB2导出才几十M,一个大数据量的表比如说有几百G,DB2导出花费时间2个小时,实际GP只要10分钟,不落地方式导致GP数据库连接一直被占用,得不偿失。

万一DB2导出中间的流程挂掉,定位错误极为不方便,而且流程重新来一遍花费的时间就更长。


场景二:Oracle 数据库导出同步到GreenPlumn数据库


       和上面一样只是Oracle数据库就更慢了。我曾经测试过一个从GreenPlumn数据库导出到oracle数据库,一个几十G的文件从Gp导出不落地入库到Oracle数据库花费将近一天的时间.

反之从Oracle数据库导出入库到GP基本上时间也都是花在Oracle导出上面。


所以项目中采用的方式,以实用可维护为主,内存,cpu各种物理环境需要综合考虑。


  

你可能感兴趣的:(GreenPlumn数据库)