中企动力 > 商学院 > 什么是大数据架构
  • ?

    什么是大数据?如何成为大数据的技术大牛?

    昌醉蓝

    展开

    其实大数据并不是一种概念,而是一种方法论。简单来说,就是通过分析和挖掘全量的非抽样的数据辅助决策。大数据可以实现的应用可以概括为两个方向,一个是精准化定制,第二个是预测。比如像通过搜索引擎搜索同样的内容,每个人的结果却是大不相同的。再比如精准营销、百度的推广、淘宝的喜欢推荐,或者你到了一个地方,自动给你推荐周边的消费设施等等。

    目前市场对大数据相关人才的需求与日俱增,岗位的增多,也导致了大数据相关人才出现了供不应求的状况,从而引发了一波大数据学习的浪潮。大家可以先了解一下关于大数据相关的岗位分类,以及各个岗位需要掌握那些相对应的技能,并想清楚自己未来的发展方向,再开始着手针对岗位所需的技术进行学习与研究。所谓知己知彼,才能更好的达成目标嘛。

    大数据处理技术怎么学习呢?在做大数据开发之前,因为Hadoop是高层次的语言开发,需要懂得Java或者Python,很快的就能上手。所有的大数据生态架构都是基于linux系统的基础上的,所以你要有Linux系统的基本知识。如果你不懂Java或者Python还有Linux系统,那么这都是你必学的知识(Java或者Python可二选其一)。

    第一阶段

    Linux系统:因为大数据相关软件都是在Linux系统上运行的,所以Linux要学习的扎实一些,学好Linux对你快速掌握大数据相关技术会有很大的帮助,能让你更好的理解hadoop、hive、hbase、spark等大数据软件的运行环境和网络环境配置,能少踩很多坑,学会shell就能看懂脚本这样能更容易理解和配置大数据集群。还能让你对以后新出的大数据技术学习起来更快。

    鸟哥的Linux私房菜 是一本公认的Linux的入门书籍。

    第二阶段

    Python:Python 的排名从去年开始就借着人工智能持续上升,现在它已经成为了语言排行第一名。

    从学习难易度来看,作为一个为“优雅”而生的语言,Python语法简捷而清晰,对底层做了很好的封装,是一种很容易上手的高级语言。在一些习惯于底层程序开发的“硬核”程序员眼里,Python简直就是一种“伪代码”。

    在大数据和数据科学领域,Python几乎是万能的,任何集群架构软件都支持Python,Python也有很丰富的数据科学库,所以Python不得不学。

    第三阶段

    Hadoop:几乎已经成为大数据的代名词,所以这个是必学的。 Hadoop里面包括几个重要组件HDFS、MapReduce和YARN。

    Hadoop的核心就是HDFS和MapReduce,而两者只是理论基础,不是具体可使用的高级应用,通俗说MapReduce是一套从海量源数据提取分析元素最后返回结果集的编程模型,将文件分布式存储到硬盘是第一步,而从海量数据中提取分析我们需要的内容就是MapReduce做的事了。当然怎么分块分析,怎么做Reduce操作非常复杂,Hadoop已经提供了数据分析的实现,我们只需要编写简单的需求命令即可达成我们想要的数据。

    记住学到这里可以作为你学大数据的一个节点。

    Zookeeper:是一个分布式的,开放源码的分布式应用程序协调服务,也是个万金油,安装Hadoop的HA的时候就会用到它,以后的Hbase也会用到它。它一般用来存放一些相互协作的信息,这些信息比较小一般不会超过1M,都是使用它的软件对它有依赖,对于我们来讲只需要把它安装正确,让它正常的跑起来就可以了。

    Mysql:大数据的处理学完了,那么接下来要学习小数据的处理工具Mysql数据库,因为装hive的时候要用到,Mysql需要掌握到什么层度呢?你能在Linux上把它安装好,运行起来,会配置简单的权限,修改root的密码,创建数据库就可以了。这里主要的是学习SQL的语法,因为hive的语法和这个非常相似。

    Sqoop:这个是用于把Mysql里的数据导入到Hadoop里的。当然你也可以直接把Mysql数据表导出成文件再放到HDFS上也是可以的,但是生产环境中使用要注意Mysql的压力。

    Hive:这个东西对于会SQL语法的同学们来说就是神器,它能让你处理大数据变的很简单、明了,不会再费劲的编写MapReduce程序。有的人说Pig那?它和Pig相似掌握一个就可以了。

    Oozie:既然学会Hive了,我相信你一定需要这个,它可以帮你管理你的Hive或者MapReduce、Spark脚本,还能检查你的程序是否执行正确,如果出错给你发出报警并能帮你重试程序,最重要的是还能帮你配置任务的依赖关系。我相信你一定会喜欢它的,不然你看着那一大堆脚本,和密密麻麻的crond是不是有种“即将崩溃”的感觉。

    Hbase:这是Hadoop生态体系中的NOSQL数据库,他的数据是按照key和value的形式存储的并且key是唯一的,所以它能用来做数据的排重,它与MYSQL相比能存储的数据量大很多。所以他常被用于大数据处理完成之后的存储目的地。

    Kafka:这是个比较好用的队列工具,队列是干什么的?排队买票你知道不?数据多了同样也需要排队处理,我们可以利用这个工具来做线上实时数据的入库或入HDFS,这时你可以与一个叫Flume的工具配合使用,它是专门用来提供对数据进行简单处理,并写到各种数据接受方的。

    Spark:它是用来弥补基于MapReduce处理数据速度上的缺点,它的特点是把数据装载到内存中计算而不是去读硬盘。特别适合做迭代运算,所以算法流们特别喜欢它。它是用scala编写的。Java语言或者Scala都可以操作它,因为它们都是用JVM的。

    这些东西你都会了就成为一个专业的大数据开发工程师了,月薪3W都是毛毛雨啦。

    后续提高

    大数据结合人工智能达到真正的数据科学家,打通了数据科学的任督二脉,在公司是技术专家级别,这时候月薪再次翻倍且成为公司核心骨干。

    机器学习:是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。机器学习的算法基本比较固定了,学习起来相对容易。

    深度学习:深度学习的概念源于人工神经网络的研究,最近几年发展迅猛。深度学习应用的实例有AlphaGo、人脸识别、图像检测等。是国内外稀缺人才,但是深度学习相对比较难,算法更新也比较快,需要跟随有经验的老师学习。

    最快的学习方法,就是师从行业专家,学习老师多年积累的经验,自己少走弯路达到事半功倍的效果。自古以来,名师出高徒。

    分享 IT 技术和行业经验,请关注-技术学派。

  • ?

    什么是大数据?这些你都清楚吗

    沙鸥

    展开

    大数据,指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。大数据相关的创业有其独特性,创业者如何结合其特点,推出具有生命力的创业项目。所谓大数据就是从海量的互联网信息中通过运用统计学、概率论的原理,去伪存真得出有用信息经过云计算成为指导有关部门的决策依据!当然必须分门别类的收集大数据,政治、军事、经济、文化、社会、各行各业等等均有所侧重!

    大数据目前实际发展中存在:数据化程度低,各阶段发展不平衡,利益主体多元,复杂未来趋势,先采集,后互联,整体慢慢改,局部可突破。难点:体制破局、教师改造。国外教育培训行业中数据技术应用的现状,基本面临同样的问题。最终动力只能依靠学习者本身的需求和习惯养成,以及新技术带来的真正便利。

    大数据是对大量信息资源的统称,比如在教育方面,第一,大数据是教育领域的大数据,是面向特定教育主题的多类型、多维度、多形态的数据集合;第二,教育大数据是面向教育全过程的数据,通过数据挖掘和学习分析支持教育决策和个性化学习;第三,教育大数据是一种分布式计算架构方式,通过数据共享的各种支持技术达到共建共享的思想。

    大数据绝大多数大数据是非结构性的,其种类十分复杂,我们现在的技术手段还没法对此进行处理;再次是速度,数据产生和传送的频率非常快;最后是价值,从大量的低质量、低价值的数据中获取知识,犹如从大海中捞针,获取数据成本很高,但有待挖掘价值大。

  • ?

    都说大数据,你知道到底什么是大数据吗?

    莫幻嫣

    展开

    俺黑君够黑,慎关注!

    究竟什么是大数据?如何对大数据进行定义?大数据有哪些特征?了解了这些才能更好的知道自己学习是怎样的一门技术,以及它的前景如何。本文达妹就带大家一起了解大数据。

    DT时代,人人言必称大数据,所有的新系统几乎都是基于大数据,有人认为用了MongoDB就是大数据,也有人用了Hadoop就是大数据,或者认为数据量大就是大数据。

    更有甚者,笔者看到一篇新闻报道,说某企业成功实施大数据项目,结果只是SQL-Server集群……天呐,这可是上世纪的技术了!

    说了这么多到底什么是大数据呢,其实大数据并没有教科书式的明确定义,但是却有比较公认的特性描述,符合这些特性的就可以称作大数据,即大数据的4个V。

    第一个V——高容量

    这个最好理解,数据量一定要大,才好意思称自己为大数据嘛。大到什么程度呢?依目前行情来看,至少也要到TB级,很多案例都是PB甚至更高。但如果是GB级,非说自己是大数据也不是不可以,就是有点无颜见江东父老啊……

    第二个V——多样化

    这个很关键了!是区别于以往海量数据挖掘的最主要特征。它有两层含义,一是数据来源多样化,系统数据、设备日志、传感器、文件系统等等来源。二是数据结构多样化,这是核心特征!要包含结构化数据、非结构数据(包括所谓半结构化数据)。

    总结起来就是,多源异构。这就是为什么有人认为使用NoSQL数据库(如MongoDB)就是大数据了,因为满足了多样化的特征,但其实还不够。

    第三个V——高速

    即时效性,基本上至少也要达到亿级数据一秒查询,做的比较好的可以达到千亿级数据一秒查询。这个特征几乎决定了传统技术架构无法满足要求,因此Hadoop架构的出现催化了大数据的发展,也是有人认为Hadoop就是大数据的原因。

    第四个V——价值

    这个很好理解,数据一定要有价值、而后才能产生价值。就好比存商品的叫才能仓库,存垃圾的叫垃圾填满坑一样。没价值的数据就像一个垃圾填满坑,这也是为什么数据治理在大数据实施中非常重要的原因之一。

    最后,也是最重要的,以上4个V是逻辑与的关系,即需同时、注意是同时满足上述四个特征,就可以放心的说自己是大数据了!

    文版权归原作者所有。转载文章仅为传播更多信息之目的,如有侵权请与我们联系,我们将及时处理。

  • ?

    大数据时代的存储架构

    高乐瑶

    展开

    从“大数据”时代被宣称到来的那一天,至今日,数据量已经几何倍数的翻增,数据,已经渗透到当今每一个行业和业务职能领域,成为重要的生产因素。

    大数据的第一个特征是数据量大,大数据的起始计量单位至少是P、E甚至 ZB级别;第二个特征是数据类型繁多,包括网络日志、音频、视频、图片、地理位置信息等等。

    同时,海量多类型的数据对数据的处理能力提出了更高的要求,不仅要提供海量的数据存储空间,又要满足多种类文件的高效存储。

    目前,解决这种需求最常用的方式就是采用分布式存储系统。

    分布式存储存放的数据,包含数据和元数据信息,那么什么是数据和元数据呢?

    用户需要存放到存储设备的文件,就是数据

    数据有很多种类,日志、音频、视频、图片等,不同的文件大小是不同的。

    存储设备为了存放用户文件而生成的数据记录,就是元数据

    如果用户数据比喻成一本书,元数据就是这本书的目录。

    分布式存储依照存放数据和元数据的方式不同,分为全对称和非对称模式。

    全对称:所有的节点都会处理元数据,各个节点间实时同步元数据信息;

    非对称:我有元数据节点,元数据节点单独处理元数据信息,所有信息必须通过元数据节点进行管理。

    思考一个问题:当不同类型、不同大小的海量数据需要实时存储时,这两种架构会有怎样的情况发生?

    全对称:海量文件带来的海量元数据在各个节点间同步,带来了性能和带宽等瓶颈问题;

    非对称:元数据采用独立的节点,处理能力有限,不能很好的满足海量小文件的性能问题。

    如何解决这种问题呢?我做了一个大胆的设想,提出一种新的逆向思维解决方式,我把它叫做集群元数据后处理架构。

    每个存储节点管理一个虚拟磁盘MD,虚拟磁盘MD由多个存储节点的磁盘块按照一定的规律组合而成,几个存储节点形成一个冗余群组,群组内部统一元数据信息,单个节点采用SSD加速缓存,并在自身的存储空间中,保留一份元数据备份。

    客户端进行数据写入时,不再经过集群元数据节点,而是直接采用轮询方式写入存储节点,存储节点负责客户端元数据的建立、存储和同步。

    根据前面的架构,我们可以并行的高效的进行文件的写入操作,而不需要经过集群元数据节点,下面,我们来解决数据统一命名空间的文件读取问题,我把这种读取分为二种模式:

    本地用户文件读取:客户端自身存放的文件,可以通过直接访问数据节点的方式,获取数据,避免元数据节点瓶颈和减轻元数据节点压力;

    其他用户文件读取:通过元数据集群,获取目录信息后访问数据节点。

    图示可以看到,元数据通过这种方式,进行统一模式的集中处理,并可以根据应用需求进行数据索引,提升访问效率。

    总结:

    我把这种模式称为:分布式存储 – 集群元数据分层处理架构。更多编程知识详询462403503共同学习。

  • ?

    资深数据大牛深度解析:大数据底层架构!

    Nystad

    展开

    随着公司业务的增长,大量和业务、流程、规则相关的半结构化数据也爆发式增长。但数据分散在公司的各个系统中,如何将它们汇总并形成统一的企业级数据仓库,使企业灵活,高效的运用成了难题。

    如需将分散的各个底层数据汇总则需建立完整的体系,支撑风控的大数据框架则是重中之重。

    拥有5000万+注册用户;13亿+设备标签;100亿+行为数据;1500万+行业关注名单等海量多维数据的拍拍信则是从这几个方面落实:

    1. 数据采集

    面对来源各异、以结构化/半结构化为主的数据,我们使用linkedin开源的camus来采集消息类数据,使用kettle来采集RMDB的数据。

    2. 数据储存

    将采集到的原始数据存储到hadoop集群的分布式文件系统中。此外,基于hdfs文件系统对小文件并不是很友好的前提下,定期对历史文件进行合并、压缩、归档的操作也很有必要。

    3. 离线处理

    数据的离线处理则是一个非常大的话题,相当多的工作量都在这里,但它的价值却往往不会马上得到体现,从而被企业忽视。不仅仅包含以下这些内容:

    l 构建并不停地丰富数据仓库

    参照传统的ODS,DW,DM将数仓分层,对数据进行加密、去重后分门别类,持续不断的坚持做这件事。

    l 管理元数据

    建立数据字典,统一数据编码,描绘数据血缘等。

    l 检测数据质量

    从众数、少数、中位数、平均值等多维度来检测和把握数据的质量。

    4. 流式处理

    我们使用spark streaming将特征工程、模型结果计算与流式处理相结合,提供秒级的输出。甚至成功的将类似RNN(循环神经网络)这样的深度学习计算添加到整个流式处理的过程中。

    5. 数据可视化

    使用不同的工具以满足不同场景、不同职责的人员对数据的使用。不仅仅包含以下这些内容:

    l 数据的即席查询

    懂SQL、随意组合查询条件,进行自助查询,可以忍受分钟级的耗时。

    l 多维分析

    不懂SQL的情况下,在给定的维度和指标下,随意组合,并在秒级得到查询结果。

    l 静态报表

    只关注关键性指标。

    l 数据分析挖掘

    会使用像python、R这样的语言,结合集群的Spark、hive这样的分布式处理工具,对数据进行更深层次的利用。

    经过处理的底层大数据相对于以往,在实际业务中使源数据种类更丰富,数据量更多, 借助集群的助力,处理速度更快,回溯时间更久远。

    实际运用:

    模型训练:风控模型是互联网金融,传统金融等行业在风控流程中不可或缺的环节。

    模型应用:将模型与流式计算相结合,提供秒级的风控决策。

    数据产品:对数据加工处理,产生像多头、风险名单一类的数据产品。

    常用业务:企业在日常工作中各个环节都涉及到数据如:处理数据,更新数据,数据调用,查询日志等。

    运用大数据架构前后比对:

    在进行大数据框架搭建时还需注意以下几点:

    现在即使在同一细分领域,也有很多开源技术可供选择,请尽量选用相对成熟,社区活跃的;能选用开源的,尽量避免自研;另外代码如果要维护自己分支,请特别要谨慎,避免与社区越走越远;hadoop最初并没有太多的考虑数据安全方面,这点要自己加强;高稳定性和高性能往往一个是鱼,一个是熊掌,请考虑好取舍。

    本期对大数据底层架构的分享就到这里,欢迎大家联系探讨。

    本文为拍拍信原创,未经许可,禁止转载,侵权必究。申请授权,请联系我们。

    感谢您对拍拍信的认可与支持

    我们一直在路上

  • ?

    老司机四个问题告诉你,你离大数据架构师有多远?

    山雁

    展开

    1.作为企业架构师,我们为什么需要构建数据结构?

    数据结构主要有以下内容:

    1)数据标准不一致  

    2)数据模型管理混乱  

    3)深入的性能的问题无法解决  

    4)SQL语句编写水平不高导致出现严重性能问题  

    5)开发人员对执行计划收悉  

    6)上线前缺乏审计  

    7)相对复杂的数据处理能力欠缺  

    8)数据质量差需要执行数据质量管理

    数据是客户的财富,虽然对于我们开发人员一文不值,在客户那里就是无价之宝,保障数据的完成性,安全性,可靠性,必须要存在数据结构满足8大要求。

    2.结合自身,说一下你离架构师有多远,还需要掌握哪些技术?

    架构师首先有很多方向,作为架构师必须具有丰富的开发经验,是个技术主管。

    因为他必须清楚什么是可以实现的,实现的方式有哪些,相应的难度怎么样,实现出来的系统面对需求变化的适应性等一系列指标。

    另外,需要对面向过程、面向对象、面向服务等设计理念有深刻的理解,可以快速的察觉出实现中的问题并提出相应的改进(重构)方案(也就是通常说的反模式)。

    这些都需要长期的开发实践才能真正的体会到,单从书本上很难领会到,就算当时理解了也不一定能融会到实践中去。

    在技术能力上,软件架构师最重要也是最需要掌握的知识是构件通信机制方面的知识,包括进程内通信(对象访问、函数调用、数据交换、线程同步等)以及进程外(包括跨计算机)的通信(如RMI、DCOM、Web Service)。

    在WEB应用大行其道的今天,开发者往往对服务器间的通信关注的比较多,而对进程内的通信较少关注。进程外跨机器通信是构建分布式应用的基石,它是架构设计中的鸟瞰视图;而进程内的通信是模块实现的骨架,它是基石的基石。

    如果具体到一个基于.Net企业级架构设计,首先需要的是语言级别的认识,包括.NET的CLR、继承特性、委托和事件处理等。然后是常用解决方案的认识,包括ASP.NET Web Service、.NET Remoting、企业服务组件等。

    总之,丰富的开发实践经验有助于避免架构师纸上谈兵式的高来高去,给代码编写人员带来实实在在的可行性。

    其次,具有足够的行业业务知识和商业头脑也是很重要的。行业业务知识的足够把握可以给架构师更多的拥抱变化的能力,可以在系统设计的时候留出一些扩展的余地来适应可能来临的需求变化。

    有经验的设计人员可能都碰到过这样的事,一厢情愿的保留接口在需求变化中的命中率非常低。也就是说,在系统设计之初为扩展性留下来的系统接口没能在需求变化的洪流中发挥真正的作用,因为需求的变化并没有按照预想的方向进行,到最后还是不得不为变化的业务重新设计系统。

    这就是因为对业务知识的理解和对市场或者商业的判断没有达到一个实用的、可以为架构扩展性服务的水平。

    再次,架构设计师对人的关注必须提升到架构设计之初来纳入考虑的范围,包括沟通以及对人员素质的判断。软件过程是团队协作共同构建系统的过程,沟通能力是将整个过程中多条开发线粘合在一起的胶水。

    大家都应该碰到过事后说“原来是这样啊,我不知道啊”或者某个开发人员突然高声呼喊“为什么这里的数据没有了”之类的。沟通的目的就是尽量避免多条开发线的混乱,让系统构建过程可以有条理的高效进行。

    另外,对人的关注还表现在对团队成员的素质判断上,比如哪些开发人员对哪些技术更熟悉,或者哪些开发人员容易拖进度等。只有合理的使用人力资源,让合适的人做合适的事情才能让整个软件过程更加高效。

    架构师应时刻注意新软件设计和开发方面的发展情况,并不断探索更有效的新方法、开发语言、设计模式和开发平台不断很快地升级,软件架构师需要吸收这些新技术新知识,并将它们用于软件系统开发工作中。但对新技术的探索应该在一个理性的范围内进行,不能盲目的跟风。

    解决方案提供商永远都希望你能使用它提供的最新技术,而且它们在推广自己的解决方案的时候往往是以自己的产品为中心,容易给人错觉。

    比如数据库,往往让人觉得它什么都能做,只要有了它其它什么都不重要了。但事实上并不是如此,对于小型应用可以将许多业务逻辑用script的方式放入数据库中,但很少看到大型应用采用这样的做法。

    对于新东西需要以一种比较的观点来判断,包括横向的比较和纵向的比较,最后得出一些性能、可移植性以及可升级等指标。另外,新入行的开发人员往往关心新技术动向而忽略了技术的历史,而从DOS时代一路杀过来的开发者就对现在的技术体系有较全面的把握。

    3.如果你应聘架构师方面的工作,那么你认为设计架构具体都做些什么呢?

    1):确认需求

      在项目开发过程中,架构师是在需求规格说明书完成后介入的,需求规格说明书必须得到架构师的认可。架构师需要和分析人员反复交流,以保证自己完整并准确地理解用户需求。

      2):系统分解

      依据用户需求,架构师将系统整体分解为更小的子系统和组件,从而形成不同的逻辑层或服务。随后,架构师会确定各层的接口,层与层相互之间的关系。架构师不仅要对整个系统分层,进行“纵向”分解,还要对同一逻辑层分块,进行“横向”分解。

      软件架构师的功力基本体现于此,这是一项相对复杂的工作。

      3):技术选型

      架构师通过对系统的一系列的分解,最终形成了软件的整体架构。技术选择主要取决于软件架构。

      Web Server运行在Windows上还是Linux上?数据库采用MSSql、Oracle还是Mysql?需要不需要采用MVC或者Spring等轻量级的框架?前端采用富客户端还是瘦客户端方式?类似的工作,都需要在这个阶段提出,并进行评估。

      架构师对产品和技术的选型仅仅限于评估,没有决定权,最终的决定权归项目经理。架构师提出的技术方案为项目经理提供了重要的参考信息,项目经理会从项目预算、人力资源、时间进度等实际情况进行权衡,最终进行确认。

      4):制定技术规格说明

      架构师在项目开发过程中,是技术权威。他需要协调所有的开发人员,与开发人员一直保持沟通,始终保证开发者依照它的架构意图去实现各项功能。

      架构师不仅要保持与开发者的沟通,也需要与项目经理、需求分析员,甚至与最终用户保持沟通。所以,对于架构师来讲,不仅有技术方面的要求,还有人际交流方面的要求。

    4.如果在一个成熟的企业里没有你所想象的架构师呢?或者说,架构师这种职业已经死亡或消失了呢?你会怎么定位你的职业?

    如果在一个企业里没有架构师,那么我可以推动自己往这个方向努力发展。

    如果在这个行业里不存在架构师,我想软件领域开发的软件质量应该也会存在很多问题。

    没有架构师或者自己已经从事了架构师这个职位有了危机以后,我想对自己的职位依然做个肯定,因为业务永远会随着客户的需求存在,

    既然有客户需求,业务就会产生,有业务产生,那必然少不了技术实现,可以做技术方案指导,都是很好的方向。

  • ?

    什么是大数据?大数据应用在哪些地方

    逍遥神

    展开

    大家好,今天带大家了解大数据。对于外行来说,大数据名词听起来很高端、大气。却很抽象,让人无法理解。但作为编程人员、数据库管理员,大数据是需要详细了解的。这将会成为你们未来的发展方向。

    首先简介一下大数据能干什么?大家都知道,我们在淘宝购物。需要注册帐号,然后选购商品、加入购物车、付款发货、货物的物流信息等等。这些信息在电脑里被称为数据。产生的数据都会存储到淘宝的服务器里。每天数以亿计的数据,被存储到淘宝服务器里。由于这些数据很庞大,所以被称为大数据。再根据基础大数据,在后台进行智能分析。就能分析出指定用户的购物喜好。某些产品的销售量等等信息。然后通过挖掘大数据的结果,向用户推送指定商品。这就是大数据时代,给你我带来的便利。

    由于大数据里有海量的数据,存储和分析这些数据最主要就是要解决效率的问题。如何快速存储和分析海量的数据?目前都采用了一些什么技术?带着这些问题。我来讲一下,需要充电学习的方面。首先java语言是必须精通掌握的基础,用于大数据开发。接下来必须了解网络编程,mysql等数据库。再进一步学习,就需要了解集群技术。因为海量的数据需要采用多个数据库来进行存储和处理。即分布式存储。目前解决的方案,是采用hadoop架构。Hadoop实现一个分布式存储,具有高容错性、高吞吐量来访问应用程序的数据,适合超大数据集的应用程序。Hadoop的高吞吐,海量数据处理的能力使人们可以方便地处理海量数据。但hadoop不擅长实时计算,另一项大数据技术storm由此而生。他具有实时的数据处理能力。比如你昨天在淘宝买了一双鞋,今天你想买一顶帽子。而大数据分析的结果还是昨天的,系统不断的在向你推荐鞋子。而不去考虑你今天的需求。使用了storm技术,就会实时的分析你的需求,系统就会根据结果,向你推荐帽子。大数据的另一项技术Apache spark是一个围绕速度、易用性和复杂分析构建的大数据处理框架。用于配合hadoop和storm技术处理大数据。通过并行化地计算,加快的大数据的处理。

    大数据的另一方向就是机器学习,要想得到一个高效的机器学习系统。就需要先用少量的数据去训练它。在少量的数据下机器学习系统不出错。再加大学习量,最终就能通过反复测试上线。大数据下的机器学习需要很多学习样本,在大量的学习样本下。机器可以类似于人工一样筛选,分析处理得到有用的数据,最终将结果反馈给用户。机器学习要掌握R语言、python和mahout技术。机器学习应用前景很广,不只是大数据可以使用。可能会成为未来程序员必修的课程。

  • ?

    什么是大数据?你需要知道的一切

    毕半邪

    展开

    大数据定义

    一般而言,大数据是指数量庞大且复杂的数据集,以至于传统的数据处理软件无法在合理的时间内捕获,管理和处理数据。

    这些大数据集可以包括结构化,非结构化和半结构化数据,每个数据都可以挖掘出价值潜力。

    究竟有多少数据实际上构成“大”呢是有争议的,但它通常可能是PB级的倍数,可能对应于EB级的数据。(1EB=1024PB 1PB=1024TB 1TB=1024GB)

    大数据通常以三个特征:

    极端的数据量广泛的多种类型的数据能够加工处理的数据

    构成大数据存储的数据可以来自网站,社交媒体,桌面和移动应用,科学实验以及物联网中越来越多的传感器和其他设备。

    大数据和分析

    大数据分析工具

    真正能够从所有大数据中获得价值的是应用于数据的分析。没有分析,这仅仅只是一堆数据。

    数据分析包括检查数据集以获得见解或得出数据中的有价值内容。

    通过分析数据可以做出更明智的业务决策,例如何时何地进行营销活动或引入新产品或服务。

    分析可以指基本的商业分析或更高级的预测性分析,例如科学机构使用的分析。在最先进的数据分析类型中,数据挖掘是分析师评估大型数据集来发现看似无关事务之间关系的一种方式。

    IT中的架构来支持大数据

    对于大数据工作,团队需要有适当的设备来收集和存储数据,提供对数据的访问,并在存储和传输过程中保护信息。

    由于公司希望继续利以数据为中心的投资,因此大部分基于大数据的架构可能都是公司内部自己部署的。但越来越多的机构依靠云计算服务来处理大部分大数据需求。

    数据收集需要有数据源。其中很多,如网络应用程序,社交媒体渠道,移动应用程序和电子邮件已经成为了重要的几个数据源。但随着物联网逐渐成熟,企业可能需要在各种设备和产品上部署传感器来收集数据,并生成用户对应的数据。

    为了存储所有传入的数据,大数据需要有适当的数据存储方式。存储方式包括传统的数据仓库,数据池和基于云的存储。

    以上这些关于大数据的基本知识你get到了吗。

  • ?

    什么叫大数据分析

    Page

    展开

    大数据行业发展如火如荼,国家政策利好,互联网大佬纷纷在大数据行业布局,我们想让自己的职业生涯在一个朝阳行业发展,肯定又要学习相关技术,让自己与时俱进,但是难就难在大数据是一个新兴事物,目前我国大学的专业里面还鲜少有这个专业,国家刚批的大数据专业,全国目前35个高校,但是从17年开始招生,2021年才有第一批毕业生进入职场,在四年期间,是大数据行业发展的飞速时期,没有行业发展是等着人才进入的,而是需要要虚位以待、蓄势待发,所以在没有高等教育准备好的大数据教育,如何高效的学习大数据,如何快速的与行业发展想契合,那么需要我们成为第一个吃螃蟹的人,作为一个随着大数据行业成长的职业人,首先要知道大数据是个啥?

    大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

    那来帮大家分析下:如何高效的学习大数据。

    经常有初学者会问,自己想往大数据方向发展,该学哪些技术,学习路线是什么样的,觉得大数据很火,就业很好,薪资很高……首先,如果你确定了想往这个方面发展,先考虑自己的过去从业经历、专业、兴趣是什么。计算机专业——操作系统、硬件、网络、服务器?软件专业——软件开发、编程、写代码?还是数学、统计学专业——对数据和数字特别感兴趣?

    那么你能找师傅带吗?

    但凡有这种想法的人,或多或少都会存有侥幸之心,或者叫做“天真,单纯”。希望不花一分钱,就能更快速的学到更优质,更实用的技能。

    关于这一点,我只想反问一句你:“如果你是大师,你凭什么愿意带我?”

    其实这就是想告诉你大数据的三个发展方向,平台搭建/优化/运维/监控、大数据开发/设计/架构、数据分析/挖掘。

    先说一下大数据的4V特征:

    数据量大,TB->PB

    数据类型繁多,结构化、非结构化文本、日志、视频、图片、地理位置等;

    商业价值高,但是这种价值需要在海量数据之上,通过数据分析与机器学习更快速的挖掘出来;

    处理时效性高,海量数据的处理需求不再局限在离线计算当中。

    现如今,正式为了应对大数据的这几个特点,开源的大数据框架越来越多,越来越强,先列举一些常见的:

    文件存储:Hadoop HDFS、Tachyon、KFS

    离线计算:Hadoop MapReduce、Spark

    流式、实时计算:Storm、Spark Streaming、S4、Heron

    K-V、NOSQL数据库:HBase、Redis、MongoDB

    资源管理:YARN、Mesos

    日志收集:Flume、Scribe、Logstash、Kibana

    消息系统:Kafka、StormMQ、ZeroMQ、RabbitMQ

    查询分析:Hive、Impala、Pig、Presto、Phoenix、SparkSQL、Drill、Flink、Kylin、Druid

    分布式协调服务:Zookeeper

    集群管理与监控:Ambari、Ganglia、Nagios、Cloudera Manager

    数据挖掘、机器学习:Mahout、Spark MLLib

    数据同步:Sqoop

    任务调度:Oozie

    ······

    第一步:初识Hadoop

    1.1 学会百度与Google

    不论遇到什么问题,先试试搜索并自己解决。

    Google首选,翻不过去的,就用百度吧。

    1.2 参考资料首选官方文档

    特别是对于入门来说,官方文档永远是首选文档。

    相信搞这块的大多是文化人,英文凑合就行,实在看不下去的,请参考第一步。

    1.3 先让Hadoop跑起来

    Hadoop可以算是大数据存储和计算的开山鼻祖,现在大多开源的大数据框架都依赖Hadoop或者与它能很好的兼容。

    关于Hadoop,你至少需要搞清楚以下是什么:

    · Hadoop 1.0、Hadoop 2.0

    · MapReduce、HDFS

    · NameNode、DataNode

    · JobTracker、TaskTracker

    · Yarn、ResourceManager、NodeManager

    自己搭建Hadoop,请使用第一步和第二步,能让它跑起来就行。

    建议先使用安装包命令行安装,不要使用管理工具安装。

    另外:Hadoop1.0知道它就行了,现在都用Hadoop 2.0.

    1.4 尝试使用Hadoop

    · HDFS目录操作命令;

    · 上传、下载文件命令;

    · 提交运行MapReduce示例程序;

    · 打开Hadoop WEB界面,查看Job运行状态,查看Job运行日志。

    · 知道Hadoop的系统日志在哪里。

    1.5了解它们的原理

    MapReduce:如何分而治之;

    HDFS:数据到底在哪里,什么是副本;

    Yarn到底是什么,它能干什么;

    NameNode到底在干些什么;

    ResourceManager到底在干些什么;

    1.6 自己写一个MapReduce程序

    仿照WordCount例子,自己写一个(照抄也行)WordCount程序,

    打包并提交到Hadoop运行。

    不会Java的话,Shell、Python都可以,有个东西叫Hadoop Streaming。

    如果能认真完成了以上几步,恭喜你,你的一只脚已经进来了。

    第二步:更高效的WordCount

    2.1 学点SQL吧

    如果不懂数据库的童鞋先学习使用SQL句。

    2.2 SQL版WordCount

    在1.6中,你写(或者抄)的WordCount一共有几行代码?

    如果用SQL的话:

    SELECT word,COUNT(1) FROM wordcount GROUP BY word;

    这便是SQL的魅力,编程需要几十行,甚至上百行代码,SQL一句就搞定;使用SQL处理分析Hadoop上的数据,方便、高效、易上手、更是趋势。不论是离线计算还是实时计算,越来越多的大数据处理框架都在积极提供SQL接口。

    2.3 安装配置Hive

    Hive算是数据仓库工具,安装不难,网上有很多教程,配置完成后,可以正常进入Hive命令行。

    2.4 试试使用Hive

    尝试在Hive中创建wordcount表,并运行2.2中的SQL语句。在Hadoop WEB界面中找到刚才运行的SQL任务。看SQL查询结果是否和1.4中MapReduce中的结果一致。

    明明写的是SQL,为什么Hadoop WEB界面中看到的是MapReduce任务?

    2.5 学会Hive的基本命令

    创建、删除表;加载数据到表;下载Hive表的数据;并学习更多关于Hive的语法和命令。

    0和Hadoop2.0的区别

    MapReduce的原理(还是那个经典的题目,一个10G大小的文件,给定1G大小的内存,如何使用Java程序统计出现次数最多的10个单词及次数);

    HDFS读写数据的流程;向HDFS中PUT数据;从HDFS中下载数据;

    自己会写简单的MapReduce程序,运行出现问题,知道在哪里查看日志;

    会写简单的SELECT、WHERE、GROUP BY等SQL语句;

    Hive SQL转换成MapReduce的大致流程;

    Hive中常见的语句:创建表、删除表、往表中加载数据、分区、将表中数据下载到本地;

    从上面的学习,你已经了解到,HDFS是Hadoop提供的分布式存储框架,它可以用来存储海量数据,MapReduce是Hadoop提供的分布式计算框架,它可以用来统计和分析HDFS上的海量数据,而Hive则是SQL On Hadoop,Hive提供了SQL接口,开发人员只需要编写简单易上手的SQL语句,Hive负责把SQL翻译成MapReduce,提交运行。

    第三步:把别处的数据搞到Hadoop上

    此处也可以叫做数据采集,把各个数据源的数据采集到Hadoop上。

    3.1 HDFS PUT命令

    put命令在实际环境中也比较常用,通常配合shell、python等脚本语言来使用。建议需熟练掌握。

    3.2 HDFS API

    HDFS提供了写数据的API,自己用编程语言将数据写入HDFS,put命令本身也是使用API。

    实际环境中一般自己较少编写程序使用API来写数据到HDFS,通常都是使用其他框架封装好的方法。比如:Hive中的INSERT语句,Spark中的saveAsTextfile等。

    可以尝试了解原理,试着写几个Demo。

    3.3 Sqoop

    Sqoop是一个主要用于Hadoop/Hive与传统关系型数据库Oracle/MySQL/SQLServer等之间进行数据交换的开源框架。

    就像Hive把SQL翻译成MapReduce一样,Sqoop把你指定的参数翻译成MapReduce,提交到Hadoop运行,完成Hadoop与其他数据库之间的数据交换。

    自己下载和配置Sqoop(建议先使用Sqoop1,Sqoop2比较复杂)。

    了解Sqoop常用的配置参数和方法。

    使用Sqoop完成从MySQL同步数据到HDFS;

    使用Sqoop完成从MySQL同步数据到Hive表;

    PS:如果后续选型确定使用Sqoop作为数据交换工具,那么建议熟练掌握,否则,了解和会用Demo即可。

    3.4 Flume

    Flume是一个分布式的海量日志采集和传输框架,因为“采集和传输框架”,所以它并不适合关系型数据库的数据采集和传输。Flume可以实时的从网络协议、消息系统、文件系统采集日志,并传输到HDFS上。因此,如果你的业务有这些数据源的数据,并且需要实时的采集,那么就应该考虑使用Flume。

    下载和配置Flume。使用Flume监控一个不断追加数据的文件,并将数据传输到HDFS;

    PS:Flume的配置和使用较为复杂,如果你没有足够的兴趣和耐心,可以先跳过Flume。

    3.5 阿里开源的DataX

    之所以介绍这个,是因为以前某公司客户目前使用的Hadoop与关系型数据库数据交换的工具,就是之前基于DataX开发的,个人感觉非常好用。现在DataX已经是3.0版本,支持很多数据源。你也可以在其之上做二次开发。

    PS:有兴趣的可以研究和使用一下,对比一下它与Sqoop。

    至此,你的“大数据平台”应该是这样的:

    第四步:把Hadoop上的数据搞到别处去

    前面介绍了如何把数据源的数据采集到Hadoop上,数据到Hadoop上之后,便可以使用Hive和MapReduce进行分析了。那么接下来的问题是,分析完的结果如何从Hadoop上同步到其他系统和应用中去呢?

    其实此处的方法和第三步基本一致的。

    4.1 HDFS GET命令

    把HDFS上的文件GET到本地。需要熟练掌握。

    4.2 HDFS API

    原理同3.2。

    4.3 Sqoop

    原理同3.3。

    使用Sqoop完成将HDFS上的文件同步到MySQL;

    使用Sqoop完成将Hive表中的数据同步到MySQL;

    4.4 DataX

    原理同3.4

    此时,“你的大数据平台”应该是这样的:

    走完第三步和第四步的流程,那么你应该已经具备以下技能和知识点:

    · 知道如何把已有的数据采集到HDFS上,包括离线采集和实时采集;

    · 知道sqoop(或者还有DataX)是HDFS和其他数据源之间的数据交换工具;

    · 知道flume可以用作实时的日志采集;

    至此,对于大数据平台,应该已经掌握如何搭建Hadoop集群,把数据采集到Hadoop上,使用Hive和MapReduce来分析数据,把分析结果同步到其他数据源。

    接下来的问题就是,Hive使用的越来越多,你会发现很多不愉快的地方,特别是速度慢,

    大多情况下,明明我的数据量很小,它都要申请资源,启动MapReduce来执行。

    第五步:快一点吧,我的SQL

    其实大家都已经发现Hive后台使用MapReduce作为执行引擎,实在是有点慢。因此SQL On Hadoop的框架越来越多,按我的了解,最常用的按照流行度依次为SparkSQL、Impala和Presto.这三种框架基于半内存或者全内存,提供了SQL接口来快速查询分析Hadoop上的数据。

    目前我们的方案使用的是SparkSQL,至于为什么用SparkSQL,原因大概如下:

    · 使用Spark还做了其他事情,不想引入过多的框架;

    · Impala对内存的需求太大,没有过多资源部署;

    5.1 关于Spark和SparkSQL

    什么是Spark,什么是SparkSQL。

    Spark有的核心概念及名词解释。

    SparkSQL和Spark是什么关系,SparkSQL和Hive是什么关系。

    5.2 如何部署和运行SparkSQL

    Spark有哪些部署模式?

    如何在Yarn上运行SparkSQL?

    使用SparkSQL查询Hive中的表。

    PS:Spark不是一门短时间内就能掌握的技术,因此建议在了解了Spark之后,可以先从SparkSQL入手,循序渐进。

    第六步:一夫多妻制

    其实我想说的是数据的一次采集、多次消费。

    在实际业务场景下,特别是对于一些监控日志,想即时的从日志中了解一些指标(关于实时计算,后面步节会有介绍),这时候,从HDFS上分析就太慢了,尽管是通过Flume采集的,但Flume也不能间隔很短就往HDFS上滚动文件,这样会导致小文件特别多。

    为了满足数据的一次采集、多次消费的需求,这里要说的便是Kafka。

    6.1 关于Kafka

    Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

    6.2 如何部署和使用Kafka

    使用单机部署Kafka,并成功运行自带的生产者和消费者例子。

    使用Java程序自己编写并运行生产者和消费者程序。

    Flume和Kafka的集成,使用Flume监控日志,并将日志数据实时发送至Kafka。

    至此,“大数据平台”应该扩充成这样:

    这时,使用Flume采集的数据,不是直接到HDFS上,而是先到Kafka,Kafka中的数据可以由多个消费者同时消费,其中一个消费者,就是将数据同步到HDFS。

    总结:

    为什么Spark比MapReduce快。

    使用SparkSQL代替Hive,更快的运行SQL。

    使用Kafka完成数据的一次收集,多次消费架构。

    自己可以写程序完成Kafka的生产者和消费者。

    前面的学习已经掌握了大数据平台中的数据采集、数据存储和计算、数据交换等大部分技能,而这其中的每一步,都需要一个任务(程序)来完成,各个任务...

  • ?

    五个顶级的大数据架构

    Naomi

    展开

    自从像AWS这样的公共云产品开辟了大数据分析功能以来,小企业通过挖掘大量的数据做到只有大企业才能做到的事情,至今大约有10年时间。这些事情其中包括网络日志、客户购买记录等,并通过按使需付费的方式提供低成本的商品集群。在这十年中,这些产品蓬勃发展,涵盖了从实时(亚秒级延迟)流媒体式分析到用于分析批量模式工作的企业数据仓库,而企业数据仓库则可能需要数天或数周才能完成。

    以下将介绍用于大数据堆栈的五个最有用的架构,以及每个架构的优点,以便更好地理解和权衡。此外,还对成本(按$ - $$$$$的规模)、何时使用、热门产品,以及每种架构的提示和技巧进行了阐述。

    五个大数据架构

    在此并没有什么特别的顺序,用户在AWS公共云旅程中可能遇到的五个顶级大数据架构是:

    流媒体- 允许摄取(并可能分析)任务关键型实时数据,这些数据可能会以爆发的形式出现在用户面前。通用(或特定)的批处理集群—在可扩展、经济高效的集群中提供通用存储和计算功能,可以执行其他四种架构的任何和所有功能。NoSQL引擎 - 使架构师能够处理“3V” —高速度、高容量,以及底层数据的多样性/可变性。企业数据仓库(EDW) - 允许组织为多年的历史数据维护一个单独的数据库,并对该数据运行各种长期运行的分析。就地分析 - 允许用户将数据“就地”保存在低成本存储引擎中,并针对该数据运行高性能的即席查询,而无需创建单独的、昂贵的“集群”。

    1. 流媒体

    流媒体解决方案由以下多个因素定义:

    关键任务数据—即使丢失一笔交易也会给用户带来灾难性的后果。负载中的爆发尖峰——物联网的基础设施可能会从完全无声的状态转变为同时与其通话设备中的一个。实时响应 - 高延迟响应对用户来说可能是灾难性的。

    这里有很多现实世界的例子,从特斯拉公司的电动汽车(基本上是移动的4G设备)不断将汽车的位置发送到数据中心,通知司机下一个充电站在哪里。此外,人们喜欢的日本一家高度自动化的寿司专营店:Sushiro。Sushiro所做的是将RFID传感器放在每个寿司盘底,然后,寿司传送带上的传感器跟踪每个盘子的动态,将数据点发送到AWS Kinesis,其后端响应仪表板的更新,通知寿司厨师,例如“丢掉即将过期变质的食物,或者制作更多的鸡蛋寿司,或者解冻更多的金枪鱼”,通过使用流媒体技术,该连锁店不仅有上述的实时效率推荐,而且还可以获得每家餐厅的历史信息,并且可以了解顾客购买的趋势。

    Sushiro是一个很好的例子,因为它符合流媒体的所有三个要求。其仪表板现在对业务运营至关重要。

    成本:$$ - $$$$$(通常为RAM密集型)适用性:任务关键型数据,负载爆发尖峰,实时响应。用户需要构建KPI的实时仪表板。注意事项:独立的流媒体解决方案的构建和维护成本很高。扩展可能具有挑战性,特别是如果在EC2上构建。失败对企业来说可能是灾难性的,但大多数产品都提供故障保护,例如复制优化、备份和灾难恢复,以避免这种情况。受欢迎的产品:Kinesis(托管服务),Kafka(基于EC2),Spark Streaming(作为托管服务和基于EC2)和Storm。提示和技巧:使用Kinesis作为初学者(易于使用、体积小、成本低)。许多组织转向基于EC2的Kafka(如果他们只需要流媒体)或Spark Streaming,以获得更好的控制,并降低大批量成本。这是AWS中为数不多的几次托管任务,像Kinesis这样的托管服务最终会比基于EC2的Kafka解决方案花费更多的费用。

    2. 通用(或特定)的批处理集群

    使用Hadoop/Spark这些系统,用户可以获得高度可扩展、低成本(商用硬件和开源软件)存储和计算,这些存储和计算可能会遇到大量问题,从而以尽可能低的成本对数据进行批量分析。

    Hadoop技术非常成熟,提供了一个非常丰富的软件生态系统,可以利用这些通用计算和存储资源提供从数据仓库到流媒体,甚至NoSQL的所有内容。

    在Hadoop之上,现在可以运行Spark,它带有自己的可扩展框架,以低延迟(高内存)方式提供上述所有功能,甚至适用于流媒体和NoSQL。

    成本:$ - $$$$(高度依赖于内存需求)适用性:最低成本、最大灵活性。如果希望采用一个集群完成所有任务,并从Hadoop或Spark内部部署转移,那么这是一个不错的选择,非常适合机器学习。注意事项:一个全能的系统很少把每件事都做好,但这可以通过使用Spark和为每个工作量身定制的集群来大大减轻工作负荷。热门产品:EMR(托管服务,也将运行Spark),Cloudera(基于EC2),Hortonworks(通过EMR作为托管服务,基于EC2)。提示和技巧:在S3存储桶中长期存储源数据,构建集群,并根据需要将数据加载到集群中,然后在分析任务完成后立即关闭所有数据。这实际上正是默认情况下EMR的工作原理,但即使使用的是Cloudera或Hortonworks(现在功能几乎相同),也可以轻松编写上述所有内容。利用EC2现场实例可以节省80%-90%的成本,并检查自己的分析,以便可以向上或向下旋转集群。以利用成本最低的spot窗口。

    3. NoSQL引擎

    Velocity(并发事务)在这里特别重要,这些引擎被设计为处理任意数量的并发读写。虽然其他系统通常不能用于最终用户(需要低延迟响应)和员工分析团队(可能会使用长时间运行的查询锁定多个表),同时,NoSQL引擎可以扩展以适应一个系统的两个主服务器。一些开发允许以低延迟方式实时加入和查询该数据。

    成本:$$ - $$$(通常为内存密集型)适用性:“3V”问题。简单和/或快速变化的数据模型。需要构建KPI的实时仪表板。警告:必须放弃交易和丰富多样的SQL。由于它不使用SQL,因此无法使用Tableau和Microstrategy等可视化工具直接查询数据。扩展(尤其是添加新节点和重新平衡)可能很困难,并且会影响用户延迟和系统可用性。受欢迎的产品:DynamoDB(托管服务),Neptune(托管服务,目前仍处于测试阶段),Cassandra(基于EC2),CouchDB(基于EC2)和HBase(通过EMR作为托管服务,基于EC2)。提示和技巧:努力采用AWS管理的服务DynamoDB,而不是配置EC2并加载第三方系统。定期修剪最终用户DynamoDB表,并在这些历史表上创建每周或每月的表。使用Dynamic DynamoDB“自动调整”配置的容量,使其始终满足消耗。使用DynamoDB Streams可以对客户服务取消等关键事件进行实时响应,或者在第二个区域提供备份。

    4. 企业数据仓库(EDW)

    企业数据仓库(EDW)与此处提到的其他系统截然不同。它提供了人们称之为“OLAP”(在线分析处理,可以支持来自内部用户的一些长时间运行的查询)与“OLTP”(在线事务处理,可以支持来自最终用户的大量读取和写入)功能,如Oracle的RDBMS或MySQL。当然,可以使用OLTP系统作为企业数据仓库(EDW),但是大多数人都将OLTP数据库集中在最近用户的低延迟,最近事件(如“跟踪上周的订单”)需求和定期(通常是每天)窗口更旧数据输出到OLAP系统,业务用户可以在数月或数年的数据中运行长时间的查询。

    这些OLAP系统使用诸如列式存储、数据非规范化(创建具有几乎无限维度的“数据立方体”)等策略,并提供RDBMS级ANSI 92 SQL依从性,这意味着可以完全访问SQL功能,并且可以定制Tableau等可视化工具直接与他们合作。

    成本:$$ - $$$$$(通常需要大量节点来存储和处理大量数据)。适用性:如果希望专门针对业务价值分析数据或构建KPI的实时仪表板。警告:确保团队了解OLAP和OLTP之间的区别,并确保他们以正确的方式使用每个OLAP和OLTP。提示和技巧:与EMR/Hadoop一样,只在需要时启动集群,将源数据保存在S3存储桶中(这实际上是Redshift默认工作的方式)。标记集群,以便用能够以自动方式快速识别和关闭未使用的容量。考虑保留以控制成本。真正了解可用的不同节点类型(高存储、高吞吐量)以便利用每个节点类型。采用本机加密,因为它可以将性能降低多达20%-25%。通过O'Reilly课程深入了解Redshift,或考虑通过出色的“数据仓库”课程进行面对面培训,该课程几乎完全涵盖Redshift。

    5. 就地分析

    几年前,Presto通过提供高性能的数据分析改变了游戏规则,而无需将数据从原生的、低成本的长期存储中移出。其最终结果是,可以简单地运行查询,而不是必须为昂贵的EMR或Redshift集群支付全部费用。而是只按使用的内容收费。

    此外,人们需要很多时间来尝试选择(然后管理)EMR或Redshift集群的正确节点和节点数。采用Presto,人们不再知道也不关心这种差别,而这一切都在用户需要的时候起到作用。

    最后,Presto支持RDBMS级别的ANSI-92 SQL兼容性,这意味着所有可视化工具都可以直接使用它,具有的SQL背景可以在ad-hoc查询中全面使用。

    费用:$ - $$适用性:成本极低。没有任何管理。可以作为低成本、中等性能的企业数据仓库(EDW)。它不需要将数据复制到第二个系统。大型连接和复杂分析效果很好。警告:需要最低延迟。为了获得不错的性能,可能会使用序列化格式Parquet、压缩、重新分区等重新格式化存储的数据。可能需要多轮查询调整和/或重新格式化才能获得正确的结果。目前不支持UDF或事务。热门产品:AWS Athena(用于查询S3数据的托管服务),EMR(托管服务-可以自动安装Presto),自我管理的Presto(基于EC2–用户永远不想在AWS中执行此操作)。提示和技巧:只需使用Athena。利用AWS Glue构建ETL管道,以获取原始数据,并将其重新格式化为S3或Athena可以更有效地使用的内容。使用S3生命周期策略将原有的数据移动到低成本的归档存储(如Glacier)。

    把它们放在一起

    通过了解将在公共云中运行的五个顶级大数据架构,用户现在可以获得有关最佳应用位置的可操作信息,以及潜伏的位置。

    一旦用户开始在AWS公共云中构建大数据架构,将很快了解到更多的架构,并且在很多情况下,企业可能会最终同时使用上述所有内容,可能使用Kinesis将客户数据流媒体传输到DynamoDB和S3。用户可能偶尔会在该源数据上启动EMR(进行某些机器学习)或Redshift(分析KPI)集群,或者可以选择以可以通过AWS Athena就地访问的方式格式化数据,让它像企业数据仓库(EDW)一样发挥作用。

    具有执行TMTOWTDI的能力是一件好事,AWS公司努力提供最适合用户需求的服务。如果用户从头开始,在AWS认证的全球知识培训课程中花费三天时间将可以提供满足其需求的服务,并让用户尽快开始运营,并且顺利实施。

    作者:Rich Morrow

什么是大数据架构

所有视频需要登录后,才能观看

请先登录您的帐号,即可完整播放,如果您尚未注册帐号,请先点击注册。

img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP