大数据做了这许多年,有没有问过自己,大数据中,工作量最大和技术难度最高的,分别是什么呢?

前言

我每天都在思考,思考很重要,是一个消化和不断深入的过程。

正如下面的一句话:

我们从出生开始如果没思考过人生本身这件事情,一切按照社会的习惯前行,那人生是没有意义的。因为你连人生都没有想过。

那么延生出来,我们有没有想过大数据本身?
大数据到底是在做什么,为什么我做了这么多年的大数据,总是做不完呢?

大数据本质是:

随着科学技术发展,更多的数据能够被存储了,能被分析了。所以有了大数据的概念。

机器学习的本质是:

随着数据变多了,量变导致质变,数据足够大后其内部的隐含的规律会越来越精确和完整。机器学习则是将数据内存存在的这种隐含关联给挖掘出来的一项技术。

大数据最消耗工作量的地方是哪里呢?

目前百分之八十的工作量都在于数据收集 清理和校验。 这个工作本身并不难,但是真的很繁琐,很费力。

我们天天感叹:

  1. 数据在哪里?如何收集
  2. 数据要怎么进行清洗
  3. 无效数据太多,如何去除

而让我们心灰意冷的是

当一个新的需求来临时,现有的数据形态似乎不能满足需求,我们又要在现有的数据堆里,重新走数据收集,清理,校验的流程。

这似乎是一种诅咒,如同可怜的西西弗斯,被判要将大石推上陡峭的高山,每次用尽全力, 大石快要到顶时,石头就会从其手中滑脱,又得重新推回去,幹著无止境的劳动。

大数据目前遇到的最大技术难点是什么

是海量数据的ad-hoc查询

当Hadoop刚刚兴起,我们可以通过它来操控越来越廉价的PC服务器价格,于是一种暴力弥漫了整个生态:

我们因为突然有了强大的算力,这就好比一个穷人突然有了一笔很大的钱。我们开始让强大的算力驾着最低效的程序去跑数据,这是批处理时代的悲哀

但是随着查询效率要求越来越高,我们不得不被迫做出改变。还记得我们以前的日志都是简单的Raw文本吗? 现在各种存储的格式慢慢开花结果:

  1. Parquet, 数砖公司大力发展的一个存储技术
  2. ORC, Hive 常见的一种存储格式
  3. CarbonData, 华为推出的一套可支持PB级别的数据格式

总之,我们似乎没有找到一个奇妙的技术解决查询的问题,只能做某种折中:

为了加快查询速度,数据存储慢慢从早期的raw文本转为具备向量化,带索引,支持特定编码和压缩的列式存储结构,当然这种通过调整存储结构的方式必然以消耗数据进入时的时间和资源为代价。

也就是我们在存储和查询之间做了妥协。

如何让苦力干的更少

前面我们提及了,我们可能80%的工作都花在了数据的采集,清洗和校验上了。但是我们该如何压缩这部分的工作呢?

答案是:

  • 流式计算
  • 流式计算上层建筑

让所有的计算流动起来,就会让下面的事情变得简单:

我们可以在已经流动的数据中的任何一个环节引入一个新的支流。当我要获取数据时,我做的本质其实就是 连接两个或者多个节点,并且在其中对数据进行转换。就如同河水,我们可以很方便的开一个支流,将水引入灌溉新的额农田。

而且我们希望流式计算的实现是结合了流式和批量语义的。为什么呢?
看看华为在Storm上做的StreamCQL,就知道,很多情况实时流式是很有局限的,因为未来我们在流式上能做的事情会非常多:

  1. 数据处理
  2. Ad-Hoc查询
  3. 机器学习
  4. 报表
  5. 存储输出

这就需要一定的灵活性,因为只有在数据集上,才会有譬如Ad-Hoc查询,才能高效的进行存储,才能适应一些机器学习算法。单条数据很多情况下,是没有太大意义的。

这块我一直是Spark Streaming的支持者。数据天生就是流式的

那为啥我们需要一个流式计算上层建筑? 我们回顾下问题,数据的ETL过程是个苦力活,消耗掉大量程序员的工作时间,那么为了减少这种时间,我们有两个办法:

  1. 将做些任务分散出去,使得每个人都可做,那么在总量不变的情况下,单个人就会变少了
  2. 提高每个人的工作效率

流式计算构建了整个基础,而其上的框架则使得上面两点成为可能。这里我依然推荐我现在正在做的一个开源项目: StreamingPro 。未来我们还会有一个更通用的基于流式计算的采集程序,敬请期待。

