求IT高手乱入
本帖最后由 我想我会 于 2015-10-20 08:49 编辑问到请删
这个问题确实太复杂了,所以表达起来也很复杂,都不知道该怎么说才好了,不知道大家能不能看明白,希望有相关经验的高手,一看就能明白我的意思吧,给点指点吧! 弄个hana估计就不必担心啥了。
真要是讲效率,名堂很多的 我觉得楼主这样的线性存储也不行吧,一个大表塞那么多数据,随便做点儿操作不是要慢死。 输入进库,怎么入都行,关键是你之后用的时候有什么要求? 本帖最后由 xiabai84 于 2015-10-19 14:59 编辑
希望我理解你的问题了。。。 你的目的其实就是想把一个存结构化数据的大表 灌进一个第三范式的数据库里?
我对这种量比较大的数据都基本都是用ETL工具入库(特别你经常读一些什么EXCEL, CSV, XML, TEXT,或者非结构化类型的文件,然后写进数据库)。原因很简单,1 可以节省代码量, 2 保证数据质量(什么空行,主键多次插入,slowly changing dimension各种各样操作), 3 入库效率高。
有可能的话使用集群模式, 多线程读写, 能用bulk load 就优先用, ETL工具里包括各种操作行转列列转行应有尽有。 你的应用不就是应该负责单行数据的增删查改嘛,而不是靠你的应用去搞ETL。。。进表后想优化就是比较大的课题了,这个看你业务逻辑需要, 写高性能的查询语句, 尽量走索引是最基础的优化。。注意数据库的 Optimizer 和 excution plan
建议使用Pentaho 或者Talent, 感觉你的样子像是java 程序员, 这两个东西都是开源的,你上手应该能比较快。1500万行离大数据的等级还差很远。。用classic 的BI手段就能处理。
Java 程序设计不是我的强项,没法给意见。 偶尔自己家里做着玩的话我个人喜欢Netbeans, 懒人首选。。 你在数据库里建好模型,直接对应着生成代码, 随便改改就基本有想要的前端效果了。
楼上的回复老实说我没看懂。。。大概是我low 了。
SAP Hana是内存式的列存储, 是NoSQL的一个分支, 搂主其实就是一个很简单的关系型数据库,而且是CSV 输入。 他好像也没说有什么查询的瓶颈或者非结构化数据建模的困难。 能用开源技术不懂为何用SAP。。。1500万行的效果开元和收费应该没啥区别吧? 最多最多搞个小集群不涉及到大数据技术。
你的方法没问题,说你不对的人是想把功能模块化,设计模式嘛。如果源数据是xml的,你的importer没法用了,要从头写。还有就是时间问题,如果一次性的用,一点问题没有,其他类你反正要今后继续用的。
像楼上说的,用talent比较好,不用自己码。1500万行小意思啊! 你说的这东西是个factory,查设计模式的factory pattern。 excel数据进入factory, 校验并生成对象,对象再用hibernate之类导入数据库。
区别就是你不能自己写new 关键字来生成对象,因为写错了出来都是错的。工厂类(当然也是你开发的)会先检验再生成对象。同时工厂类里封装好的方法会更便于单元测试
一行一行循环excel当然是可以的,但是不够强壮易读,尤其数据例外或错误多的时候 补充一下,lz现在的实现方法最明显的问题是,
如果你运行程序运行了两遍,那么所有数据都会被插入两次,直到sql因为违反数据库constraints失败。插入前不仅要校验数据格式,还要检查是否已经存在。如果数据间有依存关系必须保证一次插入。不过这个应该好的数据接口库就有实现,应该。 本帖最后由 我想我会 于 2015-10-20 08:50 编辑
删
页:
[1]
2