大数据开发

liehu1 2013-01-28 01:51:30
我要设计一套在线测控软件,现场有台设备每测控一次就要产生5000多个数据,一天(8小时)要总共做1000次测试,这些数据要保存到数据库中,并要求能实时的显示数据,麻烦大家讨论下该如何设计,才能满足要求
...全文
1703 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
james_yb 2014-02-21
  • 打赏
  • 举报
回复
如果每次测试指标都是固定化的,这样就是每天产生5000项时序数据集,建议考虑使用工业实时数据库存储测试数据,配合以关系库或配置文件存储设备台账信息,前端展示看客户要求是cs还是bs设计是不一样的。需求决定设计。
xianwangkai 2013-03-01
  • 打赏
  • 举报
回复
1、数据插入操作: a、个人觉得不需要缓存,因为目前主流个数据库类型针对每次5000笔的数据,我觉得是很快的,大约用不到10秒中(批量处理事务),插入数据的实时性比较高。 b、如果想更保险那就需要缓存了,但是我觉得建议使用专业的缓存工具,而不是放到内存中缓存起来,例如:memcache、ttserver等,用完清除,但是这种方式存在延迟问题。 2、关于实时查询: a、可以采纳“zhang_7150”的建议,专门的查询库,降低插入数据库的压力。 b、如果不需要做个QueryDB,可以通过对一直增长的那张表进行分表或者分库,这样子查询的表和插入的表也可以分开。
a1mario 2013-02-28
  • 打赏
  • 举报
回复
引用 8 楼 hongyangwang 的回复:
引用 2 楼 zhang_7150 的回复:楼主的情况,一天当中数据的产生都集中8小时内,其他16个小时都处于空闲状态,可以将这些空闲时间充分利用起来。 下面是我的一点思路: 1、做好缓存,新产生的数据全部放入缓存中 2、由单独的程序每隔固定时间对这些数据进行处理,批量写入数据库,已写入的数据从缓存中可以清除掉 查询的话,可以做个QueryDB,跟主数据库做同……
主要是对数据库同步链如何处理。
a1mario 2013-02-28
  • 打赏
  • 举报
回复
引用 2 楼 zhang_7150 的回复:
楼主的情况,一天当中数据的产生都集中8小时内,其他16个小时都处于空闲状态,可以将这些空闲时间充分利用起来。 下面是我的一点思路: 1、做好缓存,新产生的数据全部放入缓存中 2、由单独的程序每隔固定时间对这些数据进行处理,批量写入数据库,已写入的数据从缓存中可以清除掉 查询的话,可以做个QueryDB,跟主数据库做同步链,实现读写分离。
请问如何用“做个QueryDB,跟主数据库做同步链,实现读写分离。” 什么是QueryDB,不懂求教。
rollandlee 2013-02-26
  • 打赏
  • 举报
回复
引用 3 楼 TheDolphin 的回复:
引用 2 楼 zhang_7150 的回复:楼主的情况,一天当中数据的产生都集中8小时内,其他16个小时都处于空闲状态,可以将这些空闲时间充分利用起来。 下面是我的一点思路: 1、做好缓存,新产生的数据全部放入缓存中 2、由单独的程序每隔固定时间对这些数据进行处理,批量写入数据库,已写入的数据从缓存中可以清除掉 查询的话,可以做个QueryDB,跟主数据库做同……
对此表示毫无压力
菜牛 2013-02-20
  • 打赏
  • 举报
回复
数据量不大呀,没啥好特殊处理的;尤其是显示这块,不会一下子显示几百个点的数据,那也看不清啦。一个点就算1000个时刻都显示也没多少数据量。普通工控比如DCS哪个没有几千上万个点,精度是毫秒级,那数据量大多了。一般用内存数据库,几个小时内直接从内存读,几个小时后数据写入硬盘,查询长时间的数据会有一定延迟,也是没办法的。不过时间长数据多考虑到显示分辨率,就没必要全部读取,而是间隔时间取数。
moveuirt 2013-02-18
  • 打赏
  • 举报
回复
当天数据可以直接放到内存当中,实时查询数据就从内存里取,一天中其它16小时用于写入数据库
carrera007 2013-01-31
  • 打赏
  • 举报
回复
1.如果读取次数不是很多的话没必要用缓存 2.存入时用批量的存储过程,加上索引。。
色拉油 2013-01-29
  • 打赏
  • 举报
回复
引用 2 楼 zhang_7150 的回复:
楼主的情况,一天当中数据的产生都集中8小时内,其他16个小时都处于空闲状态,可以将这些空闲时间充分利用起来。 下面是我的一点思路: 1、做好缓存,新产生的数据全部放入缓存中 2、由单独的程序每隔固定时间对这些数据进行处理,批量写入数据库,已写入的数据从缓存中可以清除掉 查询的话,可以做个QueryDB,跟主数据库做同步链,实现读写分离。
我看行
Kilin_Zhang 2013-01-29
  • 打赏
  • 举报
回复
楼主的情况,一天当中数据的产生都集中8小时内,其他16个小时都处于空闲状态,可以将这些空闲时间充分利用起来。 下面是我的一点思路: 1、做好缓存,新产生的数据全部放入缓存中 2、由单独的程序每隔固定时间对这些数据进行处理,批量写入数据库,已写入的数据从缓存中可以清除掉 查询的话,可以做个QueryDB,跟主数据库做同步链,实现读写分离。
zhanghua4109 2013-01-28
  • 打赏
  • 举报
回复
sql中有批处理的方法,一次可以执行1000条数据,不成功可以回滚。也可以用事务。

25,980

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