① 五种大数据处理架构
五种大数据处理架构
大数据是收集、整理、处理大容量数据集,并从中获得见解所需的非传统战略和技术的总称。虽然处理数据所需的计算能力或存储容量早已超过一台计算机的上限,但这种计算类型的普遍性、规模,以及价值在最近几年才经历了大规模扩展。
本文将介绍大数据系统一个最基本的组件:处理框架。处理框架负责对系统中的数据进行计算,例如处理从非易失存储中读取的数据,或处理刚刚摄入到系统中的数据。数据的计算则是指从大量单一数据点中提取信息和见解的过程。
下文将介绍这些框架:
· 仅批处理框架:
Apache Hadoop
· 仅流处理框架:
Apache Storm
Apache Samza
· 混合框架:
Apache Spark
Apache Flink
大数据处理框架是什么?
处理框架和处理引擎负责对数据系统中的数据进行计算。虽然“引擎”和“框架”之间的区别没有什么权威的定义,但大部分时候可以将前者定义为实际负责处理数据操作的组件,后者则可定义为承担类似作用的一系列组件。
例如Apache Hadoop可以看作一种以MapRece作为默认处理引擎的处理框架。引擎和框架通常可以相互替换或同时使用。例如另一个框架Apache Spark可以纳入Hadoop并取代MapRece。组件之间的这种互操作性是大数据系统灵活性如此之高的原因之一。
虽然负责处理生命周期内这一阶段数据的系统通常都很复杂,但从广义层面来看它们的目标是非常一致的:通过对数据执行操作提高理解能力,揭示出数据蕴含的模式,并针对复杂互动获得见解。
为了简化这些组件的讨论,我们会通过不同处理框架的设计意图,按照所处理的数据状态对其进行分类。一些系统可以用批处理方式处理数据,一些系统可以用流方式处理连续不断流入系统的数据。此外还有一些系统可以同时处理这两类数据。
在深入介绍不同实现的指标和结论之前,首先需要对不同处理类型的概念进行一个简单的介绍。
批处理系统
批处理在大数据世界有着悠久的历史。批处理主要操作大容量静态数据集,并在计算过程完成后返回结果。
批处理模式中使用的数据集通常符合下列特征…
· 有界:批处理数据集代表数据的有限集合
· 持久:数据通常始终存储在某种类型的持久存储位置中
· 大量:批处理操作通常是处理极为海量数据集的唯一方法
批处理非常适合需要访问全套记录才能完成的计算工作。例如在计算总数和平均数时,必须将数据集作为一个整体加以处理,而不能将其视作多条记录的集合。这些操作要求在计算进行过程中数据维持自己的状态。
需要处理大量数据的任务通常最适合用批处理操作进行处理。无论直接从持久存储设备处理数据集,或首先将数据集载入内存,批处理系统在设计过程中就充分考虑了数据的量,可提供充足的处理资源。由于批处理在应对大量持久数据方面的表现极为出色,因此经常被用于对历史数据进行分析。
大量数据的处理需要付出大量时间,因此批处理不适合对处理时间要求较高的场合。
Apache Hadoop
Apache Hadoop是一种专用于批处理的处理框架。Hadoop是首个在开源社区获得极大关注的大数据框架。基于谷歌有关海量数据处理所发表的多篇论文与经验的Hadoop重新实现了相关算法和组件堆栈,让大规模批处理技术变得更易用。
新版Hadoop包含多个组件,即多个层,通过配合使用可处理批数据:
· HDFS:HDFS是一种分布式文件系统层,可对集群节点间的存储和复制进行协调。HDFS确保了无法避免的节点故障发生后数据依然可用,可将其用作数据来源,可用于存储中间态的处理结果,并可存储计算的最终结果。
· YARN:YARN是Yet Another Resource Negotiator(另一个资源管理器)的缩写,可充当Hadoop堆栈的集群协调组件。该组件负责协调并管理底层资源和调度作业的运行。通过充当集群资源的接口,YARN使得用户能在Hadoop集群中使用比以往的迭代方式运行更多类型的工作负载。
· MapRece:MapRece是Hadoop的原生批处理引擎。
批处理模式
Hadoop的处理功能来自MapRece引擎。MapRece的处理技术符合使用键值对的map、shuffle、rece算法要求。基本处理过程包括:
· 从HDFS文件系统读取数据集
· 将数据集拆分成小块并分配给所有可用节点
· 针对每个节点上的数据子集进行计算(计算的中间态结果会重新写入HDFS)
· 重新分配中间态结果并按照键进行分组
· 通过对每个节点计算的结果进行汇总和组合对每个键的值进行“Recing”
· 将计算而来的最终结果重新写入 HDFS
优势和局限
由于这种方法严重依赖持久存储,每个任务需要多次执行读取和写入操作,因此速度相对较慢。但另一方面由于磁盘空间通常是服务器上最丰富的资源,这意味着MapRece可以处理非常海量的数据集。同时也意味着相比其他类似技术,Hadoop的MapRece通常可以在廉价硬件上运行,因为该技术并不需要将一切都存储在内存中。MapRece具备极高的缩放潜力,生产环境中曾经出现过包含数万个节点的应用。
MapRece的学习曲线较为陡峭,虽然Hadoop生态系统的其他周边技术可以大幅降低这一问题的影响,但通过Hadoop集群快速实现某些应用时依然需要注意这个问题。
围绕Hadoop已经形成了辽阔的生态系统,Hadoop集群本身也经常被用作其他软件的组成部件。很多其他处理框架和引擎通过与Hadoop集成也可以使用HDFS和YARN资源管理器。
总结
Apache Hadoop及其MapRece处理引擎提供了一套久经考验的批处理模型,最适合处理对时间要求不高的非常大规模数据集。通过非常低成本的组件即可搭建完整功能的Hadoop集群,使得这一廉价且高效的处理技术可以灵活应用在很多案例中。与其他框架和引擎的兼容与集成能力使得Hadoop可以成为使用不同技术的多种工作负载处理平台的底层基础。
流处理系统
流处理系统会对随时进入系统的数据进行计算。相比批处理模式,这是一种截然不同的处理方式。流处理方式无需针对整个数据集执行操作,而是对通过系统传输的每个数据项执行操作。
· 流处理中的数据集是“无边界”的,这就产生了几个重要的影响:
· 完整数据集只能代表截至目前已经进入到系统中的数据总量。
· 工作数据集也许更相关,在特定时间只能代表某个单一数据项。
处理工作是基于事件的,除非明确停止否则没有“尽头”。处理结果立刻可用,并会随着新数据的抵达继续更新。
流处理系统可以处理几乎无限量的数据,但同一时间只能处理一条(真正的流处理)或很少量(微批处理,Micro-batch Processing)数据,不同记录间只维持最少量的状态。虽然大部分系统提供了用于维持某些状态的方法,但流处理主要针对副作用更少,更加功能性的处理(Functional processing)进行优化。
功能性操作主要侧重于状态或副作用有限的离散步骤。针对同一个数据执行同一个操作会或略其他因素产生相同的结果,此类处理非常适合流处理,因为不同项的状态通常是某些困难、限制,以及某些情况下不需要的结果的结合体。因此虽然某些类型的状态管理通常是可行的,但这些框架通常在不具备状态管理机制时更简单也更高效。
此类处理非常适合某些类型的工作负载。有近实时处理需求的任务很适合使用流处理模式。分析、服务器或应用程序错误日志,以及其他基于时间的衡量指标是最适合的类型,因为对这些领域的数据变化做出响应对于业务职能来说是极为关键的。流处理很适合用来处理必须对变动或峰值做出响应,并且关注一段时间内变化趋势的数据。
Apache Storm
Apache Storm是一种侧重于极低延迟的流处理框架,也许是要求近实时处理的工作负载的最佳选择。该技术可处理非常大量的数据,通过比其他解决方案更低的延迟提供结果。
流处理模式
Storm的流处理可对框架中名为Topology(拓扑)的DAG(Directed Acyclic Graph,有向无环图)进行编排。这些拓扑描述了当数据片段进入系统后,需要对每个传入的片段执行的不同转换或步骤。
拓扑包含:
· Stream:普通的数据流,这是一种会持续抵达系统的无边界数据。
· Spout:位于拓扑边缘的数据流来源,例如可以是API或查询等,从这里可以产生待处理的数据。
· Bolt:Bolt代表需要消耗流数据,对其应用操作,并将结果以流的形式进行输出的处理步骤。Bolt需要与每个Spout建立连接,随后相互连接以组成所有必要的处理。在拓扑的尾部,可以使用最终的Bolt输出作为相互连接的其他系统的输入。
Storm背后的想法是使用上述组件定义大量小型的离散操作,随后将多个组件组成所需拓扑。默认情况下Storm提供了“至少一次”的处理保证,这意味着可以确保每条消息至少可以被处理一次,但某些情况下如果遇到失败可能会处理多次。Storm无法确保可以按照特定顺序处理消息。
为了实现严格的一次处理,即有状态处理,可以使用一种名为Trident的抽象。严格来说不使用Trident的Storm通常可称之为Core Storm。Trident会对Storm的处理能力产生极大影响,会增加延迟,为处理提供状态,使用微批模式代替逐项处理的纯粹流处理模式。
为避免这些问题,通常建议Storm用户尽可能使用Core Storm。然而也要注意,Trident对内容严格的一次处理保证在某些情况下也比较有用,例如系统无法智能地处理重复消息时。如果需要在项之间维持状态,例如想要计算一个小时内有多少用户点击了某个链接,此时Trident将是你唯一的选择。尽管不能充分发挥框架与生俱来的优势,但Trident提高了Storm的灵活性。
Trident拓扑包含:
· 流批(Stream batch):这是指流数据的微批,可通过分块提供批处理语义。
· 操作(Operation):是指可以对数据执行的批处理过程。
优势和局限
目前来说Storm可能是近实时处理领域的最佳解决方案。该技术可以用极低延迟处理数据,可用于希望获得最低延迟的工作负载。如果处理速度直接影响用户体验,例如需要将处理结果直接提供给访客打开的网站页面,此时Storm将会是一个很好的选择。
Storm与Trident配合使得用户可以用微批代替纯粹的流处理。虽然借此用户可以获得更大灵活性打造更符合要求的工具,但同时这种做法会削弱该技术相比其他解决方案最大的优势。话虽如此,但多一种流处理方式总是好的。
Core Storm无法保证消息的处理顺序。Core Storm为消息提供了“至少一次”的处理保证,这意味着可以保证每条消息都能被处理,但也可能发生重复。Trident提供了严格的一次处理保证,可以在不同批之间提供顺序处理,但无法在一个批内部实现顺序处理。
在互操作性方面,Storm可与Hadoop的YARN资源管理器进行集成,因此可以很方便地融入现有Hadoop部署。除了支持大部分处理框架,Storm还可支持多种语言,为用户的拓扑定义提供了更多选择。
总结
对于延迟需求很高的纯粹的流处理工作负载,Storm可能是最适合的技术。该技术可以保证每条消息都被处理,可配合多种编程语言使用。由于Storm无法进行批处理,如果需要这些能力可能还需要使用其他软件。如果对严格的一次处理保证有比较高的要求,此时可考虑使用Trident。不过这种情况下其他流处理框架也许更适合。
Apache Samza
Apache Samza是一种与Apache Kafka消息系统紧密绑定的流处理框架。虽然Kafka可用于很多流处理系统,但按照设计,Samza可以更好地发挥Kafka独特的架构优势和保障。该技术可通过Kafka提供容错、缓冲,以及状态存储。
Samza可使用YARN作为资源管理器。这意味着默认情况下需要具备Hadoop集群(至少具备HDFS和YARN),但同时也意味着Samza可以直接使用YARN丰富的内建功能。
流处理模式
Samza依赖Kafka的语义定义流的处理方式。Kafka在处理数据时涉及下列概念:
· Topic(话题):进入Kafka系统的每个数据流可称之为一个话题。话题基本上是一种可供消耗方订阅的,由相关信息组成的数据流。
· Partition(分区):为了将一个话题分散至多个节点,Kafka会将传入的消息划分为多个分区。分区的划分将基于键(Key)进行,这样可以保证包含同一个键的每条消息可以划分至同一个分区。分区的顺序可获得保证。
· Broker(代理):组成Kafka集群的每个节点也叫做代理。
· Procer(生成方):任何向Kafka话题写入数据的组件可以叫做生成方。生成方可提供将话题划分为分区所需的键。
· Consumer(消耗方):任何从Kafka读取话题的组件可叫做消耗方。消耗方需要负责维持有关自己分支的信息,这样即可在失败后知道哪些记录已经被处理过了。
由于Kafka相当于永恒不变的日志,Samza也需要处理永恒不变的数据流。这意味着任何转换创建的新数据流都可被其他组件所使用,而不会对最初的数据流产生影响。
优势和局限
乍看之下,Samza对Kafka类查询系统的依赖似乎是一种限制,然而这也可以为系统提供一些独特的保证和功能,这些内容也是其他流处理系统不具备的。
例如Kafka已经提供了可以通过低延迟方式访问的数据存储副本,此外还可以为每个数据分区提供非常易用且低成本的多订阅者模型。所有输出内容,包括中间态的结果都可写入到Kafka,并可被下游步骤独立使用。
这种对Kafka的紧密依赖在很多方面类似于MapRece引擎对HDFS的依赖。虽然在批处理的每个计算之间对HDFS的依赖导致了一些严重的性能问题,但也避免了流处理遇到的很多其他问题。
Samza与Kafka之间紧密的关系使得处理步骤本身可以非常松散地耦合在一起。无需事先协调,即可在输出的任何步骤中增加任意数量的订阅者,对于有多个团队需要访问类似数据的组织,这一特性非常有用。多个团队可以全部订阅进入系统的数据话题,或任意订阅其他团队对数据进行过某些处理后创建的话题。这一切并不会对数据库等负载密集型基础架构造成额外的压力。
直接写入Kafka还可避免回压(Backpressure)问题。回压是指当负载峰值导致数据流入速度超过组件实时处理能力的情况,这种情况可能导致处理工作停顿并可能丢失数据。按照设计,Kafka可以将数据保存很长时间,这意味着组件可以在方便的时候继续进行处理,并可直接重启动而无需担心造成任何后果。
Samza可以使用以本地键值存储方式实现的容错检查点系统存储数据。这样Samza即可获得“至少一次”的交付保障,但面对由于数据可能多次交付造成的失败,该技术无法对汇总后状态(例如计数)提供精确恢复。
Samza提供的高级抽象使其在很多方面比Storm等系统提供的基元(Primitive)更易于配合使用。目前Samza只支持JVM语言,这意味着它在语言支持方面不如Storm灵活。
总结
对于已经具备或易于实现Hadoop和Kafka的环境,Apache Samza是流处理工作负载一个很好的选择。Samza本身很适合有多个团队需要使用(但相互之间并不一定紧密协调)不同处理阶段的多个数据流的组织。Samza可大幅简化很多流处理工作,可实现低延迟的性能。如果部署需求与当前系统不兼容,也许并不适合使用,但如果需要极低延迟的处理,或对严格的一次处理语义有较高需求,此时依然适合考虑。
混合处理系统:批处理和流处理
一些处理框架可同时处理批处理和流处理工作负载。这些框架可以用相同或相关的组件和API处理两种类型的数据,借此让不同的处理需求得以简化。
如你所见,这一特性主要是由Spark和Flink实现的,下文将介绍这两种框架。实现这样的功能重点在于两种不同处理模式如何进行统一,以及要对固定和不固定数据集之间的关系进行何种假设。
虽然侧重于某一种处理类型的项目会更好地满足具体用例的要求,但混合框架意在提供一种数据处理的通用解决方案。这种框架不仅可以提供处理数据所需的方法,而且提供了自己的集成项、库、工具,可胜任图形分析、机器学习、交互式查询等多种任务。
Apache Spark
Apache Spark是一种包含流处理能力的下一代批处理框架。与Hadoop的MapRece引擎基于各种相同原则开发而来的Spark主要侧重于通过完善的内存计算和处理优化机制加快批处理工作负载的运行速度。
Spark可作为独立集群部署(需要相应存储层的配合),或可与Hadoop集成并取代MapRece引擎。
批处理模式
与MapRece不同,Spark的数据处理工作全部在内存中进行,只在一开始将数据读入内存,以及将最终结果持久存储时需要与存储层交互。所有中间态的处理结果均存储在内存中。
虽然内存中处理方式可大幅改善性能,Spark在处理与磁盘有关的任务时速度也有很大提升,因为通过提前对整个任务集进行分析可以实现更完善的整体式优化。为此Spark可创建代表所需执行的全部操作,需要操作的数据,以及操作和数据之间关系的Directed Acyclic Graph(有向无环图),即DAG,借此处理器可以对任务进行更智能的协调。
为了实现内存中批计算,Spark会使用一种名为Resilient Distributed Dataset(弹性分布式数据集),即RDD的模型来处理数据。这是一种代表数据集,只位于内存中,永恒不变的结构。针对RDD执行的操作可生成新的RDD。每个RDD可通过世系(Lineage)回溯至父级RDD,并最终回溯至磁盘上的数据。Spark可通过RDD在无需将每个操作的结果写回磁盘的前提下实现容错。
流处理模式
流处理能力是由Spark Streaming实现的。Spark本身在设计上主要面向批处理工作负载,为了弥补引擎设计和流处理工作负载特征方面的差异,Spark实现了一种叫做微批(Micro-batch)*的概念。在具体策略方面该技术可以将数据流视作一系列非常小的“批”,借此即可通过批处理引擎的原生语义进行处理。
Spark Streaming会以亚秒级增量对流进行缓冲,随后这些缓冲会作为小规模的固定数据集进行批处理。这种方式的实际效果非常好,但相比真正的流处理框架在性能方面依然存在不足。
优势和局限
使用Spark而非Hadoop MapRece的主要原因是速度。在内存计算策略和先进的DAG调度等机制的帮助下,Spark可以用更快速度处理相同的数据集。
Spark的另一个重要优势在于多样性。该产品可作为独立集群部署,或与现有Hadoop集群集成。该产品可运行批处理和流处理,运行一个集群即可处理不同类型的任务。
除了引擎自身的能力外,围绕Spark还建立了包含各种库的生态系统,可为机器学习、交互式查询等任务提供更好的支持。相比MapRece,Spark任务更是“众所周知”地易于编写,因此可大幅提高生产力。
为流处理系统采用批处理的方法,需要对进入系统的数据进行缓冲。缓冲机制使得该技术可以处理非常大量的传入数据,提高整体吞吐率,但等待缓冲区清空也会导致延迟增高。这意味着Spark Streaming可能不适合处理对延迟有较高要求的工作负载。
由于内存通常比磁盘空间更贵,因此相比基于磁盘的系统,Spark成本更高。然而处理速度的提升意味着可以更快速完成任务,在需要按照小时数为资源付费的环境中,这一特性通常可以抵消增加的成本。
Spark内存计算这一设计的另一个后果是,如果部署在共享的集群中可能会遇到资源不足的问题。相比HadoopMapRece,Spark的资源消耗更大,可能会对需要在同一时间使用集群的其他任务产生影响。从本质来看,Spark更不适合与Hadoop堆栈的其他组件共存一处。
总结
Spark是多样化工作负载处理任务的最佳选择。Spark批处理能力以更高内存占用为代价提供了无与伦比的速度优势。对于重视吞吐率而非延迟的工作负载,则比较适合使用Spark Streaming作为流处理解决方案。
Apache Flink
Apache Flink是一种可以处理批处理任务的流处理框架。该技术可将批处理数据视作具备有限边界的数据流,借此将批处理任务作为流处理的子集加以处理。为所有处理任务采取流处理为先的方法会产生一系列有趣的副作用。
这种流处理为先的方法也叫做Kappa架构,与之相对的是更加被广为人知的Lambda架构(该架构中使用批处理作为主要处理方法,使用流作为补充并提供早期未经提炼的结果)。Kappa架构中会对一切进行流处理,借此对模型进行简化,而这一切是在最近流处理引擎逐渐成熟后才可行的。
流处理模型
Flink的流处理模型在处理传入数据时会将每一项视作真正的数据流。Flink提供的DataStream API可用于处理无尽的数据流。Flink可配合使用的基本组件包括:
· Stream(流)是指在系统中流转的,永恒不变的无边界数据集
· Operator(操作方)是指针对数据流执行操作以产生其他数据流的功能
· Source(源)是指数据流进入系统的入口点
· Sink(槽)是指数据流离开Flink系统后进入到的位置,槽可以是数据库或到其他系统的连接器
为了在计算过程中遇到问题后能够恢复,流处理任务会在预定时间点创建快照。为了实现状态存储,Flink可配合多种状态后端系统使用,具体取决于所需实现的复杂度和持久性级别。
此外Flink的流处理能力还可以理解“事件时间”这一概念,这是指事件实际发生的时间,此外该功能还可以处理会话。这意味着可以通过某种有趣的方式确保执行顺序和分组。
批处理模型
Flink的批处理模型在很大程度上仅仅是对流处理模型的扩展。此时模型不再从持续流中读取数据,而是从持久存储中以流的形式读取有边界的数据集。Flink会对这些处理模型使用完全相同的运行时。
Flink可以对批处理工作负载实现一定的优化。例如由于批处理操作可通过持久存储加以支持,Flink可以不对批处理工作负载创建快照。数据依然可以恢复,但常规处理操作可以执行得更快。
另一个优化是对批处理任务进行分解,这样即可在需要的时候调用不同阶段和组件。借此Flink可以与集群的其他用户更好地共存。对任务提前进行分析使得Flink可以查看需要执行的所有操作、数据集的大小,以及下游需要执行的操作步骤,借此实现进一步的优化。
优势和局限
Flink目前是处理框架领域一个独特的技术。虽然Spark也可以执行批处理和流处理,但Spark的流处理采取的微批架构使其无法适用于很多用例。Flink流处理为先的方法可提供低延迟,高吞吐率,近乎逐项处理的能力。
Flink的很多组件是自行管理的。虽然这种做法较为罕见,但出于性能方面的原因,该技术可自行管理内存,无需依赖原生的Java垃圾回收机制。与Spark不同,待处理数据的特征发生变化后Flink无需手工优化和调整,并且该技术也可以自行处理数据分区和自动缓存等操作。
Flink会通过多种方式对工作进行分许进而优化任务。这种分析在部分程度上类似于SQL查询规划器对关系型数据库所做的优化,可针对特定任务确定最高效的实现方法。该技术还支持多阶段并行执行,同时可将受阻任务的数据集合在一起。对于迭代式任务,出于性能方面的考虑,Flink会尝试在存储数据的节点上执行相应的计算任务。此外还可进行“增量迭代”,或仅对数据中有改动的部分进行迭代。
在用户工具方面,Flink提供了基于Web的调度视图,借此可轻松管理任务并查看系统状态。用户也可以查看已提交任务的优化方案,借此了解任务最终是如何在集群中实现的。对于分析类任务,Flink提供了类似SQL的查询,图形化处理,以及机器学习库,此外还支持内存计算。
Flink能很好地与其他组件配合使用。如果配合Hadoop 堆栈使用,该技术可以很好地融入整个环境,在任何时候都只占用必要的资源。该技术可轻松地与YARN、HDFS和Kafka 集成。在兼容包的帮助下,Flink还可以运行为其他处理框架,例如Hadoop和Storm编写的任务。
目前Flink最大的局限之一在于这依然是一个非常“年幼”的项目。现实环境中该项目的大规模部署尚不如其他处理框架那么常见,对于Flink在缩放能力方面的局限目前也没有较为深入的研究。随着快速开发周期的推进和兼容包等功能的完善,当越来越多的组织开始尝试时,可能会出现越来越多的Flink部署
总结
Flink提供了低延迟流处理,同时可支持传统的批处理任务。Flink也许最适合有极高流处理需求,并有少量批处理任务的组织。该技术可兼容原生Storm和Hadoop程序,可在YARN管理的集群上运行,因此可以很方便地进行评估。快速进展的开发工作使其值得被大家关注。
结论
大数据系统可使用多种处理技术。
对于仅需要批处理的工作负载,如果对时间不敏感,比其他解决方案实现成本更低的Hadoop将会是一个好选择。
对于仅需要流处理的工作负载,Storm可支持更广泛的语言并实现极低延迟的处理,但默认配置可能产生重复结果并且无法保证顺序。Samza与YARN和Kafka紧密集成可提供更大灵活性,更易用的多团队使用,以及更简单的复制和状态管理。
对于混合型工作负载,Spark可提供高速批处理和微批处理模式的流处理。该技术的支持更完善,具备各种集成库和工具,可实现灵活的集成。Flink提供了真正的流处理并具备批处理能力,通过深度优化可运行针对其他平台编写的任务,提供低延迟的处理,但实际应用方面还为时过早。
最适合的解决方案主要取决于待处理数据的状态,对处理所需时间的需求,以及希望得到的结果。具体是使用全功能解决方案或主要侧重于某种项目的解决方案,这个问题需要慎重权衡。随着逐渐成熟并被广泛接受,在评估任何新出现的创新型解决方案时都需要考虑类似的问题。
② 如何正确建立大数据结构
大数据各行各业的企业都提供了潜力。正确使用这些大数据信息可能将增加商业价值,帮助您的企业从市场竞争中脱颖而出。如下是几个企业成功应用大数据的案例: 大数据的例子 汽车制造商已经开始使用大数据来了解汽车何时需要返回到车库进行维修。使用汽车发动机的数百个传感器,可以为汽车制造商发送实时的数据信息,这使得制造商甚至比驾驶汽车的司机还要提前知道汽车何时会出现故障。卡车制造商开始使用大数据,基于实时交通条件和客户的需求来改进他们的路由,从而节约燃料和时间。 零售业也开始越来越多的使用大数据,鉴于越来越多的产品均有一个RFID标签能帮助零售商跟踪产品,知道很少某种产品库存缺货,并及时向供货商订购新产品。沃尔玛便是这正确利用大数据这方面的一个很好的例子。当零售商开始识别他们的客户时,就能够更好地建立商店,更好的满足客户的需求。 当然,上述这些只是几个浅显的例子,大数据的可能性几乎是无止境的。不久的将来,我们将讨论在大数据平台上的最佳实践。知道大数据能够提供商业价值是一回事;而企业要知道如何创建正确的架构则又是另一回事了。 大数据结构 大数据有三个特征,使得大数据不同于现有的数据仓库和商业智能。大数据的这三大特点是: 数据量庞大:大数据的数据量相当庞大,更多的时候大数据的数据量可以达到比数TB到PB级字节。 高速度传递:所有这些TB和PB字节的数据能够实时交付,数据仓库每天都需要应付如此高速的数据流。
③ 企业应该如何在大数据基础架构方面做出选择
企业应该如何在大数据基础架构方面做出选择
如果询问十家公司他们为了运行大数据负载需要使用怎样的基础架构,那么可能会得到十种不同的答案。现在这个领域当中几乎没有可以遵循的原则,甚至没有可以参考的最佳实践。
不管是从资源还是从专业性方面来说,大数据分析已经成为基础架构领域当中真正的难题。顾名思义,大数据分析工具所针对的数据集合,规模将会非常庞大,并且需要大量的计算、存储和网络资源来满足性能需求。但是这些大数据工具通常是由超大规模企业开发的,这些企业并不存在普通企业需要考虑的同等级安全问题和高可用性问题,而主流IT企业还没有深入了解这些工具,再加上大数据在投资回报率方面的不确定性,导致只有非常少的企业愿意在大数据方面进行投入。
此外,即便对于曾经在Hadoop、Spark和类似产品上运行过大数据集群的部分企业来说,也会在大数据基础架构方面遇到技术和业务方面的挑战。
大数据带来大问题
一家大型远程通讯提供商正在构建一种新的数字服务,预计在今年年底正式推出,并且准备使用Hadoop来分析这种服务所产生的内容、使用情况和收入(广告服务)数据。但是由于这种服务是全新的,因此很难分析应该使用哪种大数据基础架构,负责这个项目的技术副总裁表示。
“对于一个还没有推出的项目来说,我们不可能进行任何容量规划,”他说。
确实,现在很多大数据项目仍然处于初级阶段。“大多数大数据项目的性质比我们想象的还要低,” 可扩展存储基础架构提供商Coho Data CTO Andrew Warfield表示。
即便企业还不是十分了解大数据技术,但这并不意味着企业不应该在大数据方面投入精力。“但是运行这种技术可能面临着很大风险,提前认识到这点非常重要,” Warfield说,他认为企业应该提前考虑基础架构方面的因素。
对于这家远程通讯提供商来说,他们将会采用一种渐进的方式,使用来自于BlueData Software的软件在商用硬件环境当中运行大数据集群,这样就能够从现有的存储系统上访问数据了。
无处不在的数据
如果数据来自于云,那么当然可以直接在云中进行分析;如果数据全部位于本地,那么底层的基础架构也应该位于本地。但是如果数据分散在不同位置,那么无疑会使得基础架构更加复杂。
远程通讯提供商的服务将会同时使用来自于云和本地的数据。对于任何大数据解决方案来说,考虑到合规性、节省时间和网络带宽等因素,能够同时支持两种数据来源都是十分重要的。“同步生产环境当中的数据是一件非常困难的事情,”这位副总裁说,“我们希望将所有的实例全都指向一个单一数据源。”
此外,虽然数据科学家想要分析的信息是可用的,但是现在还不能进行使用,因为其位于大数据计算工具无法访问的存储基础架构当中,Warfield说。一种解决方案是存储硬件使用Hadoop Distributed File System或者RESTful API这样的协议公开这些数据。
注意延迟
对于特性类型的大数据分析来说,将数据从存储阵列移动到计算环境所花费的时间将会对性能造成严重影响。但是如果不将数据跨越整个网络移动到计算环境当中,而是将应用程序移动到数据附近以降低延迟,将会怎样呢?
将计算环境移动到数据附近并不是一种全新的概念,但是现在出现了一种前所未有的实现方式:Docker。比如Coho Data和Intel通过合作证明了这种概念的有效性,在一个大型金融服务公司当中,使用Docker格式封装计算节点,之后在上面直接运行Hadoop负载。
在存储阵列上直接运行Docker容器,这样做的意义在于直接对附近的数据进行分析,而不再需要跨网络移动数据,同时利用任何可用的计算资源。“相比于其他存储平台来说,大数据平台的CPU使用率通常会很高,” Warfield说。“更何况如果你将闪存加入其中,那么问题就会变成‘我该如何从这种资源当中获得更多价值?’”
直接在存储阵列当中运行容器化应用程序是一件非常有趣的事情,但是需要提前对负载进行认真评估,以确保其能够很好地适应当前环境,为建筑行业提供文档管理服务的Signature Tech Studios公司副总裁Bubba Hines说。这种服务基于Amazon Web Services,使用来自于Zadara Storage的存储服务。这家公司最近开始评估新的Zadara Container Service,其中容器化应用程序运行在存储阵列上,可以直接访问本地磁盘。根据Hines的想法,现在有几种可能的使用情况:在存储阵列上运行其灾难恢复软件的容器版本来持续监控用户数据和工作方面的变化,更改或者验证主要存储数据。
但是如果使用Zadara Container Service处理全部数据将没有什么意义。Signature Tech Studio的系统正在按照计划执行数据转换,并且已经实现大规模容器化了。但是“我们可能不会将所有Docker容器移动到Zadara容器服务当中,因为从体积和规模方面考虑这样做并没有意义,”Hines说。“我们必须寻找能够真正从降低延迟当中获利的负载。”
以上是小编为大家分享的关于企业应该如何在大数据基础架构方面做出选择的相关内容,更多信息可以关注环球青藤分享更多干货
④ 大数据平台有哪些架构
01
传统大数据架构
以上的种种架构都围绕海量数据处理为主,Unifield架构则将机器学习和数据处理揉为一体,在流处理层新增了机器学习层。
优点:
提供了一套数据分析和机器学习结合的架构方案,解决了机器学习如何与数据平台进行结合的问题。
缺点:
实施复杂度更高,对于机器学习架构来说,从软件包到硬件部署都和数据分析平台有着非常大的差别,因此在实施过程中的难度系数更高。
适用场景:
有着大量数据需要分析,同时对机器学习方便又有着非常大的需求或者有规划。
大数据时代各种技术日新月异,想要保持竞争力就必须得不断地学习。写这些文章的目的是希望能帮到一些人了解学习大数据相关知识 。加米谷大数据,大数据人才培养机构,喜欢的同学可关注下,每天花一点时间学习,长期积累总是会有收获的。
⑤ 大数据使一个新时代应运而生
大数据使一个新时代应运而生
在“大数据”趋势的驱动下,企业具有更大规模的收集和处理数据的能力,越来越广泛的信息加速了各行各业决策的速率和准确率。而大数据的“大”,已成为存储业界目前所面临的严峻挑战。据IDC预测,到2015年,大数据技术和服务市场将从2010年的32亿美元增长到169亿美元,年复合增长率(CAGR)达到39.4%,几乎是整个信息和通信技术市场年复合增长率的七倍。快速的数据流转,动态的数据体系,以及越来越多样化的数据类型,面对如此海量的数据规模,尽管业界的专业人士不断的推崇“大数据”,但其所带来的复杂程度和处理难度,使得企业不得不去重新考虑存储基础架构的问题。
随着企业不断寻求通过各种方法创新并为客户构建更好的解决方案,他们面临的一个最大挑战是,如何使真正对社会具有深远意义以及可持续影响力的创新解决方案实现商业化。据 IDC 调查,到2014年,绝大部分数据将是非结构化数据。因此,在数据大爆炸或大数据的背景下,我们需要具备发挥非结构化数据巨大潜力的能力,以便生成新的可持续业务、从现有资产获取经济价值并提高用户生产效率。
大数据洞察,基础架构先行
大数据数量庞大,格式多样化。大量数据和信息由家庭和办公场所的各种设备生成。它的爆炸式增长已超出了传统IT基础架构的处理能力,给企业带来严峻的数据管理问题。
IDC认为传统的基础架构不能满足大数据需求和挑战。支持大数据部署的架构必须可以动态调整,并具备以下主要特性:
按需提供的容量和可扩展性,使基础架构能够在必要时根据容量和性能扩展或缩减规模。
维持“始终在线”的环境以及防止计划外停机的故障恢复能力。
内置数据管理,并且能够在每个处理阶段以及每个后处理常规运行阶段管理数据保护、监管达标、处置和同化。
针对大数据的容量需求,存储虚拟化是目前为止提高容量效率最重要最有效的解决方案,它为缺乏这些能力的现有存储系统拓展了自动分层和精简配置等存储效率的工具。拥有了虚拟化存储,便可以将来自内部、外部和多厂商存储的结构化和非结构化数据的文件、内容和块存储等所有的数据类型,整合到一个单一的存储平台上。当所有存储资产成为一个单一的存储资源池时,自动分层和精简配置功能就可以扩大到整个存储基础设施,从而可以轻松实现容量回收和利用最大化,甚至达到重用现有资产以延长使用,显著提高IT灵活性和容量效率,以满足非结构化数据增长的需求。目前,借助HUS中型企业可以在不影响性能的情况下能够扩展系统容量达到近3PB,自动更正性能问题,通过动态虚拟控制器实现快速预配置。此外,通过VSP的虚拟化,大型企业可以创建接近四分之一EB容量的存储池。
针对非结构化数据,传统文件系统中有限的索引节点总数导致文件系统可以容纳的文件、目录或其它对象的最大数量受到限制。而HNAS和HCP使用基于对象的文件系统,这使它们能够扩展到PB级,以及数十亿的文件或对象。位于VSP或HUS顶部的HNAS和HCP网关可以充分利用模块存储的可扩展性,同时享受到通用管理平台Hitachi Command Suite带来的好处。HNAS和HCP为大数据文件和内容构建起了相应的架构。
除了可扩展性,大数据必须能够不受干扰地持续扩展并具有跨越不同时代技术的迁移能力。数据迁移必须保持在最小范围,且在后台完成。大数据应该只需要复制一次便可以恢复可用性;通过版本控制来跟踪变更,而不是为大数据发生的每一个变更备份整个大数据。大数据太大而无法整体备份。整个HDS的产品系列均可以实现数据的后台移动和分层,也可以增加VSP或HUS块数据池、HNAS文件系统或HCP租户的容量,并自动在新的容量中调整数据。旧的文件系统与块数据存储设备不支持动态扩展。为了使用新的存储容量,这些旧系统中的数据不得不从旧的块数据存储或文件系统中重新加载到新的存储容量中。
不论企业规模大小,信息过载都是长期以来难以解决的问题。企业需要高度集成的基础架构堆栈,以便统一地对所有来源的大数据进行汇聚、访问管理、分析和交付。这需要基础架构能够管理和理解信息。根据及时、相关、全面、准确的信息而非猜测来采取行动,企业也会因此赢得竞争优势。反之,则会在浩瀚的信息中受制于繁杂的数据、拘泥不前。
三步走,轻松驾驭大数据
基于对云计算和大数据的深入研究,HDS提出了三步云战略,即基础架构云、内容云和信息云。三步云战略基于企业现有的IT设施,为企业的所有数据提供单一的虚拟化平台。其中基础架构云目的为提供动态基础架构,以实现支持所有数据的单一平台。而内容云则基于这一单一平台,借助智能工具,实现对所有类型数据的索引、搜索和发掘。让数据可以更容易地被发现、共享并且重新利用,因而也会变得更有价值。在信息云中,和大数据会更加关联,让各种信息分析工具和流程与底层基础架构完美集成。连接不同的数据集,揭示其中的规律,以为企业用户提供有价值的信息和商业洞察,帮助客户应对在医疗、生命科学、能源研究、社会基础设施等领域的挑战。
⑥ 大数据基础架构发展需考虑的重要因素
大数据基础架构发展需考虑的重要因素
随着IT行业持续地灌输廉价存储的优势,企业较以往拥有者更多的数据,那么在评估大数据基础架构的过程中需要深入地调查哪些因素。本篇涉及到了在容量、延迟、访问性、安全性和成本这些重要因素的评估。
大数据发展的驱动因素
除了存储比以往更多的数据,我们所面临的数据种类也变得更加繁杂。这些数据源包括互联网事务交易、社交网络的活动、自动化传感器、移动设备以及科研仪器等。除了静态的数据增长方面,事务交易也会保持一个固定的数据“增长速度”。例如飞速增长的社交信息所产生的大量交易事务和记录。不过现有的不断扩大数据集无法确保能够为业务搜索出有价值的信息。
当今的信息是一项重要的生产因素
数据业已成为了一种生产资料,就如何资本、劳动力和原始材料那样,而且也不限于某一行业内的特定应用。企业中所有部门都旨在整合比较越来越多的数据集合,致力于降低成本、提升品质、增强生产能力以及开发新产品。举例来说,对于现场产品的直接数据分析有助于提升设计。又例如企业可以通过对用户习惯的深入分析,比较整体市场的增长特性,大幅提升自己在竞争分析方面的能力。
存储发展的必要性
大数据意味着数据的增长超过了其本身的基础架构,这驱动着应对这些特殊挑战的存储、网络和计算系统进一步的发展。软件应用需求最终推动了硬件功能的发展,同时在这种情况下,大数据分析的处理过程正在影响着数据存储基础架构的发展。这对于存储和IT基础架构企业而言是一项机遇。随着结构化和非结构化数据集的持续增长,这类数据的分析方式也更为多样化,当前的存储系统设计难以应对大数据基础架构所需。存储供应商已经开始推出基于数据块和基于文件的系统来应对许多这方面的需求。以下列出了一些大数据存储基础架构的特性,这些都是源自大数据的挑战。
容量。“大”在很多时候可以理解为PB级别的数据,因此大数据基础架构当然要能够可以扩展。不过其同样必须能够简易地完成扩展,以模块化或阵列的方式为用户直接增加容量,或者至少保持系统不会宕机。横向扩展式存储由于能够满足这种需求,变得十分流行。横向扩展集群体系架构的特征是由存储节点构成,每个节点具备处理能力和可连接性,可以无缝地扩展,避免传统系统可能产生的烟囱式存储的问题。
大数据还意味着大量的文件。管理元数据文件系统的累计会降低可扩展性并影响性能,用传统的NAS系统就会在这种情况下出现问题。基于对象的存储体系架构则通过另一种方式,支持在大数据存储系统中扩展至十亿级别的文件数量,而不会产生传统文件系统中会遇到的负载问题。基于对象的存储可以在不同的地理位置进行扩展,可以在多个不同地点扩展出大型的基础架构。
延迟。大数据基础架构中或许同样会包含实时性的组件,尤其是在网页交互或金融处理事务中。存储系统必须能够应对上述问题同时保持相应的性能,因为延迟可能产生过期数据。在这一领域,横向扩展式基础架构同样能够通过应用存储节点集群,随着容量扩展的同时增强处理能力和可连接性。基于对象的存储系统可能并发数据流,更大程度上改善吞吐量。
⑦ 评估大数据基础架构的重大因素
评估大数据基础架构的重大因素
随着IT行业持续地灌输廉价存储的优势,企业较以往拥有者更多的数据,那么在评估大数据基础架构的过程中需要深入地调查哪些因素。本篇涉及到了在容量、延迟、访问性、安全性和成本这些重要因素的评估。
大数据发展的驱动因素
除了存储比以往更多的数据,我们所面临的数据种类也变得更加繁杂。这些数据源包括互联网事务交易、社交网络的活动、自动化传感器、移动设备以及科研仪器等。除了静态的数据增长方面,事务交易也会保持一个固定的数据"增长速度".例如飞速增长的社交信息所产生的大量交易事务和记录。不过现有的不断扩大数据集无法确保能够为业务搜索出有价值的信息。
当今的信息是一项重要的生产因素
数据业已成为了一种生产资料,就如何资本、劳动力和原始材料那样,而且也不限于某一行业内的特定应用。企业中所有部门都旨在整合比较越来越多的数据集合,致力于降低成本、提升品质、增强生产能力以及开发新产品。举例来说,对于现场产品的直接数据分析有助于提升设计。又例如企业可以通过对用户习惯的深入分析,比较整体市场的增长特性,大幅提升自己在竞争分析方面的能力。
存储发展的必要性
大数据意味着数据的增长超过了其本身的基础架构,这驱动着应对这些特殊挑战的存储、网络和计算系统进一步的发展。软件应用需求最终推动了硬件功能的发展,同时在这种情况下,大数据分析的处理过程正在影响着数据存储基础架构的发展。这对于存储和IT基础架构企业而言是一项机遇。随着结构化和非结构化数据集的持续增长,这类数据的分析方式也更为多样化,当前的存储系统设计难以应对大数据基础架构所需。存储供应商已经开始推出基于数据块和基于文件的系统来应对许多这方面的需求。以下列出了一些大数据存储基础架构的特性,这些都是源自大数据的挑战。
容量。"大"在很多时候可以理解为PB级别的数据,因此大数据基础架构当然要能够可以扩展。不过其同样必须能够简易地完成扩展,以模块化或阵列的方式为用户直接增加容量,或者至少保持系统不会宕机。横向扩展式存储由于能够满足这种需求,变得十分流行。横向扩展集群体系架构的特征是由存储节点构成,每个节点具备处理能力和可连接性,可以无缝地扩展,避免传统系统可能产生的烟囱式存储的问题。
大数据还意味着大量的文件。管理元数据文件系统的累计会降低可扩展性并影响性能,用传统的NAS系统就会在这种情况下出现问题。基于对象的存储体系架构则通过另一种方式,支持在大数据存储系统中扩展至十亿级别的文件数量,而不会产生传统文件系统中会遇到的负载问题。基于对象的存储可以在不同的地理位置进行扩展,可以在多个不同地点扩展出大型的基础架构。
延迟。大数据基础架构中或许同样会包含实时性的组件,尤其是在网页交互或金融处理事务中。存储系统必须能够应对上述问题同时保持相应的性能,因为延迟可能产生过期数据。在这一领域,横向扩展式基础架构同样能够通过应用存储节点集群,随着容量扩展的同时增强处理能力和可连接性。基于对象的存储系统可能并发数据流,更大程度上改善吞吐量。
⑧ 如何架构大数据应用
1.可视化分析大数据分析的使用者有大数据分析专家,同时还有普通用户,但是他们二者对于大数据分析最基本的要求就是可视化分析,因为可视化分析能够直观的呈现大数据特点,同时能够非常容易被读者所接受,就如同看图说话一样简单明了。2.数据挖掘算法大数据分析的理论核心就是数据挖掘算法,各种数据挖掘的算法基于不同的数据类型和格式才能更加科学的呈现出数据本身具备的特点,也正是因为这些被全世界统计学家所公认的各种统计方法(可以称之为真理)才能深入数据内部,挖掘出公认的价值。另外一个方面也是因为有这些数据挖掘的算法才能更快速的处理大数据,如果一个算法得花上好几年才能得出结论,那大数据的价值也就无从说起了。3.预测性分析大数据分析最终要的应用领域之一就是预测性分析,从大数据中挖掘出特点,通过科学的建立模型,之后便可以通过模型带入新的数据,从而预测未来的数据。4.语义引擎非结构化数据的多元化给数据分析带来新的挑战,我们需要一套工具系统的去分析,提炼数据。语义引擎需要设计到有足够的人工智能以足以从数据中主动地提取信息。5.数据质量和数据管理。大数据分析离不开数据质量和数据管理,高质量的数据和有效的数据管理,无论是在学术研究还是在商业应用领域,都能够保证分析结果的真实和有价值。大数据分析的基础就是以上五个方面,当然更加深入大数据分析的话,还有很多很多更加有特点的、更加深入的、更加专业的大数据分析方法。大数据的技术数据采集:ETL工具负责将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础。数据存取:关系数据库、NOSQL、SQL等。基础架构:云存储、分布式文件存储等。数据处理:自然语言处理(NLP,NaturalLanguageProcessing)是研究人与计算机交互的语言问题的一门学科。处理自然语言的关键是要让计算机地理解地自然语言,所以自然语言处理又叫做自然语言理解也称为计算语言学。一方面它是语言信息处理的一个分支,另一方面它是人工智能的核心课题之一。统计分析:假设检验、显著性检验、差异分析、相关分析、T检验、方差分析、卡方分析、偏相关分析、距离分析、回归分析、简单回归分析、多元回归分析、逐步回归、回归预测与残差分析、岭回归、logistic回归分析、曲线估计、因子分析、聚类分析、主成分分析、因子分析、快速聚类法与聚类法、判别分析、对应分析、多元对应分析(最优尺度分析)、bootstrap技术等等。数据挖掘:分类(Classification)、估计(Estimation)、预测(Prediction)、相关性分组或关联规则()、聚类(Clustering)、描述和可视化、DescriptionandVisualization)、复杂数据类型挖掘(Text,Web,图形图像,视频,音频等)模型预测:预测模型、机器学习、建模仿真。结果呈现:云计算、标签云、关系图等。大数据的处理1.大数据处理之一:采集大数据的采集是指利用多个数据库来接收发自客户端(Web、App或者传感器形式等)的数据,并且用户可以通过这些数据库来进行简单的查询和处理工作。比如,电商会使用传统的关系型数据库MySQL和Oracle等来存储每一笔事务数据,除此之外,Redis和MongoDB这样的NoSQL数据库也常用于数据的采集。在大数据的采集过程中,其主要特点和挑战是并发数高,因为同时有可能会有成千上万的用户来进行访问和操作,比如火车票售票网站和淘宝,它们并发的访问量在峰值时达到上百万,所以需要在采集端部署大量数据库才能支撑。并且如何在这些数据库之间进行负载均衡和分片的确是需要深入的思考和设计。2.大数据处理之二:导入/预处理虽然采集端本身会有很多数据库,但是如果要对这些海量数据进行有效的分析,还是应该将这些来自前端的数据导入到一个集中的大型分布式数据库,或者分布式存储集群,并且可以在导入基础上做一些简单的清洗和预处理工作。也有一些用户会在导入时使用来自Twitter的Storm来对数据进行流式计算,来满足部分业务的实时计算需求。导入与预处理过程的特点和挑战主要是导入的数据量大,每秒钟的导入量经常会达到百兆,甚至千兆级别。3.大数据处理之三:统计/分析统计与分析主要利用分布式数据库,或者分布式计算集群来对存储于其内的海量数据进行普通的分析和分类汇总等,以满足大多数常见的分析需求,在这方面,一些实时性需求会用到EMC的GreenPlum、Oracle的Exadata,以及基于MySQL的列式存储Infobright等,而一些批处理,或者基于半结构化数据的需求可以使用Hadoop。统计与分析这部分的主要特点和挑战是分析涉及的数据量大,其对系统资源,特别是I/O会有极大的占用。4.大数据处理之四:挖掘与前面统计和分析过程不同的是,数据挖掘一般没有什么预先设定好的主题,主要是在现有数据上面进行基于各种算法的计算,从而起到预测(Predict)的效果,从而实现一些高级别数据分析的需求。比较典型算法有用于聚类的Kmeans、用于统计学习的SVM和用于分类的NaiveBayes,主要使用的工具有Hadoop的Mahout等。该过程的特点和挑战主要是用于挖掘的算法很复杂,并且计算涉及的数据量和计算量都很大,常用数据挖掘算法都以单线程为主。整个大数据处理的普遍流程至少应该满足这四个方面的步骤,才能算得上是一个比较完整的大数据处理。
⑨ 大数据平台架构如何进行 包括哪些方面
【导语】大数据平台将互联网使用和大数据产品整合起来,将实时数据和离线数据打通,使数据能够实现更大规模的相关核算,挖掘出数据更大的价值,然后实现数据驱动事务,那么大数据平台架构如何进行?包括哪些方面呢?
1、事务使用:
其实指的是数据收集,你经过什么样的方法收集到数据。互联网收集数据相对简略,经过网页、App就能够收集到数据,比方许多银行现在都有自己的App。
更深层次的还能收集到用户的行为数据,能够切分出来许多维度,做很细的剖析。但是对于涉及到线下的行业,数据收集就需要借助各类的事务体系去完成。
2、数据集成:
指的其实是ETL,指的是用户从数据源抽取出所需的数据,经过数据清洗,终究依照预先定义好的数据仓库模型,将数据加载到数据仓库中去。而这儿的Kettle仅仅ETL的其中一种。
3、数据存储:
指的便是数据仓库的建设了,简略来说能够分为事务数据层(DW)、指标层、维度层、汇总层(DWA)。
4、数据同享层:
表明在数据仓库与事务体系间提供数据同享服务。Web Service和Web
API,代表的是一种数据间的衔接方法,还有一些其他衔接方法,能够依照自己的情况来确定。
5、数据剖析层:
剖析函数就相对比较容易理解了,便是各种数学函数,比方K均值剖析、聚类、RMF模型等等。
6、数据展现:
结果以什么样的方式呈现,其实便是数据可视化。这儿建议用敏捷BI,和传统BI不同的是,它能经过简略的拖拽就生成报表,学习成本较低。
7、数据访问:
这个就比较简略了,看你是经过什么样的方法去查看这些数据,图中示例的是因为B/S架构,终究的可视化结果是经过浏览器访问的。
关于大数据平台架构内容,就给大家介绍到这里了,不知道大家是不是有所了解呢,未来,大数据对社会发展的重大影响必将会决定未来的发展趋势,所以有想法考生要抓紧时间学起来了。
⑩ 大数据定义、思维方式及架构模式
大数据定义、思维方式及架构模式
一、大数据何以为大
数据现在是个热点词汇,关于有了大数据,如何发挥大数据的价值,议论纷纷,而笔者以为,似乎这有点搞错了原因与结果,就象关联关系,有A的时候,B与之关联,而有B的时候,A却未必关联,笔者还是从通常的4个V来描述一下我所认为的大数据思维。
1、大数据的量,数据量足够大,达到了统计性意义,才有价值。笔者看过的一个典型的案例就是,例如传统的,收集几千条数据,很难发现血缘关系对遗传病的影响,而一旦达到2万条以上,那么发现这种影响就会非常明显。那么对于我们在收集问题时,是为了发现隐藏的知识去收集数据,还是不管有没有价值地收集,这还是值得商榷的。其实收集数据,对于数据本身,还是可以划分出一些标准,确立出层级,结合需求、目标来收集,当然有人会说,这样的话,将会导致巨大的偏差,例如说丧失了数据的完整性,有一定的主观偏向,但是笔者以为,这样至少可以让收集到的数据的价值相对较高。
2、大数据的种类,也可以说成数据的维度,对于一个对象,采取标签化的方式,进行标记,针对需求进行种类的扩充,和数据的量一样,笔者认为同样是建议根据需求来确立,但是对于标签,有一个通常采取的策略,那就是推荐标签和自定义标签的问题,分类法其实是人类文明的一大创举,采取推荐标签的方式,可以大幅度降低标签的总量,而减少后期的规约工作,数据收集时扩充量、扩充维度,但是在数据进入应用状态时,我们是希望处理的是小数据、少维度,而通过这种推荐、可选择的方式,可以在标准化基础上的自定义,而不是毫无规则的扩展,甚至用户的自定义标签给予一定的限制,这样可以使维度的价值更为显现。
3、关于时效性,现在进入了读秒时代,那么在很短的时间进行问题分析、关联推荐、决策等等,需要的数据量和数据种类相比以前,往往更多,换个说法,因为现在时效性要求高了,所以处理数据的方式变了,以前可能多人处理,多次处理,现在必须变得单人处理、单次处理,那么相应的信息系统、工作方式、甚至企业的组织模式,管理绩效都需要改变,例如笔者曾经工作的企业,上了ERP系统,设计师意见很大,说一个典型案例,以往发一张变更单,发出去工作结束,而上了ERP系统以后,就必须为这张变更单设定物料代码,设置需要查询物料的存储,而这些是以前设计师不管的,又没有为设计师为这些增加的工作支付奖励,甚至因为物料的缺少而导致变更单不能发出,以至于设计师工作没有完成,导致被处罚。但是我们从把工作一次就做完,提升企业的工作效率角度,这样的设计变更与物料集成的方式显然是必须的。那么作为一个工作人员,如何让自己的工作更全面,更完整,避免王府,让整个企业工作更具有时间的竞争力,提高数据的数量、种类、处理能力是必须的。
4、关于大数据价值,一种说法是大数据有大价值,还有一种是相对于以往的结构化数据、少量数据,现在是大数据了,所以大数据的单位价值下降。笔者以为这两种说法都正确,这是一个从总体价值来看,一个从单元数据价值来看的问题。而笔者提出一个新的关于大数据价值的观点,那就是真正发挥大数据的价值的另外一个思路。这个思路就是针对企业的问题,首先要说什么是问题,笔者说的问题不是一般意义上的问题,因为一说问题,大家都以为不好、错误等等,而笔者的问题的定义是指状态与其期望状态的差异,包括三种模式,
1)通常意义的问题,例如失火了,必须立即扑救,其实这是三种模式中最少的一种;
2)希望保持状态,
3)期望的状态,这是比原来的状态高一个层级的。
我们针对问题,提出一系列解决方案,这些解决方案往往有多种,例如员工的培训,例如设备的改进,例如组织的方式的变化,当然解决方案包括信息化手段、大数据手段,我们一样需要权衡大数据的方法是不是一种相对较优的方法,如果是,那么用这种手段去解决,那么也就是有价值了。例如笔者知道的一个案例,一个企业某产品部件偶尔会出现问题,企业经历数次后决定针对设备上了一套工控系统,记录材料的温度,结果又一次出现问题时,进行分析认为,如果工人正常上班操作,不应该有这样的数据记录,而经过与值班工人的质询,值班工人承认其上晚班时睡觉,没有及时处理。再往后,同样的问题再没有再次发生。
总结起来,笔者以为大数据思维的核心还是要落实到价值上,面向问题,收集足够量的数据,足够维度的数据,达到具有统计学意义,也可以满足企业生产、客户需求、甚至竞争的时效要求,而不是一味为了大数据而大数据,这样才是一种务实、有效的正确思维方式,是一线大数据的有效的项目推进方式,在这样的思维模式基础上,采取滚雪球方式,把大数据逐步展开,才真正赢来大数据百花齐放的春天。
二、大数据思维方式
大数据研究专家舍恩伯格指出,大数据时代,人们对待数据的思维方式会发生如下三个变化:
1)人们处理的数据从样本数据变成全部数据;
2)由于是全样本数据,人们不得不接受数据的混杂性,而放弃对精确性的追求;
3)人类通过对大数据的处理,放弃对因果关系的渴求,转而关注相关关系。
事实上,大数据时代带给人们的思维方式的深刻转变远不止上述三个方面。笔者认为,大数据思维最关键的转变在于从自然思维转向智能思维,使得大数据像具有生命力一样,获得类似于“人脑”的智能,甚至智慧。
1、总体思维
社会科学研究社会现象的总体特征,以往采样一直是主要数据获取手段,这是人类在无法获得总体数据信息条件下的无奈选择。在大数据时代,人们可以获得与分析更多的数据,甚至是与之相关的所有数据,而不再依赖于采样,从而可以带来更全面的认识,可以更清楚地发现样本无法揭示的细节信息。
正如舍恩伯格总结道:“我们总是习惯把统计抽样看作文明得以建立的牢固基石,就如同几何学定理和万有引力定律一样。但是,统计抽样其实只是为了在技术受限的特定时期,解决当时存在的一些特定问题而产生的,其历史不足一百年。如今,技术环境已经有了很大的改善。在大数据时代进行抽样分析就像是在汽车时代骑马一样。
在某些特定的情况下,我们依然可以使用样本分析法,但这不再是我们分析数据的主要方式。”也就是说,在大数据时代,随着数据收集、存储、分析技术的突破性发展,我们可以更加方便、快捷、动态地获得研究对象有关的所有数据,而不再因诸多限制不得不采用样本研究方法,相应地,思维方式也应该从样本思维转向总体思维,从而能够更加全面、立体、系统地认识总体状况。
2、容错思维
在小数据时代,由于收集的样本信息量比较少,所以必须确保记录下来的数据尽量结构化、精确化,否则,分析得出的结论在推及总体上就会“南辕北辙”,因此,就必须十分注重精确思维。然而,在大数据时代,得益于大数据技术的突破,大量的非结构化、异构化的数据能够得到储存和分析,这一方面提升了我们从数据中获取知识和洞见的能力,另一方面也对传统的精确思维造成了挑战。
舍恩伯格指出,“执迷于精确性是信息缺乏时代和模拟时代的产物。只有5%的数据是结构化且能适用于传统数据库的。如果不接受混乱,剩下95%的非结构化数据都无法利用,只有接受不精确性,我们才能打开一扇从未涉足的世界的窗户”。也就是说,在大数据时代,思维方式要从精确思维转向容错思维,当拥有海量即时数据时,绝对的精准不再是追求的主要目标,适当忽略微观层面上的精确度,容许一定程度的错误与混杂,反而可以在宏观层面拥有更好的知识和洞察力。
3、相关思维
在小数据世界中,人们往往执着于现象背后的因果关系,试图通过有限样本数据来剖析其中的内在机理。小数据的另一个缺陷就是有限的样本数据无法反映出事物之间的普遍性的相关关系。而在大数据时代,人们可以通过大数据技术挖掘出事物之间隐蔽的相关关系,获得更多的认知与洞见,运用这些认知与洞见就可以帮助我们捕捉现在和预测未来,而建立在相关关系分析基础上的预测正是大数据的核心议题。
通过关注线性的相关关系,以及复杂的非线性相关关系,可以帮助人们看到很多以前不曾注意的联系,还可以掌握以前无法理解的复杂技术和社会动态,相关关系甚至可以超越因果关系,成为我们了解这个世界的更好视角。舍恩伯格指出,大数据的出现让人们放弃了对因果关系的渴求,转而关注相关关系,人们只需知道“是什么”,而不用知道“为什么”。我们不必非得知道事物或现象背后的复杂深层原因,而只需要通过大数据分析获知“是什么”就意义非凡,这会给我们提供非常新颖且有价值的观点、信息和知识。也就是说,在大数据时代,思维方式要从因果思维转向相关思维,努力颠覆千百年来人类形成的传统思维模式和固有偏见,才能更好地分享大数据带来的深刻洞见。
4、智能思维
不断提高机器的自动化、智能化水平始终是人类社会长期不懈努力的方向。计算机的出现极大地推动了自动控制、人工智能和机器学习等新技术的发展,“机器人”研发也取得了突飞猛进的成果并开始一定应用。应该说,自进入到信息社会以来,人类社会的自动化、智能化水平已得到明显提升,但始终面临瓶颈而无法取得突破性进展,机器的思维方式仍属于线性、简单、物理的自然思维,智能水平仍不尽如人意。
但是,大数据时代的到来,可以为提升机器智能带来契机,因为大数据将有效推进机器思维方式由自然思维转向智能思维,这才是大数据思维转变的关键所在、核心内容。众所周知,人脑之所以具有智能、智慧,就在于它能够对周遭的数据信息进行全面收集、逻辑判断和归纳总结,获得有关事物或现象的认识与见解。同样,在大数据时代,随着物联网、云计算、社会计算、可视技术等的突破发展,大数据系统也能够自动地搜索所有相关的数据信息,并进而类似“人脑”一样主动、立体、逻辑地分析数据、做出判断、提供洞见,那么,无疑也就具有了类似人类的智能思维能力和预测未来的能力。
“智能、智慧”是大数据时代的显著特征,大数据时代的思维方式也要求从自然思维转向智能思维,不断提升机器或系统的社会计算能力和智能化水平,从而获得具有洞察力和新价值的东西,甚至类似于人类的“智慧”。
舍恩伯格指出,“大数据开启了一个重大的时代转型。就像望远镜让我们感受宇宙,显微镜让我们能够观测到微生物一样,大数据正在改变我们的生活以及理解世界的方式,成为新发明和新服务的源泉,而更多的改变正蓄势待发”。
大数据时代将带来深刻的思维转变,大数据不仅将改变每个人的日常生活和工作方式,改变商业组织和社会组织的运行方式,而且将从根本上奠定国家和社会治理的基础数据,彻底改变长期以来国家与社会诸多领域存在的“不可治理”状况,使得国家和社会治理更加透明、有效和智慧。