你好,游客 登录 注册 搜索
背景:
阅读新闻

大数据从百万级别数据的分析角度,数据库如何选择?

[日期:2014-11-12] 来源:百度知道  作者:gs2013 [字体: ]
\
 
问题描述:

      现在需要做一个数据存储,500w左右的数据,日后每天大约产生5w条左右的数据。想把这些数据存储起来,供日后的数据分析用?使用那种数据库比较好?是否有必要建立集群?

      个人看法是:从长远角度看,由于单台机器的性能瓶颈,后期肯定要做集群,单纯的做复制最终也无法缓解单台master上读的负担。因此,使用 mysql的话会使用cluser。但是了解到mysql的cluser要用好的化还要做负载均衡,而mysql的均衡器是第三方的,无法很好的与 mysql整合。使用mongodb的自动分片集群能很好的解决这个问题,而且它的读写性能也快。Hbase提供了大数据存储的解决方案。

      回到我问题,最终是要在大数据的基础上做数据分析,虽然mongodb也能与Mapreduce整合,但想必Hbase做这一块会更有优势。
 



答案:

      百万级的数据,无论侧重OLTP还是OLAP,当然就是MySql了。

      过亿级的数据,侧重OLTP可以继续Mysql,侧重OLAP,就要分场景考虑了。

      实时计算场景:强调实时性,常用于实时性要求较高的地方,可以选择Storm;

      批处理计算场景:强调批处理,常用于数据挖掘、分析,可以选择Hadoop;

      实时查询场景:强调查询实时响应,常用于把DB里的数据转化索引文件,通过搜索引擎来查询,可以选择solr/elasticsearch;

      企业级ODS/EDW/数据集市场景:强调基于关系性数据库的大数据实时分析,常用于业务数据集成,可以选择Greenplum;

      数据库系统一般分为两种类型:

      一种是面向前台应用的,应用比较简单,但是重吞吐和高并发的OLTP类型;
      一种是重计算的,对大数据集进行统计分析的OLAP类型。
      传统数据库侧重交易处理,即OLTP,关注的是多用户的同时的双向操作,在保障即时性的要      求下,系统通过内存来处理数据的分配、读写等操作,存在IO瓶颈。

      OLTP(On-Line Transaction Processing,联机事务处理)系统也称为生产系统,它是事件驱动的、面向应用的,比如电子商务网站的交易系统就是一个典型的OLTP系统。

OLTP的基本特点是:

      数据在系统中产生;
      基于交易的处理系统(Transaction-Based);
      每次交易牵涉的数据量很小;
      对响应时间要求非常高;
      用户数量非常庞大,主要是操作人员;
      数据库的各种操作主要基于索引进行。

      分析型数据库是以实时多维分析技术作为基础,即侧重OLAP,对数据进行多角度的模拟和归纳,从而得出数据中所包含的信息和知识。

      OLAP(On-Line Analytical Processing,联机分析处理)是基于数据仓库的信息分析处理过程,是数据仓库的用户接口部分。OLAP系统是跨部门的、面向主题的,其基本特点是:

      本身不产生数据,其基础数据来源于生产系统中的操作数据(OperationalData);
基于查询的分析系统;
      复杂查询经常使用多表联结、全表扫描等,牵涉的数据量往往十分庞大;
      响应时间与具体查询有很大关系;
      用户数量相对较小,其用户主要是业务人员与管理人员;





收藏 推荐 打印 | 录入:Cstor | 阅读:
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款