最具影响力的数字化技术在线社区

168大数据

 找回密码
 立即注册

QQ登录

只需一步,快速开始

1 2 3 4 5
打印 上一主题 下一主题
开启左侧

SAP HANA 、HADOOP与大数据之道

[复制链接]
跳转到指定楼层
楼主
发表于 2014-12-12 13:25:33 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 乔帮主 于 2014-12-12 13:30 编辑

人们对大数据的定义各不相同,本文引用技术美国基金会下属联邦大数据委员会给出的定义:“大数据是指数量大、更新速度快、种类多且复杂的数据。人们需要借助高科技来捕获、存储、分配、管理和分析这些数据信息。”

大数据带来了诸多挑战,即速度、数量和种类(velocity、volume和variety)三方面的挑战,简称为“三个 V”。大数据不仅表现为数量庞大,而且更新速度也更快,比如,在工厂车间生成的“机器数据”和金融市场生成的交易数据等。此外,大数据还意味着数据种类繁多,从微博上的产品评论、企业网站中的客户行为日志,到描述世界快速发展或天气事件的数据,应有尽有。而且所有这些数据都能对企业产生重大影响。因此,通过尽快发掘数据的含义并把握其重要性,企业将赢得持续优势,并有机会从竞争中获得收益。

此外,企业还面临大数据的第四大挑战,即“真实性(veracity)”挑战。企业用于制定决策的数据缺乏可靠性,这已经是一个由来已久的问题。在基于数据制定决策时,至少企业应对数据的准确性和来源略知一二。但是,随着数据量和数据种类的显著增加,大数据使得上述问题更加突出,因此我们有必要对数据的真实性进行评估。

企业需要借助各种系统和解决方案来真正了解大数据的意义和重要性。更重要的是,这些系统和解决方案应该能帮助企业应对数据在速度、数量、种类和真实性方面的挑战,并且响应其他未知数据源的变化。此外,企业还需要将大数据与现有的分析数据和业务数据相互整合,以便全面了解企业现状。最后,通过使用卓越的商务智能工具(如 [color=rgb(68, 68, 68) !important]SAP BusinessObjects Business Intelligence (BI) 解决方案提供的工具),企业还应交付全面且易于理解的大数据。

基于磁盘的传统 RDBMS 无法解决所有问题

大数据在数量、种类和速度这三方面的发展也为基于磁盘的传统关系数据库带来了挑战。首先,传统数据库在执行数据插入和更新等操作的速率方面存在缺陷,无法满足大数据的更新速度或者用户分析大数据的速度。其次,传统关系数据库还要求预先创建数据库模式,来定义数据类型。面对种类繁多的数据信息,上述问题进一步加大了挑战的难度。随着技术的不断发展,包括 SAP IQ 在内的部分 RDBMS 已经能够应对上述挑战。SAP IQ 采用列存储技术,可有效压缩数据,同时还在多个服务器之间采用并行处理的方法,解决 TB 级数据存储问题。

为了克服上述问题,SAP [color=rgb(68, 68, 68) !important]HANA 数据库和 SAP HANA [color=rgb(68, 68, 68) !important]软件等数据库应用工具先后面世。此类应用工具具有超过 20x 的压缩率,可将 100 TB 的五年期销售与分销数据集压缩至 3.78 TB,并能在 4 秒内完成整个数据集的分析查询。另一种方法是使用非关系型数据存储,如 hadoop。通过利用商用服务器,Hadoop 能够在合理的时间内处理各种快速生成的 PB 级甚至 EB6 级数据。

什么是 HADOOP?

既然 Hadoop 是有望解决大数据问题的技术之一,那么 Hadoop 究竟是一项怎样的技术?其工作原理又是什么?

从较高层面来看,若要了解 Hadoop,需重点掌握其四大功能:
  • 商用服务器集群
  • Hadoop MapReduce 编程模型
  • Hadoop 软件架构
  • Hadoop 生态系统


商用服务器集群

Hadoop 可以在成百上千台商业(低成本)服务器上运行。套用 Hadoop 的术语来讲,大部分商用服务器都是一个“数据节点(DataNode)”。每个数据节点均只包含一部分数据。具体而言,Hadoop 能够将一个处理作业分解成成百上千个小作业,然后由每台服务器并行执行这些小作业,共同完成数据处理的流程。这样,只需添加更多数据节点服务器,Hadoop 即可处理 PB 级甚至更大规模的数据。此外,Hadoop 还能自动复制数据节点之间的数据,换言之,如果某个数据节点出现故障,同时执行的 Hadoop 作业以及丢失的数据都可以进行恢复。现有版本的 Hadoop 都具有一个“主节点(NameNode)”( Hadoop 2.0 将附带多个主节点,以强化主节点的故障恢复能力),用于管理存储在数据节点的数据以及数据复制(参见图 1)。主节点还能够启动和管理分析作业和处理作业,并在作业出现故障时重新启动,以确保完成整个 Hadoop 作业。

