高速采集与存储问题! 点击:1526 | 回复:16



cocolux

    
  • 精华:1帖
  • 求助:0帖
  • 帖子:4帖 | 7回
  • 年度积分:0
  • 历史总积分:24
  • 注册:2002年7月16日
发表于:2002-09-30 07:41:00
楼主
你好· 班竹! 现在我遇到一个数据库的问题@我想请教你一下: 在我高速数据采集的情况下(32M/s).硬件是没问题的. 我想知道是用sql server还是用oracle数据库好? 或你们在高速采集存数一般用的那种数据库? 请赐教?



Neo

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 9回
  • 年度积分:0
  • 历史总积分:80
  • 注册:2002年7月20日
发表于:2002-08-11 20:12:00
1楼
不可能用数据库实现这么高的速率吧!如果可以。我也想知道

qsoft

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 17回
  • 年度积分:0
  • 历史总积分:23
  • 注册:2003年9月02日
发表于:2002-08-12 11:14:00
2楼
我不知道你作的是什么项目,要如此数据量。我不知道32M/s是如何算出来的,如果真是一秒钟向数据写入这么大的数据量就有点问题了。用什么存储都是问题,一天近3T的数据量,不是说着玩的,SQL Server实在不是个好东西,我想铁定不行,SQL Server在数据量很大以后会出现一些问题,我想你很快就会发现你的数据只能往数据库里写,而删不掉的。 要提高数据库的存储速度,我有点经验: 1)适当的数据压缩,高压缩率可能会加大系统负荷,也会使数据解压速度变慢,而且这种压缩并不一定要使用我们常见的那些压缩算法,你也许知道PCX图形格式,使用的是行程编码,这是最快的压缩算法,对有些数据你会有很高的压缩率。可以在些基础上开发出一种适用于你的数据类型的压缩算法。 2)最大限度减少你的数据库的IO操作量,其实一个数据库引擎可能影响其速度的地方不一定的数据量太大,而是IO量太,对32M/s的数据是,如果是一条记录的话,我想大部分的数据库在速度上都是可行的。但如果是1000条或上万条的话,那你就死定了,所以减少数据库的IO操作量可以大幅度的提高数据的存储速度。这方面的处理方法有两种,一种是将每秒钟所采集的数据压缩成一条或几条,这种方法节省内存,但如果在数据库检索时要按条检索高有可能会由于得到太多的多余数据而降低检索性能;另一种方法是将一段时间的数据当作一条记录来存储,例如对1000个点的数据,以1s为采样时间,那么你每秒要1000个IO操作,每分钟60000个IO操作,这会很慢,如果你设采样时间同样为1s,但采集的数据并不写入数据库中,而是缓冲在内存里,这些采样点的数据我们以一个点为一条记录,比如对各个数据以","符号来分割开来,在缓冲一分钟写一次,你让为会如果,原来每分钟60000个IO操作现在变成为每分钟1000个IO操作,性能上会大大提高的。 3)如果项目有足够的冗余资金的话,可以考虑买一个专业的工厂实时数据库,听说不错,像InSQL,不过不知道如何,我没用过,对些不作评论。

李侃

  • 精华:22帖
  • 求助:0帖
  • 帖子:30帖 | 813回
  • 年度积分:0
  • 历史总积分:1015
  • 注册:2002年2月27日
发表于:2002-08-12 17:24:00
3楼
对于这么大量的数据,建议还是直接存成文件就好了.我们以前的客户在用高速数据采集的时候,都没有用数据库.你也可以试试数据库的性能如何.

cocolux

  • 精华:1帖
  • 求助:0帖
  • 帖子:4帖 | 7回
  • 年度积分:0
  • 历史总积分:24
  • 注册:2002年7月16日
发表于:2002-08-13 09:20:00
4楼
当然!我不是每个点都产生一条数据,那样的话我的系统是死定了的. 就象何清所说的第2条我是一个buf产生一条数据.在sql server下buf是 用的image的数据类型.我测试了一下.还行.而且在采集数据的同时我还显示了基本的图形. 1.现在我想了解一下设置double buf的大小1024,是k还是字节呀? 2.大概设置多大能满足不丢数据?

qsoft

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 17回
  • 年度积分:0
  • 历史总积分:23
  • 注册:2003年9月02日
