现在有一个需求:
客户提供一个数据文件,这个文件包含4000行数据,其中每一行由10000项指标数据组成如果把这个表保存到一张表显然是不现实的因为这将创建一个10000个字段的表,而ORACLE的单表最大列数仅为1000个我想了如下两个办法:1、把字段行化,表结构为:行号(rid),指标名(name),指标值(value)这个方法虽然可以实现功能,但性能非常不好,首先是在数据解析上较为麻烦再就是数据量将很大(对于此例将有40000000行数据)并且以后基于此表的统计也将非常麻烦2、把表细化,比如:创建10个表,每个表1000列,即把10000个字段分成10个表存储虽然这样在以后的应用上比较方便但是这个在数据解析上也很麻烦不知道有没有比较好的解决方案敬请各位仁兄不吝赐教,谢谢!
客户提供一个数据文件,这个文件包含4000行数据,其中每一行由10000项指标数据组成如果把这个表保存到一张表显然是不现实的因为这将创建一个10000个字段的表,而ORACLE的单表最大列数仅为1000个我想了如下两个办法:1、把字段行化,表结构为:行号(rid),指标名(name),指标值(value)这个方法虽然可以实现功能,但性能非常不好,首先是在数据解析上较为麻烦再就是数据量将很大(对于此例将有40000000行数据)并且以后基于此表的统计也将非常麻烦2、把表细化,比如:创建10个表,每个表1000列,即把10000个字段分成10个表存储虽然这样在以后的应用上比较方便但是这个在数据解析上也很麻烦不知道有没有比较好的解决方案敬请各位仁兄不吝赐教,谢谢!
解决方案 »
- 请问这种形式的SQL记录集如何进行转换
- 使用 logminer 分析日志出现 ORA-04030: out of process memory when trying to allocate 5148
- 查询字段中含有空格的数据
- 无法加载ORACLE IN ORCLE_IN_CLIENT10G_HOME1驱动程序的安装实例,因为存在系统错误代码998
- oracle实体化视图快速刷新
- 大家看这个存储过程错在什么地方?
- imp导入时会不会因为表空间不足而只导入表结构而不到如数据
- oracle for linux下载和安装问题
- unix下问题
- PL/SQL存储过程问题
- 在线求教一个oracle job问题!急!
- 怎么将符号单引号插入ORACLE数据库的表中
例如
id , column, table, name
1 , column1, table1 , columnA
2 , column2, table2 , columnB
3 , column3, table3 , columnC用 name 字段拼接出 view 进行查询统计操作
例如 select table1.column1 as columnA, table2.column2 as ColumnB,
Insert, Update 也可用此表解析
update table1 set column1 = 'xxx';
可以分表存储,10000列分10(如果考虑ID的话应该是11)张表存储
一条数据在这10张表中都对应有1条记录
这些记录序列相同
insert、delete的时候用批处理
select跟一张表查区别不大
update的时候需要特别处理一下
现在就是要解决这样一个问题:
表这么分的问题。
按指标相关性进行分呢,还是按指标顺序进行划分?从业务层面上讲,按指标相关性划分比较合理,
但是如果指标分布比较分散的话,
在解析文件拼写SQL语句的时候将非常麻烦从操作层面上讲,按顺序划分比较方便,
但这样在后面的应用上可能会有些麻烦
当然,数据比较复杂,麻烦是不可避免的
现在就是想找到一个比较权衡的办法我现在是这样想的,
按照顺序进行划分,
这样在解析文件和插入的时候较为方便
首先将文件按照列顺序分成若干个小文件
然后将这些小文件通过SQLLOADER分别录入到相应的表中
在此之外,我还想到另外一个方法
只创建一个表
将多个指标项作为一个对象插入到一个字段中
我觉得这个方法可以一试
但是以前没用过这种方法
不知在以后的统计中是否有问题在此,还敬请各位仁兄指点迷津,谢谢!