书签 分享 收藏 举报 版权申诉 / 79
上传文档赚钱

类型大数据导论第2章-大数据技术基础课件.pptx

  • 上传人(卖家):三亚风情
  • 文档编号:3583946
  • 上传时间:2022-09-21
  • 格式:PPTX
  • 页数:79
  • 大小:2.08MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《大数据导论第2章-大数据技术基础课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    数据 导论 技术 基础 课件
    资源描述:

    1、数据中国“百校工程”项目系列教材数据科学与大数据技术专业系列规划教材第2章 大数据技术基础 本章主要内容如下。本章主要内容如下。(1 1)计算机操作系统。)计算机操作系统。(2 2)编程语言。)编程语言。(3 3)数据库。)数据库。(4 4)算法。)算法。(5 5)大数据系统。)大数据系统。(6 6)大数据应用开发流程。)大数据应用开发流程。2.1 计算机操作系统 本章首先介绍计算机操作系统,帮助读者建立对大数据技术基本章首先介绍计算机操作系统,帮助读者建立对大数据技术基础的整体印象。础的整体印象。2.1.1 2.1.1 什么是操作系统什么是操作系统 操作系统(操作系统(Operating S

    2、ystemOperating System,OSOS)实际是一整套程序的组合)实际是一整套程序的组合体,这套程序的主要任务是管理计算机的所有活动和驱动计算机的体,这套程序的主要任务是管理计算机的所有活动和驱动计算机的整体硬件。计算机硬件包括输入单元(主要指键盘和鼠标等)、输整体硬件。计算机硬件包括输入单元(主要指键盘和鼠标等)、输出单元(显示器、音响等)、出单元(显示器、音响等)、CPUCPU和主存储器等主要部分。和主存储器等主要部分。操作系统可以统筹协调计算机硬件系统的工作,具体就是通操作系统可以统筹协调计算机硬件系统的工作,具体就是通过操作系统的工作使过操作系统的工作使CPUCPU可以进行

    3、逻辑与数值运算,主存储器能够可以进行逻辑与数值运算,主存储器能够加载应用数据与程序代码,硬盘可以顺利存入与读出信息,输入加载应用数据与程序代码,硬盘可以顺利存入与读出信息,输入设备、输出设备可以根据需要实时写入、写出必要信息等。因此,设备、输出设备可以根据需要实时写入、写出必要信息等。因此,操作系统实际是整个计算机硬件系统的操作系统实际是整个计算机硬件系统的“CEO”“CEO”,担负着整个计算,担负着整个计算机硬件系统的管理、协调和运作的全部任务。机硬件系统的管理、协调和运作的全部任务。1 1系统呼叫接口系统呼叫接口2 2程序管理程序管理3 3内存管理内存管理4 4文件系统管理文件系统管理5

    4、5硬件装置的驱动硬件装置的驱动2.1.2 Linux2.1.2 Linux操作系统操作系统 Linux Linux系统基本经历了系统基本经历了3 3个发展阶段。个发展阶段。1 1单一个人维护阶段单一个人维护阶段2 2广大黑客志愿者加入阶段广大黑客志愿者加入阶段3 3LinuxLinux核心的细分工、快速发展阶段核心的细分工、快速发展阶段 LinuxLinux的核心版本编号如图的核心版本编号如图2-12-1所示,自所示,自3.03.0以后的版本都遵循以后的版本都遵循统一的编码标准,并且基本上后续的版本都是在前序版本的基础统一的编码标准,并且基本上后续的版本都是在前序版本的基础上经过完善后再开发出

    5、来的。上经过完善后再开发出来的。图2-1 Linux核心版本编号注解 LinuxLinux的核心版本是的核心版本是Linux KernelLinux Kernel的版本,此外还有的版本,此外还有Linux Linux DistributionDistribution,两者的关系如图,两者的关系如图2-22-2所示。所示。Linux Distribution Linux Distribution是专门为使用者量身打造的是专门为使用者量身打造的Linux Linux Kernel+Software+ToolsKernel+Software+Tools的可安全安装程序的综合发布版的可安全安装程序的综

    6、合发布版本,可帮助日常使用者在本,可帮助日常使用者在LinuxLinux系统下完成工作和其他相关任系统下完成工作和其他相关任务。务。图2-2 Linux Kernel与Linux Distribution 目前目前Linux DistributionLinux Distribution主要分为两大系统:一种是使用主要分为两大系统:一种是使用RPMRPM(Red-Hat Package ManagerRed-Hat Package Manager)方式安装软件的系统,主要包括)方式安装软件的系统,主要包括RHELRHEL、SuSESuSE、FedoraFedora等;另一种是使用等;另一种是使用

    7、DebianDebian的的DPKGDPKG方式安装软件的系统,方式安装软件的系统,包括包括UbuntuUbuntu、DebianDebian、B2DB2D等。具体的主要版本如表等。具体的主要版本如表2-12-1所示。所示。机构机构RPMRPM软件管理软件管理DPKGDPKG软件管理软件管理其他未分类其他未分类商业公司商业公司RHELRHEL(Red HatRed Hat)SuSESuSE(Micro FocusMicro Focus)UbuntuUbuntu(CanonicalCanonical)社区单位社区单位FedoraCentOSOpenSuSEFedoraCentOSOpenSuSE

    8、DebianB2DDebianB2DGentooGentoo表2-1 Linux Distribution主要版本 目前目前LinuxLinux的主要应用场景如下。的主要应用场景如下。(1 1)企业环境的应用,主要包括网络服务器(目前最热门的应用)、)企业环境的应用,主要包括网络服务器(目前最热门的应用)、关键任务的应用(金融数据库、大型企业网管环境)、学术机构的高关键任务的应用(金融数据库、大型企业网管环境)、学术机构的高效能运算任务等。效能运算任务等。(2 2)个人环境的使用,主要包括桌面计算机系统(实现和)个人环境的使用,主要包括桌面计算机系统(实现和WindowsWindows系系统一

    9、样的桌面操作系统)、手持系统(统一样的桌面操作系统)、手持系统(PDAPDA、手机端系统如、手机端系统如AndroidAndroid)、)、嵌入式系统(包括路由器、防火墙、嵌入式系统(包括路由器、防火墙、IPIP分享器、交换机等)。分享器、交换机等)。(3 3)云端的运用,主要包括云程序(云端虚拟机资源)、云端设备等。)云端的运用,主要包括云程序(云端虚拟机资源)、云端设备等。2.2 编 程 语 言 语言可以使人们以更加规范、方便和快捷的方式进行交流。语言可以使人们以更加规范、方便和快捷的方式进行交流。自然语言的作用显然是使人们更加高效地交流不同的思想和文化,自然语言的作用显然是使人们更加高效

    10、地交流不同的思想和文化,编程语言则是为了实现人与计算机之间的交流而设计的语言。编程语言则是为了实现人与计算机之间的交流而设计的语言。随着计算机技术的不断发展和完善,编程语言已经得到了长随着计算机技术的不断发展和完善,编程语言已经得到了长足的发展,并被广泛地应用于实际,已经成为人们与计算机进行足的发展,并被广泛地应用于实际,已经成为人们与计算机进行深入深入“交流交流”的必需工具。的必需工具。2.2.1 2.2.1 编程语言的发展与种类编程语言的发展与种类 随着电气革命的深入,人们终于在随着电气革命的深入,人们终于在 20 20 世纪世纪4040年代制造出了年代制造出了可以用于实际计算的晶体管计算

    11、机。这时候的计算机体积相当大,可以用于实际计算的晶体管计算机。这时候的计算机体积相当大,同时能耗巨大。伴随着晶体管计算机的诞生,人们也编写了第一同时能耗巨大。伴随着晶体管计算机的诞生,人们也编写了第一种真正意义上的编程语言,这就是机器语言。种真正意义上的编程语言,这就是机器语言。对普通人来说,机器语言基本就是对普通人来说,机器语言基本就是“天书天书”,因为它完全是,因为它完全是用用0 0和和1 1的机器代码来写成的,然后被光电阅读机记录在穿孔卡片的机器代码来写成的,然后被光电阅读机记录在穿孔卡片上,作为晶体管计算机的读入上,作为晶体管计算机的读入/读出数据,如图读出数据,如图2-32-3所示。

    12、所示。图2-3 记录在穿孔卡片上的机器语言 机器语言太难理解和书写,且极易出错,汇编语言(机器语言太难理解和书写,且极易出错,汇编语言(Assembly Assembly LanguageLanguage)就应运而生。实际上汇编语言是使用助记符()就应运而生。实际上汇编语言是使用助记符(MnemonicsMnemonics)来代替机器指令的操作码(来代替机器指令的操作码(0 0和和1 1的指令集),用标号(的指令集),用标号(LabelLabel)和地址)和地址符号(符号(SymbolSymbol)分别来代替机器指令或者操作数值的存储地址,其大)分别来代替机器指令或者操作数值的存储地址,其大体

    13、的工作原理如图体的工作原理如图 2-4 2-4 所示。机器语言和汇编语言统称为低级语言所示。机器语言和汇编语言统称为低级语言(1946195319461953年)。年)。图2-4 汇编语言大体的工作原理 与机器语言相比,汇编语言确实有了很大的进步,但是人们与机器语言相比,汇编语言确实有了很大的进步,但是人们希望让编程语言与自然语言无缝对接,于是编程语言进入了高级希望让编程语言与自然语言无缝对接,于是编程语言进入了高级语言(语言(High-Level Programming LanguageHigh-Level Programming Language)时代()时代(19541954年至今)。年

    14、至今)。相对于机器语言的机器码(相对于机器语言的机器码(Machine CodeMachine Code),高级语言基本以人),高级语言基本以人们的日常语言为基础,基本上人们易于接受的文字就是构成高级们的日常语言为基础,基本上人们易于接受的文字就是构成高级语言的基本词汇。由于早期的计算机技术都主要由美国主导,因语言的基本词汇。由于早期的计算机技术都主要由美国主导,因此高级语言基本都是以英语为蓝本的。因为英语是国际语言且简此高级语言基本都是以英语为蓝本的。因为英语是国际语言且简单易懂,程序基本上都是用英文实现的,所以想成为合格的编程单易懂,程序基本上都是用英文实现的,所以想成为合格的编程人员,英

    15、语基础是必不可少的。接下来我们就大体看看整个高级人员,英语基础是必不可少的。接下来我们就大体看看整个高级语言的发展历程。语言的发展历程。19541954年,年,John BackusJohn Backus在纽约正式发布人类第一个高级编程语在纽约正式发布人类第一个高级编程语言言FORTRANFORTRAN(FORmula TRANslatorFORmula TRANslator的几个字母的缩写拼合)的几个字母的缩写拼合),从,从字面翻译(公式翻译语言)就知道其主要是用来做数学数值计算字面翻译(公式翻译语言)就知道其主要是用来做数学数值计算尤其是科学计算的。尤其是科学计算的。FORTRAN FOR

    16、TRAN 的功能简单,但它的开创性工作的功能简单,但它的开创性工作在社会上引起了极大的反响。在社会上引起了极大的反响。1957 1957年,第一个年,第一个FORTRANFORTRAN编译器在编译器在IBM 704IBM 704计算机上实现,并计算机上实现,并首次成功运行了首次成功运行了FORTRANFORTRAN程序。随后在程序。随后在19601960年出现了第一个结构化年出现了第一个结构化语言语言AlgolAlgol(Algorithmic LanguageAlgorithmic Language),它是算法语言的鼻祖,目),它是算法语言的鼻祖,目的在于纯粹面向描述计算过程,其语法也是用严

    17、格的公式化的方的在于纯粹面向描述计算过程,其语法也是用严格的公式化的方法说明的。法说明的。同时,值得一提的是,同时,值得一提的是,Algol 60Algol 60是程序设计语言发展史上的一是程序设计语言发展史上的一个里程碑,它标志着程序设计语言成为一门独立的学科。个里程碑,它标志着程序设计语言成为一门独立的学科。19641964年,年,美国达特茅斯学院的美国达特茅斯学院的J.KemenyJ.Kemeny和和T.KurtzT.Kurtz开发了开发了BASICBASIC(Beginners Beginners All Purpose Symbolic Introduction CodeAll Pu

    18、rpose Symbolic Introduction Code),该语言只有),该语言只有2626个变个变量、量、1717条语句,是初学编程人员的福音。条语句,是初学编程人员的福音。后来,编程语言发展到了使用编译器的阶段,出现了我们都熟知的后来,编程语言发展到了使用编译器的阶段,出现了我们都熟知的C C语言(语言(Compiler languageCompiler language)。这种语言的核心在于编译器,而编译器的)。这种语言的核心在于编译器,而编译器的作用就是把某种语言写的代码转变为机器语言,从而让计算机识别并运行。作用就是把某种语言写的代码转变为机器语言,从而让计算机识别并运行。高

    19、级语言经过编译器时代的发展,过渡到面向对象时代(高级语言经过编译器时代的发展,过渡到面向对象时代(19951995年开年开始),编程人员终于可以针对特殊的对象进行一对一的编程处理。业内称始),编程人员终于可以针对特殊的对象进行一对一的编程处理。业内称这种方法为面向对象程序设计(这种方法为面向对象程序设计(Object-Oriented ProgrammingObject-Oriented Programming,OOPOOP)。)。随着面向对象程序设计语言的不断成熟,随着面向对象程序设计语言的不断成熟,IDEIDE(Integrated Integrated Develop Environme

    20、ntDevelop Environment)作为提供程序开发环境的应用程序开始得)作为提供程序开发环境的应用程序开始得到发展。到发展。IDEIDE一般包括代码编辑器、编译器、调试器和图形用户界一般包括代码编辑器、编译器、调试器和图形用户界面工具,也就是集成了代码编写功能、分析功能、编译功能、调面工具,也就是集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套件。这样的集成开发环境大大试功能等一体化的开发软件服务套件。这样的集成开发环境大大方便了编程人员的开发工作。随着方便了编程人员的开发工作。随着JavaJava语言的全球风靡,与之相语言的全球风靡,与之相关的关的IDEID

    21、E也不断地发展起来。也不断地发展起来。下面我们总结一下目前市场上的所用编程语言。下面我们总结一下目前市场上的所用编程语言。(1 1)JavaJava的使用者最多。的使用者最多。(2 2)C C和和C+C+在嵌入式开发方面的地位不可动摇。在嵌入式开发方面的地位不可动摇。(3 3)C#C#迅速崛起。迅速崛起。(4 4)其他程序如)其他程序如RubyRuby、JSPJSP、JavaScriptJavaScript、PHPPHP等也占据了一定的市场。等也占据了一定的市场。(5 5)未来的编程语言是动态语言如)未来的编程语言是动态语言如PythonPython的天下的天下。2.2.2 Python2.2

    22、.2 Python语言语言 Python Python语言诞生于语言诞生于19911991年(比年(比JavaJava还早,最早发行于还早,最早发行于19941994年),年),并且一直是比较流行的十大计算机语言之一。并且一直是比较流行的十大计算机语言之一。PythonPython可以应用在命可以应用在命令行窗口、图形用户界面(包括令行窗口、图形用户界面(包括WebWeb)、客户端和服务器端)、客户端和服务器端WebWeb、大、大型网站后端、云服务(第三方管理服务器)、移动设备、嵌入式设型网站后端、云服务(第三方管理服务器)、移动设备、嵌入式设备等许多的计算环境下。从一次性的脚本到几十万行的系

    23、统,备等许多的计算环境下。从一次性的脚本到几十万行的系统,PythonPython都可以进行游刃有余的开发。都可以进行游刃有余的开发。PythonPython语言自身的优点和在实际应用方面的便捷性。语言自身的优点和在实际应用方面的便捷性。首先介绍命令行终端窗口。命令行终端窗口就是我们所熟知的首先介绍命令行终端窗口。命令行终端窗口就是我们所熟知的shellshell程序,它是操作系统内置的可直接由系统核心提供命令运行并显示结果程序,它是操作系统内置的可直接由系统核心提供命令运行并显示结果的编程语言。的编程语言。WindowsWindows下的下的shellshell即是我们称为即是我们称为CMD

    24、CMD的命令行终端,其运行的命令行终端,其运行后缀为后缀为.bat.bat的的BATCHBATCH格式文件。格式文件。LinuxLinux和其他的和其他的UNIXUNIX操作系统(包括操作系统(包括macOS macOS X X等)有很多的等)有很多的shellshell程序,其中,最为人们所熟知的便是程序,其中,最为人们所熟知的便是bashbash(或其简(或其简写写shsh)程序语言。)程序语言。shell shell一般是程序人员接触的第一种程序语言,其百行之后的扩展性一般是程序人员接触的第一种程序语言,其百行之后的扩展性很差,同时运行速度一般,如下就是一段很差,同时运行速度一般,如下就

    25、是一段shellshell程序。程序。然后,我们再来看看然后,我们再来看看C C和和C+C+。它们都是底层语言,应用在十。它们都是底层语言,应用在十分重视程序运行效率和做硬件嵌入式开发的场景时具有很好的效分重视程序运行效率和做硬件嵌入式开发的场景时具有很好的效果,但是人们很难学习,并且有许多细微的地方需要做缜密的处果,但是人们很难学习,并且有许多细微的地方需要做缜密的处理,稍微不小心就会发生程序全盘崩溃的情况。理,稍微不小心就会发生程序全盘崩溃的情况。Java Java语言虽然解决了很多语言虽然解决了很多C C和和C+C+的问题,但是代码实在繁杂,的问题,但是代码实在繁杂,让人无所适从。让人无

    26、所适从。静态语言之所以为静态,是因为其中的变量类型是整个程序静态语言之所以为静态,是因为其中的变量类型是整个程序流程都不能改变的,也就是整数就是整数(流程都不能改变的,也就是整数就是整数(intint),字符串就是字),字符串就是字符串(符串(stringstring)。因此,静态语言要求编程人员去声明每个变量)。因此,静态语言要求编程人员去声明每个变量的类型及其内存使用额度、使用方法,当然这样的结果就是计算的类型及其内存使用额度、使用方法,当然这样的结果就是计算机很容易把程序编译为更底层的机器代码,可以十分高效地管理机很容易把程序编译为更底层的机器代码,可以十分高效地管理内存和变量的应用等。

    27、内存和变量的应用等。Perl Perl可以说是一门十分经典的动态语言,虽然其有很不错的可以说是一门十分经典的动态语言,虽然其有很不错的扩展库,却不能改变其语法繁杂的现实扩展库,却不能改变其语法繁杂的现实。RubyRuby是一门新兴的动态语言,其参照了是一门新兴的动态语言,其参照了PerlPerl的很多技术特点,并的很多技术特点,并且因为且因为WebWeb开发框架开发框架Ruby on railsRuby on rails而一炮走红。而一炮走红。PHP PHP主要在主要在WebWeb开发领域非常流行,因为其可以轻松地结合开发领域非常流行,因为其可以轻松地结合HTMLHTML和和代码。代码。Pyt

    28、hon Python 是高级的动态语言,同时程序的代码可读性很强,方便是高级的动态语言,同时程序的代码可读性很强,方便编程人员移植和修改。事实上,编程人员移植和修改。事实上,PythonPython的程序包可以说是目前所有编的程序包可以说是目前所有编程语言中最为强大和更新速度最快的。从语言本身角度来说,程语言中最为强大和更新速度最快的。从语言本身角度来说,PythonPython编写简单,应用广泛,是初学编程人员的最佳选择之一。编写简单,应用广泛,是初学编程人员的最佳选择之一。2.3 数 据 库 数据库技术是信息技术的核心技术。显然大数据时代仍然要依数据库技术是信息技术的核心技术。显然大数据时

    29、代仍然要依赖数据库技术提供可靠、安全、高效的数据存储和查询服务,这样赖数据库技术提供可靠、安全、高效的数据存储和查询服务,这样才能支持整个大数据行业的可持续发展。才能支持整个大数据行业的可持续发展。2.3.1 SQL2.3.1 SQL数据库的发展与成熟数据库的发展与成熟 1970 1970年,年,IBMIBM公司的研究员公司的研究员E.F.CoddE.F.Codd博士提出的关系模型的概博士提出的关系模型的概念奠定了整个关系模型的理论基础。念奠定了整个关系模型的理论基础。1970 1970年,关系模型建立后,年,关系模型建立后,IBMIBM公司在公司在San JoseSan Jose实验室投入了

    30、实验室投入了大量的人力、物力研究相关的可实施的关系型数据库。这就是著名大量的人力、物力研究相关的可实施的关系型数据库。这就是著名的的System RSystem R数据库项目,其初始目的在于论证关系型数据库的可行数据库项目,其初始目的在于论证关系型数据库的可行性。性。SQLSQL最早在最早在19861986年由年由ANSIANSI(American National Standards American National Standards InstitutionInstitution)认定为关系型数据库语言的美国标准,同年即公布)认定为关系型数据库语言的美国标准,同年即公布了标准的了标准的S

    31、QLSQL文本。时至今日,文本。时至今日,ANSIANSI已经公布了有关已经公布了有关SQLSQL的的3 3个版本。个版本。基本可以说基本可以说SQLSQL数据库已经发展到了品类齐全、种类繁多的产数据库已经发展到了品类齐全、种类繁多的产品格局,既有符合商业引用标准的大型数据库系统,也有别具风品格局,既有符合商业引用标准的大型数据库系统,也有别具风格、完全开源的个人版本,并且随着数据库技术的不断发展,格、完全开源的个人版本,并且随着数据库技术的不断发展,SQLSQL数据库还会不断地成熟和完善,为大数据技术的发展提供强有力数据库还会不断地成熟和完善,为大数据技术的发展提供强有力的支撑。的支撑。2.

    32、3.2 NoSQL2.3.2 NoSQL数据库及其特点数据库及其特点 NoSQL NoSQL是一种不同于是一种不同于SQLSQL的数据库管理系统设计方式,其采用的数据库管理系统设计方式,其采用了不同于传统关系模式的数据组织模型,这些组织模型主要包括了不同于传统关系模式的数据组织模型,这些组织模型主要包括键键-值、列族、文档等非关系模型。值、列族、文档等非关系模型。NoSQL NoSQL数据库具有以下数据库具有以下3 3个方面的特点。个方面的特点。1 1优秀的可扩展性优秀的可扩展性 SQL SQL数据库严格遵守数据库严格遵守ACIDACID设计原则,所以一般很难实现硬件存设计原则,所以一般很难实

    33、现硬件存储设备的储设备的“横向扩展横向扩展”(多集群机器联动服务)。(多集群机器联动服务)。2 2方便多用的数据类型承载能力方便多用的数据类型承载能力 相对于相对于SQLSQL数据库只能处理数据库只能处理“表数据表数据”,即严格结构化的数据,即严格结构化的数据类型,类型,NoSQLNoSQL数据库在设计之初就放弃了传统数据库的关系数据模数据库在设计之初就放弃了传统数据库的关系数据模型,旨在满足大数据的处理需求,采用诸如键型,旨在满足大数据的处理需求,采用诸如键-值、列族、文件集值、列族、文件集等多样的新型数据模型,并且对图形数据的兼容性也日渐提升。等多样的新型数据模型,并且对图形数据的兼容性也

    34、日渐提升。3 3NoSQLNoSQL数据服务与云计算可以紧密融合数据服务与云计算可以紧密融合 云计算和云服务是当前时代的信息服务高地,其很多特点如云计算和云服务是当前时代的信息服务高地,其很多特点如水平扩展、多用户并行处理、远程登录操控等都可以与水平扩展、多用户并行处理、远程登录操控等都可以与NoSQLNoSQL数据数据库实现无缝对接,使库实现无缝对接,使NoSQLNoSQL数据库在大数据时代更加如鱼得水。数据库在大数据时代更加如鱼得水。2.3.3 NoSQL2.3.3 NoSQL数据库的分类数据库的分类 近年来,近年来,NoSQLNoSQL数据库技术发展势头迅猛,虽然其种类繁多,数据库技术发

    35、展势头迅猛,虽然其种类繁多,但是归结起来,典型的但是归结起来,典型的NoSQLNoSQL数据库通常包括键数据库通常包括键-值数据库、列族值数据库、列族数据库、文档数据库和图形数据库数据库、文档数据库和图形数据库4 4种类型(见图种类型(见图2-52-5和图和图2-62-6)。)。图2-5 键-值和列族数据库图2-6 文档和图形数据库1 1键键-值数据库值数据库 正如图正如图2-52-5(a a)显示的图例一样,键)显示的图例一样,键-值数据库(值数据库(Key-Value Key-Value DataBaseDataBase)主要包括负责索引的)主要包括负责索引的KeyKey和对应的储存实质内

    36、容的和对应的储存实质内容的ValueValue两个部分,其具有理论上无限的横向扩展性,但是其牺牲的是两个部分,其具有理论上无限的横向扩展性,但是其牺牲的是SQLSQL数据库中的条件查询功能,只能针对具体的数据库中的条件查询功能,只能针对具体的KeyKey进行单一查询。进行单一查询。表表2-22-2详细描述了键详细描述了键-值数据库的相关特征。值数据库的相关特征。键键-值数据库细节值数据库细节相相 关关 说说 明明行业产品行业产品RedisRedis、RiakRiak、SimpleDBSimpleDB、ChordlissChordliss、ScalarisScalaris、MemcachedMe

    37、mcached数据模型数据模型Key-ValueKey-Value数据对数据对行业引用行业引用内存缓冲,诸如会话、配置文件、参数、购物车等内存缓冲,诸如会话、配置文件、参数、购物车等商业实例商业实例百度云(百度云(RedisRedis)、)、TwitterTwitter(Redis and MemcachedRedis and Memcached)、)、YouTubeYouTube(MemcachedMemcached)等)等优点优点横向扩展优秀、存取针对性好、利于大批量并行处理横向扩展优秀、存取针对性好、利于大批量并行处理不足不足条件化查询基本不能满足条件化查询基本不能满足表2-2 键-值数

    38、据库的相关特征2 2列族数据库列族数据库 列族数据库(列族数据库(Column-Family DataBaseColumn-Family DataBase)从行的性质上看与键)从行的性质上看与键-值数据库类似,只是列族数据库每个行键索引指向的是一个列族,值数据库类似,只是列族数据库每个行键索引指向的是一个列族,而每行的列族数量可以由数据库管理者自己制定和规划,这样相对而每行的列族数量可以由数据库管理者自己制定和规划,这样相对键键-值数据库每个行键只能针对一个数据属性的不足得到了大大的值数据库每个行键只能针对一个数据属性的不足得到了大大的改善。同时,列族数据库支持不同类型的数据访问模式,同一个列

    39、改善。同时,列族数据库支持不同类型的数据访问模式,同一个列族可以被同时一起放入计算机内存之中,这样虽然消耗了内存存储,族可以被同时一起放入计算机内存之中,这样虽然消耗了内存存储,却带来了更好的数据响应性能。表却带来了更好的数据响应性能。表2-32-3具体描述了列族数据库的相具体描述了列族数据库的相关特征。关特征。列族数据库细节列族数据库细节相相 关关 说说 明明行业产品行业产品BigTableBigTable、HBaseHBase、CassandraCassandra、HadoopDBHadoopDB、GreenPlumGreenPlum、PNUTSPNUTS等等数据模型数据模型Key-Col

    40、um FamilyKey-Colum Family数据模块数据模块行业引用行业引用大数据分布式数据存储和管理大数据分布式数据存储和管理商业实例商业实例EbayEbay(CassandraCassandra)、)、NASANASA(CassandraCassandra)、)、FacebookFacebook(HBaseHBase)等)等优点优点查找迅速、扩展性强且数据存储属性充分、利于分布式部署查找迅速、扩展性强且数据存储属性充分、利于分布式部署不足不足功能一般功能一般表2-3 列族数据库的相关特征3 3文档数据库文档数据库 如图如图2-62-6(a a)所示,文档数据库()所示,文档数据库(D

    41、ocument DataBaseDocument DataBase)的数)的数据模式实际是一个键据模式实际是一个键-值对应一个文件,而文档是数据库的最小单位。值对应一个文件,而文档是数据库的最小单位。虽然每一种文档数据库的部署都有所不同,但是基本都是文档以某虽然每一种文档数据库的部署都有所不同,但是基本都是文档以某种标准化格式封装并对数据进行加密,然后运用种标准化格式封装并对数据进行加密,然后运用XMLXML、YAMLYAML、JSONJSON、BSONBSON等多种格式进行数据解码,或者也可以使用等多种格式进行数据解码,或者也可以使用PDFPDF、OfficeOffice等二等二进制形式文档

    42、。表进制形式文档。表2-42-4具体描述了其相关特征。具体描述了其相关特征。文档数据库细节文档数据库细节相相 关关 说说 明明行业产品行业产品CouchDBCouchDB、MongoDBMongoDB、TerrastoreTerrastore、ThruDBThruDB、RavenDBRavenDB、SISODBSISODB、RaptorDBRaptorDB、CloudKitCloudKit、PerserverePerservere、JackrabbitJackrabbit等等数据模型数据模型Key-DocumentKey-Document数据模块数据模块行业引用行业引用存储、应用、管理面向文档

    43、的数据或者类似于文档的半结构化、非结构化文档数据存储、应用、管理面向文档的数据或者类似于文档的半结构化、非结构化文档数据商业实例商业实例百度云数据库(百度云数据库(MongoDBMongoDB)、)、NBC NewsNBC News(RabenDBRabenDB)等)等优点优点方便处理非结构化文档数据,兼容扩展性良好方便处理非结构化文档数据,兼容扩展性良好不足不足查询困难查询困难表2-4 文档数据库的相关特征4 4图形数据库图形数据库 图形数据库(图形数据库(Graph DataBaseGraph DataBase)以图形为数据库基础,每一)以图形为数据库基础,每一个图形代表一个数据库节点。同

    44、时,其组织模式以图论为基础,个图形代表一个数据库节点。同时,其组织模式以图论为基础,将一个图简化为一个数学概念,其表示了一个对象结合,而不同将一个图简化为一个数学概念,其表示了一个对象结合,而不同图形对象直接的关系则用关系键图形对象直接的关系则用关系键-值对来标明。图形数据库的数据值对来标明。图形数据库的数据模型设计理念以图形为主题,可以高效地存储不同图形节点之间模型设计理念以图形为主题,可以高效地存储不同图形节点之间的关系,专门用于处理具有高度相互关联关系的数据,并使其以的关系,专门用于处理具有高度相互关联关系的数据,并使其以图形节点形式展现,十分适用于社交网络、模式识别、依赖分析、图形节点

    45、形式展现,十分适用于社交网络、模式识别、依赖分析、推荐系统及路径寻找等应用场景。推荐系统及路径寻找等应用场景。表表 2-5 2-5 具体描述了图形数据库的相关特征。具体描述了图形数据库的相关特征。图形数据库细节图形数据库细节相相 关关 说说 明明行业产品行业产品Neo4JNeo4J、OrientDBOrientDB、InfoGridInfoGrid、InfiniteGraphInfiniteGraph、GraphDBGraphDB等等数据模型数据模型Graph Node-relationGraph Node-relation数据模块数据模块行业引用行业引用社交网络、推荐系统等相互关联度大行业社

    46、交网络、推荐系统等相互关联度大行业商业实例商业实例AdobeAdobe(Neo4JNeo4J)、)、CiscoCisco(Neo4JNeo4J)、)、T-MobileT-Mobile(Neo4JNeo4J)等)等优点优点清晰、高效地展示具体实体事务间的相互关系和联络情况清晰、高效地展示具体实体事务间的相互关系和联络情况不足不足图形数据占用大量存储空间图形数据占用大量存储空间表2-5 图形数据库的相关特征2.3.4 NewSQL2.3.4 NewSQL数据库数据库 近年来,人们越来越意识到近年来,人们越来越意识到NoSQLNoSQL数据库的技术不足,尤其难数据库的技术不足,尤其难以满足海量数据查

    47、询和数据挖掘方面的需求,于是以满足海量数据查询和数据挖掘方面的需求,于是NewSQLNewSQL数据库的数据库的概念开始逐步升温。概念开始逐步升温。NewSQL NewSQL综合了综合了NoSQLNoSQL和和SQLSQL数据库的技术优势,它既能像数据库的技术优势,它既能像NoSQLNoSQL数据库一样具有对海量数据足够优秀的扩展和并发处理能力,同时数据库一样具有对海量数据足够优秀的扩展和并发处理能力,同时也具备也具备SQLSQL数据库对数据库对ACIDACID和结构化快速高效查询的特点。和结构化快速高效查询的特点。目前市场上具有代表性的目前市场上具有代表性的NewSQLNewSQL数据库主要

    48、包括数据库主要包括SpannerSpanner、ClustrixClustrix、GenieDBGenieDB、ScalArcScalArc、SchoonerSchooner、VoltDBVoltDB、RethinkDBRethinkDB、AkibanAkiban、CodeFuturesCodeFutures、ScaleBaseScaleBase、TranslatticeTranslattice、NimbusDBNimbusDB、DrizzleDrizzle、TokutekTokutek、JustOneDBJustOneDB等。但是,在严格意义上符合等。但是,在严格意义上符合NewSQLNew

    49、SQL数据库全部标准的理想数据库全部标准的理想NewSQLNewSQL数据库或者标准的数据库或者标准的NewSQLNewSQL数数据库目前还没有出现。据库目前还没有出现。2.4 算 法 算法(算法(AlgorithmAlgorithm)是数学处理的灵魂和核心,也是实现现实)是数学处理的灵魂和核心,也是实现现实事务数学化、公式化和逻辑化处理的桥梁,可以说算法是信息时事务数学化、公式化和逻辑化处理的桥梁,可以说算法是信息时代连通现实社会和虚拟世界的立交桥。本节我们重点关注传统算代连通现实社会和虚拟世界的立交桥。本节我们重点关注传统算法和大数据时代算法的区别。法和大数据时代算法的区别。2.4.1 2

    50、.4.1 什么是算法什么是算法 算法是解决方案的准确而完整的描述,实质是一系列解决问算法是解决方案的准确而完整的描述,实质是一系列解决问题的高度符合逻辑性和可执行性的指令集合,其代表着用系统的题的高度符合逻辑性和可执行性的指令集合,其代表着用系统的方法描述解决问题的策略与机制。其具体包括把符合算法要求的方法描述解决问题的策略与机制。其具体包括把符合算法要求的数据按照一定的数据结构方式进行准备、完整输入并存储,经过数据按照一定的数据结构方式进行准备、完整输入并存储,经过综合算法指令的步步实现后,在确认每个步骤合理完成后进行最综合算法指令的步步实现后,在确认每个步骤合理完成后进行最后的结果输出和展

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:大数据导论第2章-大数据技术基础课件.pptx
    链接地址:https://www.163wenku.com/p-3583946.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库