Hadoop MapReduce 编程模型
在并行执行分析作业和处理作业时,Hadoop 需采用 MapReduce 编程模型(参见图 2)。该模型将执行过程分为两部分:
  • 映射(Map)阶段:在该阶段,Hadoop 将待解决的问题拆分为多个小作业,每个小作业生成部分中间结果。
  • 化简(Reduce)阶段:Hadoop 将映射阶段生成的中间结果合并,生成最终结果。化简阶段也可并行处理多个作业。通过管理作业分配和作业重启等,Hadoop 大大降低了数据处理的复杂性。



Hadoop 软件架构
Hadoop 软件架构的一个主要特点是数据存储与数据处理分开进行。Hadoop 具有一个单一的数据存储层,称为 Hadoop 分布式文件系统(HDFS)。该系统利用本地操作系统(如 Linux)文件来存储数据。这就意味着,Hadoop 能够支持各种类型的数据,同时还能将数据转储在 HDFS 中,而无需直接使用 Hadoop 软件。凭借这种架构,我们能够在 Hadoop上运行多个计算引擎,并充分利用 HDFS 和 MapReduce 编程模型(参见图 3)。


Hadoop 生态系统

“Hadoop Common”是 Hadoop 软件架构的核心部件之一,即一系列服务于计算引擎的核心组件。这些核心组件是整个 Hadoop 生态系统的基础,并通过各种协议,在 Hadoop 的基础上提供其他功能(参见图 4),其中包括:
  • HBase,用于提供 API,以便 Hadoop 通过单一键值快速存储和检索 MB 级文件,继而实现实时“键值”存储。
  • Hive,用于确保在不完全符合结构化查询语言(SQL)的情况下,将 Hadoop 作为只读关系数据库使用。
  • Mahout,能够提供一个统计和分析软件库,这些软件在 Hadoop 上运行,可用于数据挖掘和数据分析。
  • Pig,可生成采用Pig Latin 编写的 MapReduce 程序,Pig Latin 是一种能够用于数据分析的程序语言。
  • Sqoop,用于在 Hadoop 和结构化数据存储器(如关系数据库)之间传输批量数据。


Hive 和 HBase 是 NoSQL 数据技术的范例。过去,NoSQL 数据技术是指不使用 SQL 作为查询语言的数据技术,但现在,该术语被视为指代使用 SQL 以及其他查询语言的数据技术。这种演变旨在强调,除传统的 RDBMS 以外,还存在其他的数据存储、处理和检索方法。并且在这个领域,大量新解决方案正在开发当中,其中很多都是基于 Hadoop。


Hadoop 如何应对大数据的三个 V 挑战
在“基于磁盘的传统 RDBMS 无法解决所有问题”一节中,我们概述了基于磁盘的关系数据库面临的三个 V 挑战(速度、数量和种类)。本节,我们将详细介绍上述挑战,以及 Hadoop 将如何应对这些挑战。
面对数据生成速度方面的挑战,Hadoop 的应对措施是避免或至少延迟将数据插入传统 RDBMS 时,所产生的相关费用。此类费用产生的原因可能包括:
  • 验证数据:在将数据插入 RDBMS 之前,您必须对数据进行验证,以确保其符合数据库模式。对此,您还须查阅其他表格,以保证参考完整性。
  • 创建索引:一般情况下,为保证数据库的连接和提高搜索速度,我们会在插入记录时创建数据库索引。在这个过程中,我们可能需要执行多次磁盘操作才能完成
  • 确保一致性:采用 RDBMS 的一个主要原因在于它能够有效地保持数据一致性,其中一个典型的例子就是:RDBMS 如何确保将命令完整地插入数据库,或者根本不插入数据库。具体来说,RDBMS 能够防止系统同时更新同一记录,并保存数据库变更日志,以便在更新中途失败时回滚更新数据,或者在更新丢失或损坏时恢复数据。此方法可确保数据的原子性、一致性、分离性及持久性(ACID),通常被称为 ACID 合规性。

