当前位置:IT教程网教程中心程序开发DB2 → 教程内容

帮帮忙阿,怎么实现大数据量从oracle导入到db2

减小字体 增大字体 作者:佚名  来源:不详  发布时间:2006-12-29 13:16:00

怎么实现大数据量从oracle导入到db2,由于oracle和db2的date类型不一直,db2中分为date,time,和timestamp三中类型。因此我们到数据到文本的时候就要定制自己的数据格式。
现在我又三种方法导:
1。走文本,就是把oracle导入到文本文件,然后就是用load再导入db2,现在问题就是不知道怎么把大数据量导入到文本文件,用spool太慢了,那位大哥有没有倒文本的好方法阿,toad对大数据量也不行,只不过toad导出的文本格式很容易定制。
2。用仓库中心,走odbc直接连,可是现在我一直没有成功过,千万级以上的,好像这个也很慢。
3,用ibm提供的组件,relaciotn connect,但是由于db2没有和oracle主机想对应的客户端的oralce的代码页,所以取过来的中文是无法显示,都是?号。
这是我在导数据中积累问题和经验,看看那位大哥能帮帮我!

 Law 回复于:2002-11-16 14:37:26
为什么没有人回帖阿,这个应该是大家都要遇见的问题阿。


 Law 回复于:2002-11-16 14:50:49
大家帮帮我把,我快要死了

 loufangxin 回复于:2002-11-16 15:00:13
我有工具可以将数据导出成文本文件,blinkstar@163.net


 Law 回复于:2002-11-16 15:47:32
怎么给我
dl-door@163.com

 loufangxin 回复于:2002-11-16 16:20:19
目前不能处理LONG,BLOB,CLOB,BINARY等类型和值中有回车的情况

 loufangxin 回复于:2002-11-16 16:21:45
你有上述情况吗?如果没有则可以试一下.

 Law 回复于:2002-11-16 16:22:14
可以给我,我试试,

 loufangxin 回复于:2002-11-16 16:24:19
我只允许你用ODBC连接至DB2可以吗!

 loufangxin 回复于:2002-11-16 16:30:11
给一个EMAIL吧

 loufangxin 回复于:2002-11-16 16:34:34
你收一下MAIL吧

 Law 回复于:2002-11-16 16:46:41
收到你的邮件了,怎么是java阿,能不能不走odbc,走odbc的话,那也必须比数据仓库中心提供的组件要快哈!!

 loufangxin 回复于:2002-11-16 16:48:00
速度:二十字段的表,大约为12万条记录/分钟

 loufangxin 回复于:2002-11-16 16:49:57
JAVA比较容易处理字符编码等问题,我在ORACLE上试,JAVA很快的

 Law 回复于:2002-11-16 16:51:12
我十要把oracle的数据导出来然后到db2,可以直接到db2,也可以先到文本在到db2,从文本到db2十很快的,主要慢在oracle那里!!

 loufangxin 回复于:2002-11-16 16:51:19
你用一台很好的WINDOWS机器做导出服务器,运行多个导出线程,为什么会不快呢?

 loufangxin 回复于:2002-11-16 16:54:32
用法
JSQL> export -id tab_subscrb
    2   -query "select * from tab_subscrb"
    3   -file d:\tab_subscrb
    4   -log  d:\tab_subscrb.log
    5 /
JSQL> start tab_subscrb
JSQL> status

 Law 回复于:2002-11-17 12:18:52
昨天我把电信的acct_item表从oracle导入到db2中区了,用的是db2的数据仓库管理中心,走odbc,用了11个小时,有20个字段,数据量4千4白万条记录

 windrain 回复于:2002-11-17 12:41:35
acct_item每个月应该有3000万左右,call_ticket也差不多,对于那三个计费(集泓通、新宇龙、大唐)的表结构差不多,可以使用pro*c来统一处理,根据配置文件的不同判断哪个集成商的计费系统,pro*c程序优化以后每分钟可以生成35-70M的数据文件(按照db2的del模式),对于acct_item,我记得我处理的时候pro*c用了25-35分钟做了数据采出,db2 load的时候用不到10分钟左右。
仅仅作为一个建议,请参考。

 loufangxin 回复于:2002-11-17 15:04:29
