数据分析≠Hadoop+NoSQL,不妨先看完善现有技术的10条捷径

让业务搭乘大数据技术确实是件非常有吸引力的事情,而Apache Hadoop让这个诱惑来的更加的猛烈。Hadoop是个大规模可扩展数据存储平台,构成了大多数大数据项目基础。Hadoop是强大的,然而却需要公司投入大量的学习精力及其它的资源。

如果得到正确的应用,Hadoop确实能从根本上提升你公司的业务,然而这条Hadoop的应用之路却充满了荆棘。另一个方面,许多企业(当然不是Google、Facebook或者Twitter)也没有做大数据分析所需要的巨型集群,他们纯粹是被“大数据”这个热门的词语给吸引的。

就像Dabid Wheeler所说“计算机科学的所有问题都有另一个层次间接的解决方案”,而Hadoop正是类似间接解决方案;当你的上司被一些流行词汇所吸引时,做正确的软件架构决策将变的非常艰难。

下文将给出一些对Hadoop进行投资前需要尝试的替代方案:

了解你的数据

数据的总体积

Hadoop是为大型数据集所建立的有效解决方案。

  • GB级以上的文件系统HDFS。因此如果你的文件只是MB级的,你最好对数个文件进行整合(zip或者tar),让其达到数百兆或者是几GB。
  • HDFS会将文件分割,并以64MB、128M或者更大的块进行存储。

如果你的数据集非常的小,那么使用这个巨型生态系统将不会很适合。这需要对自己的数据有足够的了解,并且分析需要什么类型的查询以及你的数据是否真的够大。

另一方面,鉴于你的计算指令可能很大,只通过数据库去测量数据的体积可能会存在误差。有时候数学计算或者分析小型数据集的排列可能会让得出的结果远大于实际数据体积,所以关键在于你对数据有切实的了解。

数据增长的速度

你可能在数据仓库或者其它的数据源中存有数TB数据,然而在建立Hadoop集群前有一个必须考虑的因素就是数据的增长速度。

对你的分析师提出几个简单的问题,比如:

  • 数据增速究竟有多快?这些数据是否以非常快的速度增长?
  • 几月或者几年后数据的体积究竟会有多大?

许多公司的数据增长都是按年算的。这种情况下,你的数据增长速度其实并不快;所以这里建议考虑归档和清除选项,而不是直接的奔往Hadoop。

如何减少需处理的数据

如果你确实有非常大体积的数据,你可以考虑通过以下的途径将数据缩减到非常适合管理的体积,以下的几个选项已经过产业几十年考验。

考虑归档

数据存档是对过期的数据进行分开存储,当然存储的时间根据实际需求制定。这需要对数据以及应用程序对数据的使用情况,有非常充分的了解。比如电子商务公司的大数据处理只将3个月内的数据存入活跃数据库,而旧订单则被存入单独的存储。

这个途径同样可以运用于你的数据仓库。当然你可以存储更多的近期数据用于报告和查询,使用频度少的数据可以被存入单独的存储设备。

考虑清除数据

有时候我们一直忙于收集数据而不清楚究竟需要保存多少数据,如果你存储了非常多用不到的数据,那么这将毫无疑问的降低你有效数据的处理速度。弄清你的业务需求并且审查数据是否可以被删除,从中分析出你需要储存数据的类型,这不仅会节省你的存储空间,同样会提升有效数据的分析速度。

一个经常用到的最佳实践就是给数据仓库建立附加列,比如created_date、created_by、update_date及updated_by。通过这些附加列可以对数据进行阶段性的访问统计,这样就可以清楚数据的有效周期。这里需要着重对待的是数据清除的逻辑,切记先思考再实现。如果你使用了一个归档工具,那么数据的清除将会变得非常容易。

不是所有的数据都很重要

你可能受不了储存所有业务相关数据的诱惑,你可能有很多的数据来源,比如:日志文件、营销活动数据、ETL作业等。你需要明白不是所有数据都对业务起关键作用,而且在数据仓库中保存所有的数据并不是有益的。在数据源过滤掉不需要的数据,甚至是在储存到数据仓库之前。不要对所有的数据进行存储,只分析你所需的数据。

注意哪些数据是你想要收集的

拿在线视频编辑业务来说,你会需要保存你用户做出的所有操作吗?这样的话可能会产生非常大的数据体积,如果你发现你的数据仓库不足以应对这些数据,你可能会考虑只存储元数据。虽然视频编辑是个非常极端的例子,然而并不妨碍我们在其它用例中考虑这些信息。

总而言之,根据业务的需求只收集所需要的数据。

智能分析

聘请了解业务的分析师

到目前为止,你应该已经清楚理解数据的重要性;所以在你做了上面所有步骤后并决定使用Hadoop时,聘请1个了解业务的分析师将会对你业务产生巨大帮助。

如果数据分析师不懂如何从中获取价值,那么Hadoop将不会产生任何作用,不要吝啬对业务有深刻认识的雇员投资。鼓励他们多做实验,并且使用新的方式去分析同一个数据,找出使用现有基础设施获利的途径。

为决策制定使用统计抽样

统计抽样可以说是非常古老的技术,研究者及数学家运用它在大体积数据上推断合理的结论。通过这个步骤,我们可以大幅度的缩减数据体积。取代追踪数十亿或者数百万的数据点,只需要跟踪其中数千或者数百的数据点就可以了。这个手段虽然不会给我们提供精准的结果,但是却可以对大型的数据集有一个高等级的理解。

提升技术

你真的已经达到关系型数据库处理的极限了吗?

在探索其它领域之前,你更应该审视关系数据库是否可以继续处理问题。传统的关系型数据库已经被使用了很长一段时间,而很多机构已经可以使用它管理TB级的数据仓库。所以在迁往Hadoop之前,不妨考虑以下的方法。

