大数据导论(第2版)-第7章-数据存储与管理_第1页
大数据导论(第2版)-第7章-数据存储与管理_第2页
大数据导论(第2版)-第7章-数据存储与管理_第3页
大数据导论(第2版)-第7章-数据存储与管理_第4页
大数据导论(第2版)-第7章-数据存储与管理_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

林子雨

博士/副教授厦门大学导论(

第2版

)第7章数据存储与管理厦门大学数据库实验室:/目录CONCENTS传统的数据存储与管理技术大数据时代的数据存储与管理技术大数据处理架构Hadoop分布式文件系统HDFSNoSQL数据库云数据库分布式数据库HBaseGoogleSpanner7.17.27.37.47.57.67.77.87.9OceanBase

7.1传统的数据存储与管理技术7.1.1文件系统7.1.3数据仓库提纲7.1.2关系数据库7.1.4

并行数据库数据的概念数据存储和管理传统的数据存储和管理技术01大数据时代的数据存储和管理技术02数据的概念文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NANDFlash的固态硬盘)或分区上的文件的方法和数据结构,即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称“文件系统”文件系统由三部分组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。我们平时在计算机上使用的WORD文件、PPT文件、文本文件、音频文件、视频文件等,都是由操作系统中的文件系统进行统一管理的A

B

1.文件系统数据的概念2.关系数据库除了文件系统之外,数据库是另外一种主流的数据存储和管理技术。数据库指的是以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。在数据库的发展历史上,先后出现过网状数据库、层次数据库、关系数据库等不同类型的数据库,这些数据库分别采用了不同的数据模型,目前比较主流的数据库是关系数据库,它采用了关系数据模型来组织和管理数据。数据的概念2.关系数据库AB一个关系数据库可以看成是许多关系表的集合,每个关系表可以看成一张二维表格目前市场上常见的关系数据库产品包括Oracle、SQLServer、MySQL、DB2等数据的概念学号姓名性别年龄考试成绩95001张三男218895002李四男229595003王梅女227395004林莉女2196表

学生信息表2.关系数据库数据的概念3.数据仓库图

数据仓库体系架构数据仓库(DataWarehouse)是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策数据库数据仓库数据仓库是面向主题设计的数据库是面向事务的设计数据库一般存储在线交易数据数据仓库存储的一般是历史数据数据的概念4.并行数据库并行数据库是指那些在无共享的体系结构中进行数据操作的数据库系统这些系统大部分采用了关系数据模型并且支持SQL语句查询,但为了能够并行执行SQL的查询操作,系统中采用了两个关键技术:关系表的水平划分和SQL查询的分区执行并行数据库系统的目标是高性能和高可用性,通过多个节点并行执行数据库任务,提高整个数据库系统的性能和可用性数据的概念4.并行数据库数据转移的代价是昂贵并行数据库缺点弹性差容错性差转移成本高集群处理差

7.2大数据时代数据存储与管理技术7.2.1分布式文件系统7.2.3云数据库提纲7.2.2NewSQL和NoSQL数据库数据的概念1.分布式文件系统分布式文件系统是一种通过网络实现文件在多台主机上进行分布式存储的文件系统图分布式文件系统的整体结构数据的概念1.分布式文件系统谷歌开发了分布式文件系统GFS,通过网络实现文件在多台机器上的分布式存储,较好地满足了大规模数据存储的需求。Hadoop分布式文件系统HDFS是针对GFS的开源实现,它是Hadoop两大核心组成部分之一,提供了在廉价服务器集群中进行大规模分布式文件存储的能力。数据的概念2.NewSQL和NoSQL数据库

(1)NewSQL数据库NewSQL简介NewSQL是对各种新的可扩展、高性能数据库的简称,这类数据库不仅具有对海量数据的存储管理能力,还保持了传统数据库支持ACID和SQL等.目前具有代表性的NewSQL数据库主要包括Spanner、Clustrix、GenieDB、ScalArc、Schooner、VoltDB、RethinkDB、ScaleDB、Akiban、CodeFutures、ScaleBase、Translattice、NimbusDB、Drizzle、Tokutek、JustOneDB等代表性的NewSQL数据库数据的概念2.NewSQL和NoSQL数据库