天天在做大数据,你的时间都花在哪了相关推荐

  1. 当我说要做大数据工程师时他们都笑我,直到三个月后……转

    GitChat 作者:Fickr孫啟誠  原文: 三个月大数据研发学习计划实战解析  关注微信公众号:「GitChat 技术杂谈」 一本正经的讲技术 [不要错过文末彩蛋] 申明: 本文旨在为普通程序员 ...

  2. 当我说要做大数据工程师时他们都笑我,直到三个月后……

    本文来自作者 孫啟誠 在 GitChat 上分享「三个月大数据工程师学习计划」,「阅读原文」查看交流实录 「文末高能」 编辑 | 花轮同学 申明: 本文旨在为普通程序员(Java程序员最佳)提供一个入 ...

  3. 做大数据用java还是python_新手零基础学做大数据工程师,编程学Java还是Python比较好?...

    Python和Java,是大数据行业最常见的两种编程语言,对于想转行大数据的人人来说,学习哪个语言是比较好的选择呢? Python Python和大数据: Python本身的特点是高效率的开发和简单的 ...

  4. R并行做大数据时间序列分析与bootstrap

    转载自:www.loyhome.com/r并行做大数据时间序列分析与bootstrap/ 好久没写关于经济学的文章了...今天看到两个搞matching的人拿到诺奖,瞬间想起当年和一个学心理学出身的童 ...

  5. 女生做大数据有发展前景吗?能学会吗?

    女生做大数据有发展前景吗?当前大数据发展前景非常不错,且大数据领域对于人才类型的需求比较多元化,女生学习大数据也会有比较多的工作机会.大数据是一个交叉学科涉及到的知识量比较大学习有一定的难度,女生比较 ...

  6. 想做大数据的,可以看看这个学习路线,超全!

    薪资高.机会多.缺口大,让大数据在开发圈里成了香饽饽. 与此同时,在我做公众号的这两年,目睹了太多人「从入门到放弃」,甚至有些人连大数据的门都没进来.看看你是哪种? 在中小企业做了一段时间大数据,但是 ...

  7. 从腾讯入职到离职,我仅用了三周:做大数据的同事看不起做报表的

    这是很多年前的事情了,从腾讯入职到离职,我用了三周,理由很简单,做大数据的同事看不起做报表的,当然,我是做报表的那个. 做大数据的,就一定能做好报表吗? 报表是企业IT数据建设必不可少的一环,小到一张 ...

  8. 做大数据风控,需要做哪些准备?

    不定期更新信贷大数据风控的相关内容(命名为#大数据风控手册#),一是对工作的沉淀和总结,二是为对大数据风控感兴趣的大家提供参考.今天来看看做大数据风控,需要哪些基本条件. 欢迎加微"huai ...

  9. 30岁转行做大数据分析师可行性高吗?

    30岁转行做大数据分析师为时不晚,但是我不建议大家盲目转行.为什么这么说?30岁正值人生的关键时期,如果工作正出于上升期或者比较稳定的状态,一般不会轻易转行,因为转行的风险比较大.当然如果你已经下定决 ...

最新文章

  1. java object转int_Java字节码文件解析
  2. 干货丨 简述迁移学习在深度学习中的应用
  3. 三大框架开发时,spring配置文件出现异常
  4. webpack创建html项目,从零开始其于webpack搭建bootstrap 4项目
  5. linux下ssh登录PIX防火墙
  6. 基于ARM的GCC编译器,各版本arm-gcc区别与安装
  7. vuefullcalendar怎么判断切换上下月_六种区分对联上下联的方法
  8. Happens-Before的7个规则
  9. 阿里巴巴HRSSC:用宜搭实现业务管理模式创新
  10. Android电池管理系统系统分析
  11. C语言数据结构之图的邻接矩阵的应用实例
  12. 不要放弃!“软考论文”一点也不难
  13. robocode_Robocode大师的提示,技巧和建议的集合
  14. 基于安卓手机的WAPI证书安装使用详解
  15. 酒店客房管理系统(C语言)
  16. 嵌入式开发培训怎么样?嵌入式开发培训多少钱
  17. 实验: 写一个.msstyles皮肤测试程序
  18. DCOS之Mesos-DNS介绍
  19. DCS任务编辑器文件无法正常加载,一直停在‘正在读取。。’
  20. 用平面图片制作3D模型【3DsMax】

热门文章

  1. flac如何转换成wav?
  2. Python爬虫实战——下载小说
  3. Training Generative Adversarial Networks with Limited Data
  4. NSDate-日期类nbsp;OC——第七天(1)
  5. EBS开发_收款核销API
  6. 安装MongoDB出现 service MongoDB failed to start,verify that you have sufficient privileges to start
  7. opencv-contours轮廓提取
  8. 常数变易法_打印图形
  9. 修改html文件500错误信息,打开网页提示 HTTP500错误的终极解决方法
  10. 软件开发,重点在设计