ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

头歌实践教学平台:数据科学与大数据技术导论(九上)

头歌实践教学平台:数据科学与大数据技术导论(九上) 九、数据存储与管理第1关传统的数据存储与管理技术任务描述本关任务根据相关知识内容完成右边选择题。相关知识为了完成本关任务你需要掌握1.文件系统2.关系数据库3.数据仓库4.并行数据库。文件系统文件系统是操作系统用于明确存储设备常见的是磁盘也有基于 NAND Flash 的固态硬盘或分区上的文件的方法和数据结构即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统简称“文件系统”。我们平时在计算机上使用的 WORD 文件、PPT 文件、文本文件、音频文件、视频文件等都是由操作系统中的文件系统进行统一管理的。关系数据库一个关系数据库可以看成是许多关系表的集合每个关系表可以看成一张二维表格。目前市场上常见的关系数据库产品包括 Oracle、SQLServer、MySQL、DB2 等总体而言关系数据库具有如下特点1存储方式关系数据库采用表格的储存方式数据以行和列的方式进行存储要读取和查询都十分方便。2存储结构关系数据库按照结构化的方法存储数据每个数据表的结构都必须事先定义好比如表的名称、字段名称、字段类型、约束等然后再根据表的结构存入数据这样做的好处就是由于数据的形式和内容在存入数据之前就已经定义好了所以整个数据表的可靠性和稳定性都比较高但是带来的问题就是数据模型不够灵活一旦存入数据后如果需要修改数据表的结构就会十分困难。3存储规范关系数据库为了规范化数据、减少重复数据以及充分利用好存储空间把数据按照最小关系表的形式进行存储这样数据管理就可以变得很清晰、一目了然。当存在多个表时表和表之间通过主外键关系发生关联并通过连接查询获得相关结果。4扩展方式由于关系数据库将数据存储在数据表中数据操作的瓶颈出现在多张数据表的操作中而且数据表越多这个问题越严重。如果要缓解这个问题只能提高处理能力也就是选择速度更快、性能更高的计算机这样的方法虽然具有一定的拓展空间但是这样的拓展空间是非常有限的也就是一般的关系型数据库只具备有限的纵向扩展能力。5查询方式关系数据库采用结构化查询语言即 SQLStructuredQuery Language来对数据库进行查询。结构化查询语言是高级的非过程化编程语言允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法也不需要用户了解具体的数据存放方式所以各种具有完全不同底层结构的数据库系统可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套这使它具有极大的灵活性和强大的功能。6事务性关系数据库可以支持事务的 ACID 特性原子性Atomicity、一致性Consistency、隔离性Isolation、持久性Durability。当事务被提交给了 DBMS数据库管理系统则 DBMS 需要确保该事务中的所有操作都成功完成且其结果被永久保存在数据库中如果事务中有的操作没有成功完成则事务中的所有操作都需要被回滚回到事务执行前的状态从而确保数据库状态的一致性。7连接方式不同的关系数据库产品都遵守一个统一的数据库连接接口标准即 ODBCOpen Database Connectivity。ODBC 的一个显著优点是用它生成的程序是与具体的数据库产品无关的这样可以为数据库用户和开发人员屏蔽不同数据库异构环境的复杂性。ODBC 提供了数据库访问的统一接口为应用程序实现与平台的无关性和可移植性提供了基础因而获得了广泛的支持和应用。数据仓库数据仓库Data Warehouse是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合用于支持管理决策1面向主题操作型数据库的数据组织面向事务处理任务而数据仓库中的数据是按照一定的主题域进行组织。主题是指用户使用数据仓库进行决策时所关心的重点方面一个主题通常与多个操作型信息系统相关。2集成数据仓库的数据来自于分散的操作型数据将所需数据从原来的数据中抽取出来进行加工与集成、统一与综合之后才能进入数据仓库。3相对稳定数据仓库是不可更新的数据仓库主要是为决策分析提供数据所涉及的操作主要是数据的查询。4反映历史变化在构建数据仓库时会每隔一定的时间比如每周、每天或每小时从数据源抽取数据并加载到数据仓库。一个典型的数据仓库系统通常包含数据源、数据存储和管理、OLAP 服务器、前端工具和应用等四个部分如下图所示数据仓库体系架构并行数据库并行数据库是指那些在无共享的体系结构中进行数据操作的数据库系统这些系统大部分采用了关系数据模型并且支持 SQL 语句查询但为了能够并行执行SQL的查询操作系统中采用了两个关键技术关系表的水平划分和 SQL 查询的分区执行。并行数据库系统的目标是高性能和高可用性,通过多个节点并行执行数据库任务提高整个数据库系统的性能和可用性。并行数据库系统的主要缺点就是没有较好的弹性而这种特性对中小型企业和初创企业是有利的。人们在对并行数据库进行设计和优化的时候认为集群中节点的数量是固定的若需要对集群进行扩展和收缩则必须为数据转移过程制订周全的计划。这种数据转移的代价是昂贵的并且会导致系统在某段时间内不可访问而这种较差的灵活性直接影响到并行数据库的弹性以及现用现付商业模式的实用性。并行数据库的另一个问题就是系统的容错性较差过去人们认为节点故障是个特例并不经常出现因此系统只提供事务级别的容错功能如果在查询过程中节点发生故障那么整个查询都要从头开始重新执行。这种重启任务的策略使得并行数据库难以在拥有数以千个节点的集群上处理较长的查询因为在这类集群中节点的故障经常发生。基于这种分析并行数据库只适合于资源需求相对固定的应用程序。不管怎样并行数据库的许多设计原则为其他海量数据系统的设计和优化提供了比较好的借鉴。编程要求根据相关知识完成右侧选择题第2关大数据时代的数据存储与管理技术任务描述本关任务根据相关知识内容完成右边选择题。相关知识为了完成本关任务你需要掌握1.分布式文件系统2.NewSQL 和 NoSQL 数据库3.云数据库。分布式文件系统分布式文件系统Distributed File SystemDFS是指文件系统管理的物理存储资源不一定直接连接在本地节点上而是通过计算机网络与节点可简单的理解为一台计算机相连或是若干不同的逻辑磁盘分区或卷标组合在一起而形成的完整的有层次的文件系统。DFS 为分布在网络上任意位置的资源提供一个逻辑上的树形文件系统结构从而使用户访问分布在网络上的共享文件更加简便。单独的 DFS 共享文件夹的作用是相对于通过网络上的其他共享文件夹的访问点。计算机通过文件系统管理、存储数据而信息爆炸时代中人们可以获取的数据成指数倍的增长单纯通过增加硬盘个数来扩展计算机文件系统的存储容量的方式在容量大小、容量增长速度、数据备份、数据安全等方面的表现都差强人意。分布式文件系统可以有效解决数据的存储和管理难题将固定于某个地点的某个文件系统扩展到任意多个地点或多个文件系统众多的节点组成一个文件系统网络。每个节点可以分布在不同的地点通过网络进行节点间的通信和数据传输。人们在使用分布式文件系统时无需关心数据是存储在哪个节点上、或者是从哪个节点从获取的只需要像使用本地文件系统一样管理和存储文件系统中的数据。分布式文件系统是建立在客户机/服务器技术基础之上的一个或多个文件服务器与客户机文件系统协同操作这样客户机就能够访问由服务器管理的文件。分布式文件系统的发展大体上经历子三个阶段第一阶段是网络文件系统第二阶段是共享 SAN 文件系统第三阶段是面向对象的并行文件系统。分布式文件系统把大量数据分散到不同的节点上存储大大减小了数据丢失的风险。分布式文件系统具有冗余性部分节点的故障并不影响整体的正常运行而且即使出现故障的计算机存储的数据已经损坏也可以由其它节点将损坏的数据恢复出来。因此安全性是分布式文件系统最主要的特征。分布式文件系统通过网络将大量零散的计算机连接在一起形成一个巨大的计算机集群使各主机均可以充分发挥其价值。此外集群之外的计算机只需要经过简单的配置就可以加入到分布式文件系统中具有极强的可扩展能力。其整体架构如下图所示分布式文件系统的整体结构Google SpannerSpanner 是一个可扩展的、全球分布式的数据库是由谷歌公司设计、开发和部署的。在最高抽象层面Spanner 就是一个数据库把数据分片存储在许多 Paxos 状态机上这些机器位于遍布全球的数据中心内。复制技术可以用来服务于全球可用性和地理局部性。客户端会自动在副本之间进行失败恢复。随着数据的变化和服务器的变化Spanner 会自动把数据进行重新分片从而有效应对负载变化和处理失败。Spanner 被设计成可以扩展到几百万个机器节点跨越成百上千个数据中心具备几万亿数据库行的规模。应用可以借助于 Spanner 来实现高可用性通过在一个地区的内部和跨越不同的地区之间复制数据保证即使面对大范围的自然灾害时数据依然可用。作为一个全球分布式数据库Spanner 提供了很好的特性1在数据的副本配置方面应用可以在一个很细的粒度上进行动态控制。应用可以详细规定哪些数据中心包含哪些数据数据距离用户有多远控制用户读取数据的延迟不同数据副本之间距离有多远控制写操作的延迟以及需要维护多少个副本控制可用性和读操作性能。数据也可以被动态和透明地在数据中心之间进行移动从而平衡不同数据中心内资源的使用。2Spanner 提供了读和写操作的外部一致性以及在一个时间戳下面的跨越数据库的全球一致性的读操作。这些特性使得 Spanner 可以支持一致的备份、一致的 MapReduce 执行和原子模式变更所有都是在全球范围内实现即使存在正在处理中的事务也可以。如下图所示显示了在一个 Spanner 的 Universe 中的服务器。Spanner 服务器的组织方式一个 Zone 包括一个 Zonemaster和一百至几千个 Spanserver。Zonemaster 把数据分配给 SpanserverSpanserver 把数据提供给客户端。客户端使用每个 Zone 上面的 Locationproxy 来定位可以为自己提供数据的 Spanserver。Universemaster 是一个控制台它显示了关于 Zone 的各种状态信息可以用于相互之间的调试。Placementdriver 会周期性地与 Spanserver 进行交互来发现那些需要被转移的数据或者是为了满足新的副本约束条件或者是为了进行负载均衡。NewSQL 和 NoSQL 数据库NewSQL 数据库NewSQL 是对各种新的可扩展、高性能数据库的简称这类数据库不仅具有对海量数据的存储管理能力还保持了传统数据库支持 ACID 和 SQL 等特性目前具有代表性的 NewSQL 数据库主要包括 Spanner、Clustrix、GenieDB、ScalArc、Schooner、VoltDB、RethinkDB、ScaleDB、Akiban、CodeFutures、ScaleBase、Translattice、NimbusDB、Drizzle、Tokutek、JustOne DB 等NoSQL 数据库NoSQL 是一种不同于关系数据库的数据库管理系统设计方式是对非关系型数据库的统称它所采用的数据模型并非传统关系数据库的关系模型而是类似键/值、列族、文档等非关系模型。NoSQL 数据库没有固定的表结构通常也不存在连接操作也没有严格遵守 ACID 约束因此与关系数据库相比NoSQL 具有灵活的水平可扩展性可以支持海量数据存储。大数据引发数据库架构变革如下图所示大数据引发数据库架构变革NoSQL 数据库虽然数量众多但是归结起来典型的 NoSQL 数据库通常包括键值数据库、列族数据库、文档数据库和图形数据库。键值数据库Key_1 Value_1Key_2 Value_2Key_3 Value_1Key_4 Value_3Key_5 Value_2Key_6 Value_1Key_7 Value_4Key_8 Value_3相关产品Redis、Riak、SimpleDB、Chordless、Scalaris、Memcached。数据模型键/值对键是一个字符串对象值可以是任意类型的数据比如整型、字符型、数组、列表、集合等。典型应用涉及频繁读写、拥有简单数据模型的应用内容缓存比如会话、配置文件、参数、购物车等存储配置和用户数据信息的移动应用。优点扩展性好灵活性好大量写操作时性能高。缺点无法存储结构化信息条件查询效率较低。不适用情形不是通过键而是通过值来查键值数据库根本没有通过值查询的途径需要存储数据之间的关系在键值数据库中不能通过两个或两个以上的键来关联数据需要事务的支持在一些键值数据库中产生故障时不可以回滚使用者百度云数据库Redis、GitHubRiak、BestBuyRiak、TwitterRedis和Memcached、StackOverFlowRedis、InstagramRedis、YoutubeMemcached、WikipediaMemcached。列族数据库:相关产品BigTable、HBase、Cassandra、HadoopDB、GreenPlum、PNUTS。数据模型列族。典型应用分布式数据存储与管理数据在地理上分布于多个数据中心的应用程序可以容忍副本中存在短期不一致情况的应用程序拥有动态字段的应用程序拥有潜在大量数据的应用程序大到几百 TB 的数据。优点查找速度快可扩展性强容易进行分布式扩展复杂性低。缺点功能较少大都不支持强事务一致性。不适用情形需要 ACID 事务支持的情形Cassandra 等产品就不适用。使用者EbayCassandra、InstagramCassandra、NASACassandra、TwitterCassandra and HBase、FacebookHBase、Yahoo!HBase。文档数据库:“文档”其实是一个数据记录这个记录能够对包含的数据类型和内容进行“自我描述”。XML 文档、HTML 文档和 JSON 文档就属于这一类。相关产品MongoDB、CouchDB、Terrastore、ThruDB、RavenDB、SisoDB、RaptorDB、CloudKit、Perservere、Jackrabbit。数据模型键/值值value是版本化的文档。典型应用存储、索引并管理面向文档的数据或者类似的半结构化数据比如用于后台具有大量读写操作的网站、使用 JSON 数据结构的应用、使用嵌套结构等非规范化数据的应用程序。优点性能好高并发灵活性高复杂性低数据结构灵活提供嵌入式文档功能将经常查询的数据存储在同一个文档中既可以根据键来构建索引也可以根据内容构建索引。缺点缺乏统一的查询语法。不适用情形在不同的文档上添加事务。文档数据库并不支持文档间的事务如果对这方面有需求则不应该选用这个解决方案使用者百度云数据库MongoDB、SAP MongoDB、CodecademyMongoDB、Foursquare MongoDB、NBC NewsRavenDB。图形数据库:相关产品Neo4J、OrientDB、InfoGrid、Infinite Graph、GraphDB。数据模型图结构。典型应用专门用于处理具有高度相互关联关系的数据比较适合于社交网络、模式识别、依赖分析、推荐系统以及路径寻找等问题。优点灵活性高支持复杂的图形算法可用于构建复杂的关系图谱。缺点复杂性高只能支持一定的数据规模。使用者AdobeNeo4J、CiscoNeo4J、T-MobileNeo4J。不同类型数据库比较分析MySQL 产生年代较早而且随着 LAMP 大潮得以成熟。尽管其没有什么大的改进但是新兴的互联网使用的最多的数据库。MongoDB 是个新生事物提供更灵活的数据模型、异步提交、地理位置索引等五花十色的功能。HBase 是个“仗势欺人”的大象兵。依仗着 Hadoop 的生态环境可以有很好的扩展性。但是就像象兵一样使用者需要养一头大象 (Hadoop)才能驱使他。Redis 是键值存储的代表功能最简单。提供随机数据存储。就像一根棒子一样没有多余的构造。但是也正是因此它的伸缩性特别好。就像悟空手里的金箍棒大可捅破天小能成缩成针。云数据库云数据库是部署和虚拟化在云计算环境中的数据库。云数据库是在云计算的大背景下发展起来的一种新兴的共享基础架构的方法它极大地增强了数据库的存储能力消除了人员、硬件、软件的重复配置让软、硬件升级变得更加容易。云数据库具有高可扩展性、高可用性、采用多租形式和支持资源有效分发等特点。云数据库的特性云数据库具有以下特性1动态可扩展2高可用性3较低的使用代价4易用性5高性能6免维护7安全云数据库与其他数据库的关系从数据模型的角度来说云数据库并非一种全新的数据库技术而只是以服务的方式提供数据库功能云数据库并没有专属于自己的数据模型云数据库所采用的数据模型可以是关系数据库所使用的关系模型微软的 SQL Azure 云数据库、阿里云 RDS 都采用了关系模型也可以是 NoSQL 数据库所使用的非关系模型AmazonDynamo 云数据库采用的是“键/值”存储同一个公司也可能提供采用不同数据模型的多种云数据库服务许多公司在开发云数据库时后端数据库都是直接使用现有的各种关系数据库或 NoSQL 数据库产品。其关系如下图所示研究机构 IDC 预言大数据将按照每年 60% 的速度增加其中包含结构化和非结构化数¬据。 如何方便、快捷、低成本地存储这些海量数据是许多企业和机构面临的一个严峻挑战。云数据库就是一个非常好的解决方案目前云服务提供商正通过云技术推出更多可在公有云中托管数据库的方法将用户从繁琐的数据库硬件定制中解放出来同时让用户拥有强大的数据库扩展能力满足海量数据的存储需求。此外云数据库还能够很好地满足企业动态变化的数据存储需求和中小企业的低成本数据存储需求。可以说在大数据时代云数据库将成为许多企业数据的目的地。云数据库产品企业 产品Amazon Dynamo、SimpleDB、RDSGoogle Google Cloud SQLMicrosoft Microsoft SQL AzureOracle Oracle CloudYahoo! PNUTSVertica Analytic Database v3.0 for the CloudEnerpriseDB Postgres Plus in the Cloud阿里 阿里云 RDS百度 百度云数据库腾讯 腾讯云数据库编程要求根据相关知识完成右侧选择题有任何问题都可以随时关注私信
返回列表