(2)NoSQL数据库NoSQL数据库没有固定的表结构,通常也不存在连接操作,也没有严格遵守ACID约束,因此,与关系数据库相比,NoSQL具有灵活的水平可扩展性,可以支持海量数据存储NoSQL是一种不同于关系数据库的数据库管理系统设计方式,是对非关系型数据库的统称,它所采用的数据模型并非传统关系数据库的关系模型,而是类似键/值、列族、文档等非关系模型数据的概念数据的概念2.NewSQL和NoSQL数据库(2)NoSQL数据库灵活的可扩展性灵活的数据模型与云计算紧密融合NoSQL优点数据的概念2.NewSQL和NoSQL数据库(3)大数据引发数据库架构变革图

大数据引发数据处理架构变革3.云数据库研究机构IDC预言,大数据将按照每年60%的速度增加,其中包含结构化和非结构化数据3.云数据库云服务提供商通过云技术推出更多可在公有云中托管数据库的方法,将用户从繁琐的数据库硬件定制中解放出来,让用户拥有强大的数据库扩展能力,满足海量数据的存储需求。此外,云数据库还能够很好满足企业动态变化的数据存储需求和中小企业低成本数据存储需求。在大数据时代,云数据库将成为许多企业数据的目的地图

关系数据库、NoSQL、NewSQL和云数据库产品分类4.数据湖企业需要存储不同类型的数据企业在持续发展,企业的数据也不断堆积,虽然“含金量”最高的数据都存在数据库和数据仓库里,支撑着企业的运转。但是,企业希望把生产经营中的所有相关数据,历史的、实时的,在线的、离线的,内部的、外部的,结构化的、非结构化的,都能完整保存下来,方便“沙中淘金”4.数据湖数据湖是企业中全量数据的单一存储。全量数据包括原始系统所产生的原始数据拷贝以及为了各类任务而产生的转换数据,各类任务包括报表、可视化、高级分析和机器学习等。数据湖中包括来自于关系型数据库中的结构化数据(行和列)、半结构化数据(如CSV、日志)、非结构化数据(如E-mail、文档、PDF等)和二进制数据(如图像、音频、视频等)。数据湖可以构建在企业本地数据中心,也可构建在云上数据湖的本质是“数据存储架构+数据处理工具”组成的解决方案,而不是某个单一独立产品数据存储架构要有足够的扩展性和可靠性,要满足企业能把所有原始数据都“囤”起来,存得下、存得久。一般来讲,各大云厂商都喜欢用对象存储来做数据湖的存储底座,比如AmazonWebServices(亚马逊云科技),修建“湖底”用的“砖头”,就是S3云对象存储第二类工具第一类工具解决把数据“搬到”湖里包括定义数据源、制定数据访问策略和安全策略,并移动数据、编制数据目录等等。如果没有这些数据管理/治理工具,元数据缺失,湖里的数据质量就没法保障,“泥石俱下”,各种数据倾泻堆积到湖里,最终数据湖,会就变成了“数据沼泽”因此,在一个数据湖方案里,数据移动和管理的工具非常重要。如,AmazonWebServices提供“LakeFormation”工具从湖里的海量数据中“淘金”数据不是存进数据湖里就万事大吉,要对数据进行分析、挖掘、利用,如要对湖里的数据进行查询,同时要把数据提供给机器学习、数据科学类的业务,便于“点石成金”。数据湖可以通过多种引擎对湖上数据进行分析计算,例如离线分析、实时分析、交互式分析、机器学习等多种数据分析场景数据湖与数据仓库的区别01数据分散,存储散乱,形成数据孤岛,无法联合数据发现更多价值02存储成本问题03SQL无法满足的分析需求0504存储、计算扩展性不足数据湖数据湖能解决的企业问题什么是“湖仓一体”数据湖和数仓作为两大“数据集散地”,能不能彼此整合一下,让数据流动起来,少点重复建设呢?比如,让“数仓”在进行数据分析的时候,可以直接访问数据湖里的数据(如AmazonRedshiftSpectrum)。再比如,让数据湖在架构设计上,就“原生”支持数仓能力(如DeltaLake)。正是这些想法和需求,推动了数仓和数据湖的打通和融合,也就是当下炙手可热的概念—湖仓一体湖仓一体是一种新型的开放式架构,打通了数据仓库和数据湖,将数据仓库的高性能及管理能力与数据湖的灵活性融合了起来,底层支持多种数据类型并存,能实现数据间的相互共享,上层可以通过统一封装的接口进行访问,可同时支持实时查询和分析,为企业进行数据治理带来了更多的便利性。“湖仓一体”架构最重要的一点,是实现“湖里”和“仓里”的数据/元数据能够无缝打通,且“自由”流动“湖仓一体”架构特性存算分离事务支持开放性数据治理支持多种数据类型BI支持