分割数据

数据切分是从逻辑上或物理上将数据分割成数个更好维护或访问的部分,同时很多流行的开源关系型数据库都支持分片(比如MySQL Partitioning及PostgresPartitionging)。

在传统数据库上考虑数据库分片

数据库分片是提升传统关系型数据库性能极限的最后一招,适用于数据可以逻辑分片在不同节点上并且很少做跨节点join分享的情况。在网络应用程序中,基于用户分片,并将用户相关信息储存在同一个节点上是提升性能的常见途径。

分片有很多限制条件,所以并不是适合所有场景,同样在用例中存在太多的跨节点jion,分片将发挥不了任何作用。

总结

Hadoop的部署将耗费公司巨量的人力和物力,如果能通过提升现有基础设施来达到目标也不失为一良策。

原文发布时间为:2013-07-31


时间: 2024-10-23 08:04:43

数据分析≠Hadoop+NoSQL,不妨先看完善现有技术的10条捷径的相关文章

有关图形方面的一篇文章,不妨一看

图形 Working with Brushes in GDI+ Drawing GDI+ ObjectsThe following code draws a line, an ellipse, a curve, and a polygon object. As you can see from the code, I抳e used pen object to fill these objects. See more details. protected override void OnPaint

关于任正非和华为,这10条必看!

关于任正非和华为,你不得不看.不得不知的 10 条. 1.任正非拒绝了一个3万亿美元的团队后说:他又不是客户,我为什幺见他? 摩根士丹利首席经济学家斯蒂芬 罗奇曾率领机构投资团队访问华为总部,任正非并没有亲自出面,而是只派了负责研发的常务副总裁费敏接待. 罗奇没有见到任正非,非常失望地说:"他拒绝的可是一个3万亿美元的团队!" 对此,任正非回应称:"他罗奇又不是客户,我为什么要见他?如果是客户的话,最小的我都会见.他带投资团队来跟我有什么关系?我是卖设备的,就要找到买设备的人

数据分析还在婴儿期?看TalkingData谈大数据生效的关键因素

通过大数据技术实现企业运营效率的提升是我们当前的一个重要目标,但这项工作并不是每个企业都那么容易上手.在1月21日的"10亿说 TalkingData移动互联网产业指数数据报告发布会"上,多名业内专家及TalkingData高层为我们分享了释放大数据价值现存的一些坑,以及我们可以怎么解决. 所谓10亿说,是指TalkingData的平台现在已经覆盖了10.6亿的移动智能设备,包括iOS.Android的系统平台,包括智能手机.平板.智能电视等等不同的设备形态. 专家说:真正的分析还在婴

10大完善现有技术的捷径

大数据技术对于企业来说,在做业务时确实是件非常有吸引力的事情,Hadoop是个大规模可扩展数据存储平台,构成了大多数大数据项目基础.而Apache Hadoop的到来则让这个诱惑变得更加诱人.Hadoop是强大的,但不是一触即摸的,是需要公司投入大量的学习精力及其它的资源. 如果得到正确的应用,Hadoop确实能从根本上提升你公司的业务,然而这条Hadoop的应用之路却充满了荆棘.另一个方面,许多企业(当然不是Google.Facebook或者Twitter)也没有做大数据分析所需要的巨型集群.

董西成:Hadoop将在高速发展和完善中扩大优势!

目前Hadoop发展迅猛,尤其是Hadoop 2.0出现后,HDFS和YARN两个系统均有多个重大特性得到了实现,进而推动了上层计算系统的发展,包括Tez的出现使得Hive和Pig有了更大的性能提升,出现了各种基于YARN的新型框架等. 2014年05月20日,CSDN携手ChinaHadoop小象社区将打造一场涵盖分布式在线存储系统HBase.数据仓库Hive.Hadoop在电信运营商的应用实践等内容的"Hadoop在企业中的应用实战"高端技术培训. 在本次培训开始前,我和本次培训的

从Hadoop IOUtils closeStream方法看如何安全关闭流

使用方法 IOUtils.closeStream(writer); 进入代码 public static void closeStream(java.io.Closeable stream) { cleanup(null, stream); } public static void cleanup(Log log, java.io.Closeable... closeables) { for (java.io.Closeable c : closeables) { if (c != null)

win7全屏看视频边框出现黑条该怎么办

  紧张忙碌的工作,让我们能闲下来看看网络视频,已经是很多人的一种生活享受.如今,用电视机欣赏影视的越来越少,取而代之的是电脑.但是,在全屏状态下,如果上下边框出现黑条,是不是很扫兴呢?那么应该如何解决呢?按理说,电脑看电视有黑条不是什么新鲜的事情,但是如今显示器越来越大,再出现这种情况难免很不爽.Win7系统看电就利用注册表快速解决Win7全屏看电视有黑条这样的问题. 1.直接点击Win + R组合键 (也就是开始-运行) ,在输入框里面输进去regedit,这时候就可以打开注册表,接着逐一打

帮忙看一下js的进度条代码

问题描述 <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="Content-Type&qu

extjs-查看grid中的一条数据. 如何获取radiogroup的值

问题描述 查看grid中的一条数据. 如何获取radiogroup的值 请问,我现在有一个grid. 我添加了一个人双击查看这条数据的事件. 但是在显示的form中,别的字段都是可以获取到的,只有radiogroup是获取不到. 找了一上午不知道为什么,麻烦各位大神给解答一下,谢谢 麻烦看下我的页面和代码. 麻烦各位大神给解答一下.非常感谢. 解决方案 console.log(gridRecord)看看sourceDataType字段内容是什么,自己对比下record的键名称sourceData