我建议可以按时间分别用ODBC导出,进行并行导出,可以快一点.

 loufangxin 回复于:2002-11-17 15:07:11
用我给你的程序可以在5个小时内完成从ORACLE导出

 loufangxin 回复于:2002-11-17 15:10:07
采用并行的话更快可以更快的速度导出,我们在建设数据仓库时就是用我的程序来作接口来导数据的.
如何并行:
  export select * from  acct_item where 第一部分
  export select * from  acct_item where 第二部分
  export select * from  acct_item where 第三部分
  ...

 Law 回复于:2002-11-17 19:20:15
但是oracle服务器是电信的计费系统的,我们不能去碰它阿,我们只有在客户端做。export好像是db2的命令,oracle也有?

 loufangxin 回复于:2002-11-18 10:02:39
用我给你的程序,那个EXPORT是我自已做的

 Law 回复于:2002-11-18 15:21:27
你给我的是限制版本阿,我不能连到oracle

 loufangxin 回复于:2002-11-19 11:35:15
通过ODBC连接吧,效率还可以的

 Law 回复于:2002-11-20 11:50:15
大哥,能不能给一个破解版阿

 loufangxin 回复于:2002-11-20 16:22:08
我从周一下午开始,已经从远程数据库中导出2亿条通话记录,准备通过60K/S的数度下载导出的文件,然后用SQLLDR导入导ORACLE中。

 Law 回复于:2002-11-20 17:38:55
呢怎么导的,用什么方法??

 loufangxin 回复于:2002-11-22 12:37:54
我用的就是这个工具,我在HPUX上同时启动90个进程,9个地区,每个地区并行导出10天的话单,用了一个晚上就将所有的约二亿条话单导出了,用SQLLDR约半个小时能导入1000万条记录,因为要先解压文件.

 Law 回复于:2002-11-22 14:54:31
2亿条话单文本文件有多大?
你那个工具还可以阿,不错的,能不能给出一个破解版,可能不走odbc速度还要快点!

 loufangxin 回复于:2002-11-22 15:29:39
分成了270个文本文件,然后用批处理来进行LOAD。

 loufangxin 回复于:2002-11-22 15:30:25
你有没有试试ODBC连接的速度?

 Law 回复于:2002-11-22 23:16:43
我试过,导入cust表200万用了30分钟,我还有一个忙向让你帮帮,在另外一个帖子上
叫:帮我看看这个建库的语句错在哪里了?

 loufangxin 回复于:2002-11-23 15:43:44
速度和网速很有关系的,最好和服务器有100M的连接,同时可以将大表分成几个部分导出。

 Law 回复于:2002-11-24 17:30:15
另外帖子的问题我已经解决了。
你的qq是多少阿,我们以后可以在qq上讨论阿!!qq:4416408
还有一个问题。我在hp-ux上建立了一个用户ipd,我用ipd登陆上去后,运行db2,结果显示他怎么提示sh: db2:  not found
是不是建立用户的时候还要和db2关联什么?

 loufangxin 回复于:2002-11-25 08:58:56
肯定是环境变量的问题,另外公司规定上班时不能用QQ,我们用的是AIM。

 roamer 回复于:2002-11-25 13:18:45
Oracle那边可以这样做:
因为PRO*C支持数组操作,可以从数据库中把一定数量的记录(我测试10000条性能比较告)读入一个数组中,然后把数组中的记录写到文本文件中。

性能比SPOOL高很多。

 Law 回复于:2002-11-25 21:43:28
环境得问题已经解决了,你知道怎么设置c得编译环境?也就是.h文件的路径问题

 loufangxin 回复于:2002-11-26 09:22:32
你的速度有多少?对于字段比较少的表我的速度可以达到7000/6个字段/每秒
include $oracle_home/precomp/public
lib $oracle_home/precomp/lib/msvc

 roamer 回复于:2002-11-26 11:12:26
[这个贴子最后由roamer在 2002/11/26 11:13am 编辑]

HP L2000, 37个字段,负载及IO正常,阵列存储,40000/s

 loufangxin 回复于:2002-11-26 11:41:55