发表于:2002-08-13 10:31:00
5楼
我认为李侃兄关于存储成文件夹的作法不以为然,一个系统对数据的存储并不只能考虑如何存储可高效,最重要的是如何使用高效,直接在存成文件可能速度上要快上,但如果你想对数据进行分析时可能高有问题了,如果只是显示显示才可以,要是想对它进行复杂分析就很困难了,如此大的数据,没有索引,也没有SQL语法支持,很难的。如果cocolux兄也只是对数据作简单的显示的话,可以考虑使用这种方法。 关于double buf问题我认为应该根据数采的需要来分配缓冲区,比如从每一项数据的大小和采样频率来在系统初始化时算法出数据的最大缓冲需求;或仅初始化一个基本的缓冲区,而在数据采集时让该缓冲区的大小只增不减,这样它就会在一个点上到达最大值。对于如此重要和大型的系统是不可以突视对内存的管理的,我对于制作7*24小时连续运行的系统的内存分配上的观点是可以适当的浪费内存,但不能为了节省内存而过多的使用动态内存,这样会使系统的内存碎片太多而使得系统运行性能越来越差,最后可能死掉。

cocolux

  • 精华:1帖
  • 求助:0帖
  • 帖子:4帖 | 7回
  • 年度积分:0
  • 历史总积分:24
  • 注册:2002年7月16日
发表于:2002-08-21 09:36:00
6楼
我的工程已完成了2/3,大部分是图形数据分析,在采集这块上遇到了数据存贮的问题看样子只有用AI_ContScanChannelsToFile这个函数写到文件!然后再用后台工作线程进行数据库的导入!不然直接写数据库不管是sqlserver 还是oracle都要丢数据,时间长了还要杀死我的工作线程. 现在我想问李侃和何清你们PCIS-DASK DATA FILE CONVERTER程序的源代码吗?因为时间上的原因我想直接用它的数据转化程序. 我的email:eedlo@sceed.com先谢了!

Neo

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 9回
  • 年度积分:0
  • 历史总积分:80
  • 注册:2002年7月20日
发表于:2002-08-21 11:39:00
7楼
我也想看看数据转换程序的源代码,不知是否可以?先谢了 我的Email:hans_h@163.net

cocolux

  • 精华:1帖
  • 求助:0帖
  • 帖子:4帖 | 7回
  • 年度积分:0
  • 历史总积分:24
  • 注册:2002年7月16日
发表于:2002-08-26 12:57:00
8楼
李侃!!!!!!!!!!!!!! 怎么没你的音信?!!!!!!!!!!!!!!

李侃

  • 精华:22帖
  • 求助:0帖
  • 帖子:30帖 | 813回
  • 年度积分:0
  • 历史总积分:1015
  • 注册:2002年2月27日
发表于:2002-08-26 14:35:00
9楼
数据转换的原代码我也没有。但是PCIS-DASK的函数说明里有*.dat文件格式的说明,自己编一个文件转化的函数应该不是太麻烦。

国安

  • 精华:1帖
  • 求助:0帖
  • 帖子:3帖 | 242回
  • 年度积分:0
  • 历史总积分:256
  • 注册:2002年4月15日
发表于:2002-08-29 12:35:00
10楼
我做过这个程序,不过是VB的。有兴趣的人请留mail.

Neo

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 9回
  • 年度积分:0
  • 历史总积分:80
  • 注册:2002年7月20日
发表于:2002-09-03 21:24:00
11楼
那,谢谢了,我对此感兴趣。

陈玮

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 6回
  • 年度积分:0
  • 历史总积分:12
  • 注册:2002年9月03日
发表于:2002-09-03 22:26:00
12楼
请教: 现在我遇到一个高速数据采集的问题(30MB/s连续存储).我想知道硬件是用哪种方式来实现?请各位指教。

国安

  • 精华:1帖
  • 求助:0帖
  • 帖子:3帖 | 242回
  • 年度积分:0
  • 历史总积分:256
  • 注册:2002年4月15日
发表于:2002-09-04 15:52:00
13楼
7300A + Adaptec Ultra 160 SCSI card + 10000转以上HD 用ASPI直接控制HD,跳过File System直接写盘。

王立

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:51
  • 注册:2002年9月03日
发表于:2002-09-04 22:56:00
14楼
多谢!

小毛子

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 7回
  • 年度积分:0
  • 历史总积分:16
  • 注册:2002年8月19日
发表于:2002-09-27 21:29:00
15楼
请教: 哪里可以下载到SCSI接口标准的完整说明?请各位帮帮忙!多谢了!

chameleon

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 7回
  • 年度积分:0
  • 历史总积分:13
  • 注册:2002年9月26日
发表于:2002-09-30 07:41:00
16楼
我也想看看数据转换程序的源代码,不知是否可以?先谢了      我的Email:lvyong2000@163.net

热门招聘
相关主题

官方公众号

智造工程师