7.3大数据处理架构Hadoop数据的概念Hadoop特性01Hadoop生态系统02Hadoop特性不是单一软件Hadoop是一个能够对大量数据进行分布式处理的软件框架,并且是以一种可靠、高效、可伸缩的方式进行处理的高可靠性高效性高可扩展性高容错性成本低运行在Linux平台上支持多种编程语言Hadoop生态系统图Hadoop生态系统

7.4分布式文件系统HDFS数据的概念HDFS的设计目标01HDFS体系结构02HDFS的设计目标兼容廉价的硬件设备流数据读写大数据集简单的文件模型强大的跨平台兼容性HDFS实现目标不适合低延迟数据访问无法高效存储大量小文件不支持多用户写入及任意修改文件HDFS局限性一个HDFS集群一个名称节点(NameNode)若干个数据节点(DataNode)HDFS体系结构名称节点作为中心服务器,负责管理文件系统的命名空间及客户端对文件的访问。集群中的数据节点一般是一个节点运行一个数据节点进程,负责处理文件系统客户端的读/写请求,在名称节点的统一调度下进行数据块的创建、删除和复制等操作,每个数据节点的数据实际上是保存在本地Linux文件系统中

7.5NoSQL数据库7.5.1键值数据库7.5.3文档数据库提纲7.5.2列族数据库7.5.4图数据库NoSQL数据库键值数据库文档数据库列族数据库图形数据库NoSQL数据库文档数据库图数据库相关产品Redis、Riak、SimpleDB、Chordless、Scalaris、Memcached数据模型键/值对;键是一个字符串对象;值可以是任意类型的数据,比如整型、字符型、数组、列表、集合等典型应用涉及频繁读写、拥有简单数据模型的应用;内容缓存,比如会话、配置文件、参数、购物车等存储配置和用户数据信息的移动应用优点扩展性好,灵活性好,大量写操作时性能高缺点无法存储结构化信息,条件查询效率较低不适用情形不是通过键而是通过值来查:键值数据库根本没有通过值查询的途径;需要存储数据之间的关系:在键值数据库中,不能通过两个或两个以上的键来关联数据;需要事务的支持:在一些键值数据库中,产生故障时,不可回滚使用者百度云数据库(Redis)、GitHub(Riak)、BestBuy(Riak)、Twitter(Redis和Memcached)、StackOverFlow(Redis)、Instagram

(Redis)、Youtube(Memcached)、Wikipedia(Memcached)Redis有时会被称为“强化版Memcached”支持持久化、数据恢复、更多数据类型键值数据库数据模型

列族列族数据库使用者Ebay(Cassandra)、Twitter(CassandraandHBase)、Facebook(HBase)、Yahoo(HBase)缺点功能较少,大都不支持强事务一致性不适用情形需要ACID事务支持的情形Cassandra等产品就不适用典型应用分布式数据存储与管理数据在地理上分布于多个数据中心的应用程序可以容忍副本中存在短期不一致情况的应用程序拥有动态字段的应用程序相关产品BigTableHBaseCassandra优点查找速度快、可扩展性强、容易进行分布式扩展、复杂性低01020304050607

一个XML文档

<configuration>

<property>

<name>hbase.rootdir</name>

<value>hdfs://localhost:9000/hbase</value>

