大数据量数据的加载实现方案讨论

[复制链接]
查看11 | 回复6 | 2008-9-15 01:28:12 | 显示全部楼层 |阅读模式
先说一下环境,oracle版本是9.2的,OS是unix,数据量大概有80G,200来张表。
现在使用的加载方法是,使用proc程序进行加载,在oracle上建外表,然后proc程序里边执行insert,另外,在每条数据上添加date字段,做为时间戳。并行加载,耗时在1个半小时,缺点是,每次增加表或者修改表结构,都要修改proc程序,很麻烦。
我是想使用sqlload的方法实现,具体怎么实现还没有想好,不知道会遇到什么技术上的难点,另外效率不知道会怎么样。

希望有经验的高手能指点一下。


回复

使用道具 举报

千问 | 2008-9-15 01:28:12 | 显示全部楼层
数据哪里来的?以什么格式存在?
回复

使用道具 举报

千问 | 2008-9-15 01:28:12 | 显示全部楼层
你这是典型的 ETL, 一大把的工具,为什么要自己写程序?
微软的 SSIS 很好用
如果表示变化的,将表结构用XML文件定义好,再用你的程序分析。表结构不能写死在程序里。
[ 本帖最后由 guostong 于 2009-9-18 02:30 编辑 ]
回复

使用道具 举报

千问 | 2008-9-15 01:28:12 | 显示全部楼层
外部表能否直接和时间戳关联上,然后用insert语句?
回复

使用道具 举报

千问 | 2008-9-15 01:28:12 | 显示全部楼层
数据是使用datastage导出的,每个表一个文本文件,列的分隔符是tab
我们这边没有在生产上用ms的东西,所以SSIS是啥东东我也不知道呢,呵呵
外表里边没有时间戳的,时间戳是在pc程序里边读取数据库得到的。这个问题我可以通过shell解决的。
回复

使用道具 举报

千问 | 2008-9-15 01:28:12 | 显示全部楼层
你已经建立了外部表?那么还要PRO*C干什么,直接INSERT...SELECT... FROM 外部表不就行了?
回复

使用道具 举报

千问 | 2008-9-15 01:28:12 | 显示全部楼层


这个问题我咋没想到呢,汗。自己试试。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行