深入理解mongodb和hbase区别

       最近公司想要做数据分析,之前我们公司用的是免费的growing IO。他们分析仅限于界面跳转的转化率,不能详细地分析业务数据。我研究了一个需要埋点的产品,搞明白他们是在每个接口的调用埋点,将用户对接口的调用行为记录下来,进行分析。由于接口众多,每个接口的数据都不同。可以充分利用hbase宽表的特性,在一行中定义一个通用的字段来标示当前行的数据类型,操作人,然后定义不同的字段来记录每一种数据。在插入数据的时候,每一行只插入当前类型和当前数据。由于hbase的宽表特性,可以容纳上百万列。可以将一家公司所有的接口访问数据都记录到一张无限大的表中,再配合辅助的用户表,就可以在各种纬度上分析用户的行为了。


分析了他们的表结构,我想用mongodb也可以做同样的事情,并且mongo比hbase好的地方在于,他入门门槛相对较低,然后在索引方面,检索的速度远比hbase那种查询要快多了。hbase只能要么按照主键范围查询,要么全表检索。为什么大的互联网公司都在推行hbase呢,这个是困扰我的地方。问了一个前腾讯员工,搞明白了两者的区别。
        原因就在于写入的速度,hbase由于只维护一个主键,写入的速度要比mongodb这种要维护所有索引的数据库快多了。hbase占用两台机器能完成的事情,mongodb要占用更多的机器,每台机器按一年20000的费用,几百台下来就是一笔很大的费用。但是代价就是hbase记录下东西以后,只能事后通过全表检索或按照索引范围的方式进行整体分析,而不能对具体每个人的数据进行实时分析,更强调数据分析能力而不是实时数据查询能力,因此各有千秋吧。像用户行为分析的这种,一开始产品经理可能会具体看某一个人的数据,但是新鲜过后,只会看程序的分析结果了。因此从经济的角度出发,对于用户行为分析这种不需要实时数据的需求来说,hbase+mysql就可以用最经济的方式解决了。mongodb比较适合需要实时返回数据的大数据应用。

转载于:https://blog.csdn.net/qq_32532853/article/details/52539064 
 

猜你喜欢

转载自blog.csdn.net/yinni11/article/details/86606454