</property></configuration>关系数据库必须有schema信息才能理解数据的含义学生(学号,姓名,性别,年龄,系,年级)(1001,张三,男,20,计算机,2002)文档数据库特性能够将它自己的数据的内容和类型进行自我描述存储数据如下所示{"ID":1,"NAME":"SequoiaDB","Tel":{"Office":"123123","Mobile":"132132132"}"Addr":"China,GZ"}更好的并发性文档数据库可以完整包含在一个文档里,具有较好的并发性。在对数据进行更新时,只需要锁定一个文档就可以把相关数据修改掉文档数据库的数据结构JSON数据格式文档数据库文档数据库使用者百度云数据库(MongoDB)缺点缺乏统一的查询语法典型应用存储、索引并管理面向文档的数据或者类似的半结构化数据相关产品MongoDBCouchDBTerrastore优点性能好(高并发),灵活性高提供嵌入式文档功能,将经常查询的数据存储在同一个文档中01020304050607数据模型就是一个键值本质上是一个键值数据库只不过值(value)是版本化文档图数据库缺点数据模型应用范围非常有限典型应用专门用于处理具有高度相互关联关系的数据比较适合于社交网络、模式识别、依赖分析、推荐系统以及路径寻找等问题相关产品Neo4jCisco(Neo4J)T-Mobile(Neo4J)优点灵活性高,支持复杂的图形算法可用于构建复杂的关系图谱0102030405数据模型图结构功能较稳定强大满足多样需求数据模型较灵活支持较多功能具有很好的扩展性依赖Hadoop生态环境模型相对较为简单,可提供随机数据存储,数据库伸缩性较好MySQLMongoDBHBaseRedis

7.6云数据库7.6.1云数据库的概念7.6.3云数据库与其他数据库的关系提纲7.6.2云数据库的特性7.6.4代表性云数据库产品云数据库的概念云数据库的概念高可扩展性高可用性采用多租形式支持资源有效分发云数据库的概念云数据库优良特性动态可扩展高可用性易用性高性能免维护安全较低的使用代价腾讯云数据库和自建数据库的比较自建数据库腾讯云数据库数据安全性开发者自行解决,成本高昂15种类型备份数据,保证数据安全服务可用性99.99%高可靠性数据备份0花费,系统自动多时间点数据备份维护成本0成本,专业团队7x24小时帮助维护实例扩容一键式直接扩容,安全可靠资源利用率按需申请,资源利用率高达99.9%技术支持专业团队一对一指导、QQ远程协助开发者腾讯云数据库SQLServer、Oracle云数据库与其他数据库的关系云数据库并没有专属于自己的数据模型云数据库并非一种全新的数据库技术,而是以服务的方式提供数据库功能同一个公司也可能提供采用不同数据模型的多种云数据库服务许多公司后端数据库都是直接用现有各种关系数据库或NoSQL数据库产品云数据库->数据模型云数据库产品企业产品AmazonDynamo、SimpleDB、RDSGoogleGoogleCloudSQLMicrosoftMicrosoftSQLAzureOracleOracleCloudYahoo!PNUTSVerticaAnalyticDatabasev3.0fortheCloudEnerpriseDBPostgresPlusintheCloud阿里阿里云RDS百度百度云数据库腾讯腾讯云数据库

7.7分布式数据库HBase7.7.1从BigTable说起7.7.3HBase数据模型提纲7.7.2HBase简介7.7.4HBase系统架构从BigTable说起建立整个网页的索引搜索互联网网页在BigTable上面运行MapReduce设计一个网页爬虫网页搜索云数据库的概念用户发起网络搜索请求网络搜索应用查询建立好的索引,从BigTable得到网页搜索结果提交给用户搜索互联网从BigTable说起网页在BigTable中的存储样例开源实现HBaseBigTable解决谷歌公司内部大规模网页搜索问题存储其大量网页从BigTable说起可以扩展到PB级别的数据和上千台机器BigTable诞生利用谷歌MapReduce分布式并行计算模型来处理海量数据使用谷歌分布式文件系统GFS作为底层数据存储

采用Chubby提供协同服务管理从BigTable说起

BigTable是一个分布式存储系统歌的许多项目都存储在BigTable中,包括搜索、地图等HBase简介高可靠高性能面向列可伸缩HBase可以用来存储非结构化和半结构化的松散数据分布式数据库HBase简介图Hadoop生态系统中HBase与其他部分的关系HBase数据模型HBase数据模型单元格(具体存储数据的地方)namemajoremailHBase数据模型不同版本的数据采用时间戳进行索引时间戳H

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论