有这样一个需求,请大家估计一下开发费用。1、最多50个纯文本文件,内部的数据格式固定也全部相同,每行固定长80个字节(每行全是由数字组成),50个文件的总行数最多有200亿行;2、根据前40位来进行判断,把前40位相同的按第40到60位、60到80位进行累加;3、累加结果生成一个纯文本文件。4、要求此程序能在微软操作系统下方便安装,单机版运行,此程序要发给外面一些非电脑技术人员操作,让这些人能方便安装并能正常运行对公司提供的数据进行累加运算。5、在最大行数200亿的情况下,从选定要累加的源文件后执行累加开始计算,到最后生成完运算结果的纯文本文件,要在4个小时内运算完毕。
开发这样的程序,开发费用要收多少?

解决方案 »

  1.   

    程序开8个线程每个线程处理25亿行数据,要求用户买双四核CPU电脑加上SAS硬盘的RAID0。唔不过你这么多数据相加不会溢出么。=。=
      

  2.   

    200亿行 * 80字節/行 = 20G * 80 = 1.6 T 字節 = 1 個 2TB 硬盤。
    硬盤平均讀取數據速度:正常80MB/秒(要較好的硬盤),接口最大速度 300M/S(一定是RAID0)1600G/80M = 20K秒 = 5.55小時。
    一定要是能夠實現 160MB/S 的平均讀取速度。還是數據文件不能有碎片的。
    光是讀一遍,都不止 4 小時了。硬盤速度是瓶頸。想辦法配置硬件在3.5小時內能讀一遍,0.5小時的處理時間該夠了。其實在讀取硬盤的空余時間去處理數據都是足夠的。實現: 用3個以上萬轉 1TB SAS硬盘 組 RIAD0 ,存放源文件,用於讀,另外一個硬盤用於寫結果。那麼這個就好辦了。
      

  3.   

    有预算配置大型服务器处理比较现实
    普通PC服务器或PC就省省了
    若有偿技术支持或开发,可联系ME
      

  4.   

    此程序是在99年开始做的,当时要求是2千万行,05年需求增加到2亿行,现在2010年提出了200亿行,而且还要单机实现。每次提升都是开发费1万多,但这次单机版200亿行确是有难度,而且开发费用也少,就不接了。我现在做的是如果在客户机安装sql数据库,双核2.8G,可以做到每秒处理65万行;单机不用sql数据库每秒10万行。感谢大家的讨论!
      

  5.   

    程序实现上可以用简单实现
    譬如,通过把TEXT文件作为数据库,以 text 引擎连接数据,每个 txt 文件作为一个表。开50个线程,每个线程连接一个表,执行 SELECT A,SUM(B) AS B,SUM(C) AS C INTO 表X FROM 表 GROUP BY A 动作然后把50个文件并在一起,执行同样的操作,估计还可能,但在4个小时内完成,在PC机上不太现实。
    平均一个TXT文件有80*4亿字节=30G,扫一个30G的TXT文件,那相当怀疑数据库引擎的效率。
    而且,30G*50=1500G,PC机,SATA硬盘能有这效率?