杂谈国内Hadoop的热潮:以辩证的眼光来看待

Hadoop本质来说仅仅是个存储模型,这个存储模型附带有一种计算模型(map reduce),国人一上来可能比较生疏,但是hadoop仅仅是个基础模型。

      数据库技术兴起的时候,那个时候连foxbase都很抢手,历史证明了真正带给人们价值的不是数据库,而是ERP。IBM整个软件体系不怎么搞应用,搞得 都是基础,db2,websphere,rational,tivoli,lotus,结果一败涂地,这可是很近的历史事实了。我做个比较:

► db2-mysql

► websphere-nginx

► rational-那个UML其实没什么大的作用,并且各种替代品

► tivoli-各种存储,廉价硬盘就能把tivoli替代了

► lotus-openoffice,并且支持智能手机

      当年IBM对这一套底气很足的,我记得一篇报道说,人家IBM承诺不做应用,意思是不和自己的合作伙伴竞争搞应用软件。

      接着说大数据,我曾经去过一家公司面试,我当时是搞数据库的,感觉那个职位自己应该是胜任的,结果面试官一上来就问,你知道哪些数据仓库的模型?我一听就傻了。搞得好像hadoop一出,数据库就被秒杀了一样。

      hadoop本质来说仅仅是个存储模型,这个存储模型附带有一种计算模型(map/reduce),国人一上来可能比较生疏,但是hadoop仅仅是个基础模型。

      hadoop的存储模型本质来说其难度没有超过数据库的难度,加上计算模型也一样。

      历史告诉我们的结论是,hadoop作为基础结构没有价值。

      那什么是有价值的?只有说当你的业务存在时间维度上的价值的时候,hadoop这个模型才有价值。有时间维度的业务不多,真的。对于一家互联网公司来说, 半衰期大约=5年,甚至更短。也就是说,5年后,市面上的新兴的这些互联网/移动互联网公司要去掉一半。这其实是个很保守的数字了。5年根本谈不上你的数 据还要有什么时间维度上的操作。再看看电子商务,网上是一些比较新潮的商品,5年之后早就更新换代好几批了,也就是说相对于公司的半衰期,商品的半衰期更 短。

      其实真正具有时间维度上的要求的数据是金融数据,然后就是搜索引擎,再次是电子商务,进入移动时代,数据是移动的,数据瞬间消失的就跟那个玻色子一样。数 据就是在K-V里面的,支付也是如此,数据过了有效期,那只能重新连接重来了,数据失效了,支付失败了,记录这个失败没有意义,及时处理支付失败才有意 义,数据在时间维上不是越来越大,而是越来越小。

      那大家为什么hadoop一哄而上?这个背后肯定是有推手的,目的就是让大家跟着倒霉,唯我独大。为什么这么说呢,因为这个hadoop技术是有陷阱的,这个陷阱就是java,历史告诉人们什么呢?

      我这一代人,整个70后80后,黄金一代,毁在java手里。原因是什么,我也不知道。事实是什么,这个我经历了,就知道了。

      现在说这个可不是什么经验之谈,这是常识之谈。打着数据挖掘/机器学习的招牌搞大数据,十有八九也会被大数据胡弄了。因为它的根底就比较浅。hadoop的根底浅,java技术毁人不倦,不满足业务上的半衰期。

      然后再来说机器学习,很奇怪,hadoop根底浅,机器学习也跟着上不了什么很高的档次。我也去过一家公司面试,还是个上市公司,一进去直觉告诉我,这家公司已经不怎么地了。但是整个数据挖掘机器学习的面试,感觉很不爽。我大体上说一下,模式差不多。

      统计基础+矩阵运算+SVM机器学习流派+信号识别(所谓深度学习)

      公司已经快不怎么样了,这些机器学习的大师们拿着这一套好像就跟阳春白雪一样,自我剪裁一番配上大数据hadoop就无敌了。

      就这些,核心还是贝叶斯模型,翻来覆去的贝叶斯模型。问题就是,贝叶斯模型真的比传统数据库的关系模型强吗?不是说一定是否定的,只要不是绝对肯定的,你的业务就跟着over了。问题是,人们需要哪家公司用自己的业务去检验贝叶斯模型?

      我只谈数据仓库,因为这是我觉得最容易入门、最有用、最难用好的技术之一。

      出现数据仓库这概念的时候,貌似还没有hadoop呢。

      数据仓库存储的是原始数据经过一定的业务、维度聚合获得的中间数据。模型价值很大,过去大数据处理都是先建立数据仓库模型。

      若是做数据库不知道数据仓库、ETL技术,无论你用什么数据库,大数据量时都是有局限性的。

      举个例子最简单的例子,你有用户的交易流水,每天24亿条新记录。你需要做个系统查询,统计一定天数的交易总金额。

      那么,一个简单的数据仓库就是,每天计算一次前一天交易总额值后存在一张以天为单位的表里,这样每天计算一次,表每天增加一条记录。查询天交易总额是我只需要查询这张以天为单位的表就行了。通过这张天为单位的表,很快的计算周,月,年的数据统计。

      这张表就是一个最简单的数据仓库,每天从原始数据计算这张表的过程就是ETL。

      使用数据库的人一定使用或接触过数据仓库,只不过自己没意识到而已。

      也许你会问如果我要查3天前~到现在9点20的总金额怎么办?这时我们只需要当天的原始数据(实时数据),在加上之前设计的中间表里3天的汇总数据即可。

      一个良好的,持久稳定的,针对大量数据产品,必须有良好的数据仓库支持。

      PS:现在大家都跟风追hadoop,领导觉得好非让你用,你也没办法。

      毕竟现很多时候谈客户,别人都吹hadoop技术,你说你不用hadoop,绝对是你悲剧。

Reference: http://www.thebigdata.cn/Hadoop/13338.html###

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值