好快啊,我在普通机器上试的,你的程序能做成Dynamic SQL Type 4吗,就是比较通用的。我用JAVA编写的,通用性很好,可以连接很多种数据库,但速度不尽人意,运行时占用系统资源很历害。

 loufangxin 回复于:2002-11-26 11:50:19
40000条记录/秒的速度不可思议.

 Law 回复于:2002-11-26 12:35:09
我在hp-unix下面运行
bldapp sqlc dwdb db2inst1 ibmdb2
可是提示不能找到很多.h文件,要怎么设置才能找到?

 roamer 回复于:2002-11-26 13:12:32
db2装载可以有10万/s,s690.

引用内容 引用内容
下面引用由loufangxin在 2002/11/26 11:50am 发表的内容:
40000条记录/秒的速度不可思议.



 Law 回复于:2002-11-26 13:42:31
可以,我在pc serv上一个硬盘,就达到了20000/s,今天我得同事在pc sever上hp LH 6000 上用oracled和业务系统得oracle库到库得导表,1300万,用了4分三十秒,弄得我db2好没有面子阿,
那为大哥知道relations connect的最大速度可以是多少

 loufangxin 回复于:2002-11-26 13:51:23
这说明JAVA的程序还不太实用.

 Law 回复于:2002-11-26 21:41:39
经过测试,我导数据db2表到表1300 用了3分20秒

 Law 回复于:2002-11-26 21:48:10
错错了,是1300万,差点侮辱了db2的名声

 loufangxin 回复于:2002-11-27 09:01:38
程序能做成通用的吗?即用SQLDA来取得动态SQL的结果?

 Law 回复于:2002-11-27 11:48:55
什么程序?
sql语句的返回值在sqlca.sqlcode  类型long

 zhanglinwen 回复于:2002-11-27 18:42:23
我知道用datastage工具可以做到这一点。我们就做过,速度是:4000行/s

 loufangxin 回复于:2002-11-27 20:08:55
现在还需要我的JAVA程序吗?

 Law 回复于:2002-11-28 13:28:58
你的java有没有破解版?

 loufangxin 回复于:2002-11-28 13:51:50
有的,速度也不能和PRO*C比,我正在想办法将速度提高一倍的办法。

 Law 回复于:2002-11-28 17:10:49
好的,看能不要能做个通用的导数据的很快的

 loufangxin 回复于:2002-11-28 18:06:26
速度很难调高,主要是慢在JDBC的记录FETCH上。
在PIII 1.1G上的速度是2400/20/S,生成文件的速度是20M/分钟
在P IV 1.6G上的速度是4000/20/S,生成文件的速度是36M/分钟
(分别在笔记本上试的速度,IBM T23和IBM R32)
不知道这个速度能否完成要求。

 mrprogram 回复于:2002-11-28 18:08:58
推荐使用PB的管道工具

 loufangxin 回复于:2002-11-28 19:34:16
有多快?

 Law 回复于:2002-11-28 22:35:20
是不是只要走ODBC就慢??

 loufangxin 回复于:2002-11-29 09:04:20
我没有走ODBC,也就这个速度。

 Law 回复于:2002-11-30 20:17:12
他们走oracle到oracle1300万条就只用了4分钟阿

 loufangxin 回复于:2002-12-10 17:33:17
我只能将速度提高2.5倍,在二十个字段的情况下,我用P IV的机器上做试验,达到了10000/s

 Law 回复于:2002-12-10 21:58:55
hha ,你是用什麽导出的??

 loufangxin 回复于:2002-12-11 09:05:48
就是用改进后的JAVA工具

 Law 回复于:2002-12-11 12:03:12
 能不能把那个java工具发给我?dl-door@163.com

 loufangxin 回复于:2002-12-11 12:27:39
在FTP的JSQL中,没有带任何JDBC驱动,请自已找

 loufangxin 回复于:2002-12-11 12:29:11
sun jre 1.3以上,帮忙测试一下

 loufangxin 回复于:2002-12-11 12:30:02
必须将各字段显式地转换为字符类型.

 maxb 回复于:2003-07-18 12:34:31
这位仁兄,这工具很有用,能否也给我一份,先谢拉.maxb@ln139.com.cn

 maxb 回复于:2003-07-18 12:38:54
这位仁兄,这工具很有用,能否也给我一份,先谢拉.maxb@ln139.com.cn

广告位置