数据源:我们系统监控的终端设备——————————————————每10秒产生一条记录每年:24*60*60*365/10 = 3153600 约315万—————————————————每个场站100台,每年100*315 = 3亿_______________
500个场站,那么就是3000亿记录,每1000条记录的大小约0.25353M,3000亿既:约36.25T—————————————————存储最近2年的数据2*36.25 = 72.5 T——————————————————服务器端:
数据库构架?
问:1、我们应该用什么数据库存储,用什么方案/框架?2、Hadoop说的大数据是指处理的数据量大还是存储的数据量大?适合这里吗

解决方案 »

  1.   

    如何存储,选择合适的数据库和物理模型,要先看你的应用如何访问数据,是OLTP类型还是OLAP类型?或者除了应用之外,是否还要考虑其他需求?比如历史数据如何存放?可能需要不止一种数据库产品来支撑你的需求。
    现在有一种流行的趋势,先有数据,再拼命想在这数据上做文章,不管是数据量大还是单次处理的数据量大,现在没人管那么多,有数据的地方都标榜自己是大数据平台 
      

  2.   

    监控系统,难免会有一些业务处理功能,至少会有些什么用户管理、设备管理、场站管理、权限管理、报表统计什么的
    所以,建议监控数据和这些业务数据分开存储,比如监控数据存储到 mongodb里,业务数据存储到 oracle 或者 mysql 里。否则一旦对监控数据进行一次复杂查询,会把你的其它业务功能拖死。对设备的监控数据,一般是如电压、电流、温度等量,对它的数据需求大多是画曲线图。如果用关系数据库存储这些监控数据,可以通过分区表提升数据访问效率,按设备信号的采集时间进行分区,再针对设备 Id 和时间创建索引。分区要有自动扩展功能,可以在应用程序里写一个定时器,每天统计一下分区表中的数据量,如果数据量接近11亿时,创建新分区。如果用 mysql ,可以把监控数据与业务数据分离后,用几台物理机搭个主从复制,把读数据压力分摊到几台物理机上(oracle 肯定也有类似的功能,只是我不太懂,就不扯了)监控系统有时需要对设备数据进行汇总统计,这时可以周期性地对监控数据进行归档,计算中间结果,放到一个中间结果(归档)表中,这个表数据量比监控数据表的数据量少得多。这样后期的汇总统计可以查询归档表,可增强系统性能。比如如果你有设备是实时累加商场收银台每天的收入,有需求是画一个月里每天收入流量的曲线图,在获取数据时是取个设备每天的最后一条数据,如果定期把每天最后一条记录存储到另外一个表中,在画图时直接读取这个归档表,业务功能会快得多。
      

  3.   

    是的,现在大数据都滥了。quote=引用 2 楼 minsic78 的回复:]
    如何存储,选择合适的数据库和物理模型,要先看你的应用如何访问数据,是OLTP类型还是OLAP类型?或者除了应用之外,是否还要考虑其他需求?比如历史数据如何存放?可能需要不止一种数据库产品来支撑你的需求。
    现在有一种流行的趋势,先有数据,再拼命想在这数据上做文章,不管是数据量大还是单次处理的数据量大,现在没人管那么多,有数据的地方都标榜自己是大数据平台 
      

  4.   


    Oracle 一个表存千亿数据肯定没问题
    但为了查询速度,要作很多其它优化处理
      

  5.   


    Oracle 一个表存千亿数据肯定没问题
    但为了查询速度,要作很多其它优化处理
    有没有开源的软件?暂时不考虑收费的
      

  6.   


    Oracle 一个表存千亿数据肯定没问题
    但为了查询速度,要作很多其它优化处理
    有没有开源的软件?暂时不考虑收费的开源的话,关系数据库就用MySQL咯!
    别看它开源、免费,但处理海量数据方面不比Oracle差太多。功能上当然没有Oracle那么强大,但基本上对一个监控系统来说是够用了。非关系数据库,可以用 MongoDB,查询性能本人以前专为监控系统做过测试,比 MySQL 快上好几倍。
    不过,你在 Oracle 论坛里引导别人推荐非 Oracle 产品,你是来踢馆、砸场子的吗?
      

  7.   

    单个 mysql 处理不了千亿级记录,特别上单表1亿的都极大影响性能。估计得集群,这就涉及到框架了,所以问的就是这个
      

  8.   

    对查询 实时 要求,很高的话 上hbase  不是特高 可以hive。 放Oracle 上,感觉没必要
      

  9.   

    1、计算你的数据量
    2、先要规划你的数据使用。
    3、指定数据存储、运算及备份情况。存储就分为线上或线下或使用nosql了。看你的需求基本上就是  要分析相关数据。
    你可以将数据入数据仓库(使用etl工具),然后指定计划任务,获取分析结果提供给web展示针对过期数据进行线下备份后删除。
      

  10.   

    hadoop吗?
      

  11.   


    看具体业务需求吧,如果数据的用处是实时查询,那么还是用传统的库吧,分库分表呗,保留一年数据,以前的备份到备份磁盘上,
    偏向于分析汇总的数据,就上hadoop吧,这个存储的数据量满足你的需求,计算能力也更适合你这个数据级别的计算,传统库千万级别的join就到瓶颈了。
      

  12.   

    Hadoop可不是存储结构。Hadoop主要是做计算的,存储是兼职。海量存储基本对象是专业存储中唯一适合的解决方案了。
      

  13.   


    看具体业务需求吧,如果数据的用处是实时查询,那么还是用传统的库吧,分库分表呗,保留一年数据,以前的备份到备份磁盘上,
    偏向于分析汇总的数据,就上hadoop吧,这个存储的数据量满足你的需求,计算能力也更适合你这个数据级别的计算,传统库千万级别的join就到瓶颈了。
    用Hadoop当存储用是极大的资源浪费
      

  14.   

    hadoop 应该还是可以用的,只不过不是直接用hadoop的 HDFS存储,用Hbase存储的吧
      

  15.   


    用肯定能用啊,但是hadoop应该关注在计算上,存储的事应该还是让存储来~~~
      

  16.   


    用肯定能用啊,但是hadoop应该关注在计算上,存储的事应该还是让存储来~~~嗯嗯
      

  17.   

    用mysql分库 分表应该可行
      

  18.   

    mysql的话,单表轻松过亿,这个不大好吧
      

  19.   

    mysql分布式咯