若要完成上述流程和检查,您需要耗费大量的时间和资源,而这可能会限制数据的插入速度,除非 RDBMS(包括其插入记录的方式)的设计能够避免此类延迟情况。有别于 RDBMS,Hadoop 以原始数据形式储存数据,并在多个数据节点上复制数据,防止数据丢失。此外,诸如数据验证、索引创建和一致性检查等可能需要执行的流程将会留到不影响数据插入速率时再执行。面对庞大的数据量,Hadoop 的解决方法是对多个数据节点之间的数据和数据处理作业进行拆分。随着各个数据节点上数据量或数据处理工作量的不断上升,您可将节点内的数据分离,并添加更多节点。

就数据种类繁多的问题来看,Hadoop 采用的方法是将数据存储为 Linux 操作系统文件,而不是首先检查或处理数据。这意味着,您可以借助 Hadoop 存储所有类型的数据,且无需事先了解和定义数据结构。

Hadoop 与数据真实性
当前版本的 Hadoop 无法帮助我们攻克数据真实性方面的挑战。因此,如需使用 Hadoop 中存储的数据作为可靠的决策依据,您必须首先评估、了解和改进数据的质量,这包括:
  • 验证数据:查找数据中的不一致之处并予以纠正。该步骤与纠正数据中的拼写错误以及其他错误一样简单。
  • 丰富数据:可添加其他元数据,例如,将文本形式的产品名称映射至对应的产品标识符。
  • 评估数据质量:可在 Hadoop 中分析数据,了解其中包含的错误数量及类型。


RDBMS、内存数据库(SAP HANA)与 HADOOP 的区别
挑选在 OLTP 或分析型解决方案环境中使用的数据技术时,我们需要了解各项备选技术之间的差异。下表列出了传统 RDBMS、内存数据库(特别是 SAP HANA)以及 Hadoop 之间的主要区别。该表格并非针对特定产品制作,因而具有一定程度的普遍性。技术发展日新月异,表中列出的详细信息也必然会随之改变。然而,值得注意的是,不同数据库类型所表现出的以下关键差异性,在未来极有可能保持不变:
  • RDBMS 仍将是解决众多问题的可行解决方案,特别是对于时效性要求不高的简单的 OLTP 而言。
  • SAP HANA 等采用内存计算技术的产品,最适用于注重速度(例如,实时数据更新和分析),但数据量不至于过大,并且对于企业而言,成本较为合理的业务场景。
  • Hadoop 则更适用于具备以下特征的场景,即数据数量非常大,数据类型(如非结构化文本)难以采用其他数据库技术进行存储,且对数据分析及其处理速度要求不高,或者必须尽量削减成本。



选择最佳数据技术

为了应对业务挑战,在众多技术中寻找最佳平衡,您有时将不得不采用一些折衷方法。例如,基础型 Hadoop 软件是一款开源软件,无需许可费,且可在低成本的商用服务器上运行。但如果需要管理的服务器达到成百甚至是上千台,那么运行 Hadoop 集群所需的总成本可能相当高昂。在寻找最佳平衡的过程中,您必须考虑到各组件的相关性能及成本也在不断变化。例如,存储器的成本正逐步减少,其速度却在不断加快。那么最终,在存储器中存储 1 TB 数据所需的硬件成本也可能随之下降。这样,在某些特定情况下,与其他数据技术相比,SAP HANA 可能更实用。此外,如果您的应用需具备实时分析功能,则内存计算技术(尤其是 SAP HANA)很可能是您的唯一选择。尽管本文讨论的焦点是 Hadoop,但 Hadoop 是最佳解决方案的观点并不能一概而论。您还应该考虑其他技术,如 SAP 实时数据平台,该平台可将 SAP HANA、SAP IQ 等其他 SAP 技术以及 Hadoop 相整合。


来自群组: SAP HANA精英汇
楼主热帖
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 赞1 踩

168大数据 - 论坛版权1.本主题所有言论和图片纯属网友个人见解,与本站立场无关
2.本站所有主题由网友自行投稿发布。若为首发或独家,该帖子作者与168大数据享有帖子相关版权。
3.其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和168大数据的同意,并添加本文出处。
4.本站所收集的部分公开资料来源于网络,转载目的在于传递价值及用于交流学习,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
5.任何通过此网页连接而得到的资讯、产品及服务,本站概不负责,亦不负任何法律责任。
6.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源,若标注有误或遗漏而侵犯到任何版权问题,请尽快告知,本站将及时删除。
7.168大数据管理员和版主有权不事先通知发贴者而删除本文。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

关于我们|小黑屋|Archiver|168大数据 ( 京ICP备14035423号|申请友情链接

GMT+8, 2024-5-2 19:33

Powered by BI168大数据社区

© 2012-2014 168大数据

快速回复 返回顶部 返回列表