大数据存储

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

大数据存储数据库技术的变革和发展余洋yuy@whu.edu.cn目录完整的科学研究周期包含四个部分:数据采集、数据整理、数据分析及数据可视化。现代科学研究可以通过多种方式收集和生成数据,对于大量收集到的数据,却缺乏好的整理与分析工具。数据存储的前世今生01数据库设计的CAP02大数据时代的NOSQL03科学研究的第四范式为数据存储存储的研究和快速发展带来了新的动力NoSQL将意味着不止SQL01数据存储的前世今生事件一:公共卫生事件2009年,H1N1流感预测对手谷歌疾控中心武器分析搜索记录医院报告结果谷哥提前两周得到结果与官方数据相关性达97%−5000万美国人−2003—2008年流感关键词−4.5亿数学模型−45个关键词组合01数据存储的前世今生事件二:变革商业事件机票价格预测对手埃齐奥尼的Farecast系统武器分析大量价格记录结果票价预测准确度达75%平均每张机票节省50美元−到2013年拥有2000亿条航班记录01数据存储的前世今生事件三:出租车事件交通拥堵热点提取对手武汉1.5万出租车GPS数据武器分析车辆速度结果每5分钟处理1次−1.5万辆车−每15秒上传1次−匹配、聚类、拟合−5分钟低密度高密度有哪些理论可以帮我们做判断?数据库技术的转变是数据处理理念的转变01数据存储的前世今生01数据存储的前世今生1)数据库管理系统层次数据库→网状数据库→关系数据库上一层记录类型和下一层记录类型的联系是1:N联系,容易产生数据冗余不能表达含有多对多关系的复杂结构,容易引起数据不一致01数据存储的前世今生1)数据库管理系统层次数据库→网状数据库→关系数据库数据量越大,结构越复杂,不利于用户掌握用户必须了解系统存储结构的细节,加重了编程的负担01数据存储的前世今生1)数据库管理系统层次数据库→网状数据库→关系数据库EdfarF.CoddDonChamberlinMichaelStonebraker01数据存储的前世今生1)数据库管理系统层次数据库→网状数据库→关系数据库MichaelStonebraker,SQLServer/Sysbase奠基人。1992年提出对象关系数据库模型,创作了Ingres,Illustra,Cohera,StreamBaseSystems和Vertica等系统。Stonebraker教授也曾担任过Informix的CEO,目前他是MIT麻省理工学院客席教授。Stonebraker教授领导了称为Postgres项目,并把Postgres放在了BSD版权的保护下。如今Postgres名字已经变成了PostgreSQL,功能也是日渐强大。在Ingres基础上产生了很多商业数据库软件,包括Sybase、MicrosoftSQLServer、Informix和许多其他的系统。可以认为,Stonebraker教授是目前主流数据库的奠基人。01数据存储的前世今生2)关系数据库行式存储→ACID→关系数据库的问题数据存放在数据文件内数据文件的基本组成单位:块/页块内结构:块头、数据区01数据存储的前世今生2)关系数据库行式存储→ACID→关系数据库的问题读某个列必须读入整行行不等长,修改数据可能导致行迁移行数据较多时可能导致行链01数据存储的前世今生2)关系数据库行式存储→ACID→关系数据库的问题全表扫描行标识访问01数据存储的前世今生2)关系数据库行式存储→ACID→关系数据库的问题B-树索引01数据存储的前世今生2)关系数据库行式存储→ACID→关系数据库的问题−A原子性在事务中执行多个操作是原子性的,要么操作全部执行,要么一个都不执行−C一致性进行事务的过程中整个数据加的状态是一致的,不会出现数据花掉的情况−I隔离性两个事务不会相互影响,覆盖彼此数据等−D持久化事务一旦完成,那么数据应该是被写到安全的,持久化存储的设备上01数据存储的前世今生2)关系数据库行式存储→ACID→关系数据库的问题ImpedanceMismatch–ORM(Hibernate存在的价值)–这个问题影响的是开发效率Notdesignedtoberunonclusters–Scalingup–Scalingout–传统的SQLServer,Oracle都是强依赖于磁盘系统来实现集群01数据存储的前世今生2)关系数据库行式存储→ACID→关系数据库的问题问题1:表数据膨胀了01数据存储的前世今生2)关系数据库行式存储→ACID→关系数据库的问题问题2:服务器顶配了分库分表按照地域分按照业务分按照ID分01数据存储的前世今生2)关系数据库行式存储→ACID→关系数据库的问题−2006年−长途电信传输局−300辆车−15s上传1次数据−每月备份后删除01数据存储的前世今生2)关系数据库行式存储→ACID→关系数据库的问题关系型数据库在单机容量达到上限的时候,做扩展是非常难的,往往要要根据主键进行分表;其实可以想到一旦分表之后,就已经开始违反关系型数据库的范式了,因为“同一个集合的数据被拆分到多个表”当数据开始分布存储的时候,关系型数据库逐渐演变成依赖主键的查询系统。01数据存储的前世今生3)NOSQL数据库新型数据库的崛起大部分NOSQL产品的共同点:支持SQL不再是必选项,取而代之的是简单的Key-Value存取模型;在关系型数据库的基础上大刀阔斧的做减法,比如不支持事务;Nosql产品对性能的关注远远超过ACID,往往只提供行级别的原子性操作,即对同一个key的操作操作会是串行执行,保证数据不会损坏。NoSQL=NotOnlySQL01数据存储的前世今生3)NOSQL数据库新型数据库的崛起类型部分代表列存储Hbase、Cassandra、Hypertable文档存储MongoDB、CouchDBkey-value存储TokyoCabinet/Tyrant、BerkeleyDBMemcacheDB、Redis图存储Neo4J、FlockDB、InfoGrid对象存储Db4o、Versantxml数据库BerkeleyDBXML、BaseX01数据存储的前世今生3)NOSQL数据库新型数据库的崛起大部分NOSQL产品的共同点:保持产品功能的简单,在细分方向上做到极致,不仅仅是众多NOSQL产品的特点。对于开发者,在架构设计的过程中,面对的不是单个的NOSQL产品选择,而是在NOSQL生态圈中选择出最佳拍档。下面的问题什么是NOSQL生态圈?怎么选择最佳拍档?02数据库设计的CAP1)NOSQL的生态圈02数据库设计的CAP2)CAP原理CAPC:Consistency一致性A:Availability可用性P:ToleranceofnetworkPartition分区容忍性(分布式)一致性是说数据的原子性,这种原子性在经典ACID的数据库中是通过事务来保证的;当事务完成时,无论其是成功还是回滚,数据都会处于一致的状态;在分布式环境中,一致性是说多点的数据是否一致。02数据库设计的CAP2)CAP原理C可用性可用性是说服务能一直保证是可用的状态,当用户发出一个请求,服务能在有限时间内返回结果。而这种可用性是不关乎结果的正确与否,所以,如果服务一致返回错误的数据,其实也可以称为其是可用的。02数据库设计的CAP2)CAP原理A可用性是指网络的分区网络中的两个服务结点出现分区的原因很多,比如网络断了、对方结点因为程序bug或死机等原因不能访问02数据库设计的CAP2)CAP原理P02数据库设计的CAP2)CAP原理CAP(Consistency,Availability,Patitiontolerance)理论论述的是在任何分布式系统中,只可能满足一致性,可用性及分区容忍性三者中的两者,不可能全部都满足。所以不用花时间精力在如何满足所有三者上面。CAP理论无疑是导致技术趋势由关系数据库系统向NoSQL系统转变的最重要原因。02数据库设计的CAP2)CAP原理•CA传统数据库•AP大多数网站架构的选择•CPRedis、MongoDB用户对数据的不一致性是不敏感的(数字敏感的场景除外)02数据库设计的CAP2)CAP原理CA满足一致性,可用性的系统,通常在可扩展性上不太强大TraditionalRDBMSslikePostgres,MySQL,etc(relational)Vertica(column-oriented)AsterData(relational)Greenplum(relational)02数据库设计的CAP2)CAP原理AP满足可用性,分区容忍性的系统,通常可能对一致性要求低一些Dynamo(key-value)Voldemort(key-value)TokyoCabinet(key-value)KAI(key-value)Cassandra(column-oriented/tabular)CouchDB(document-oriented)SimpleDB(document-oriented)Riak(document-oriented)02数据库设计的CAP2)CAP原理02数据库设计的CAP2)CAP原理CP满足一致性,分区容忍性的系统,通常性能不是特别高BigTable(column-oriented/tabular)Hypertable(column-oriented/tabular)HBase(column-oriented/tabular)MongoDB(document-oriented)Terrastore(document-oriented)Redis(key-value)Scalaris(key-value)MemcacheDB(key-value)BerkeleyDB(key-value)02数据库设计的CAP2)CAP原理03大数据时代的NOSQLNOSQL的发展源于大数据的需求变革的基础一切事物都可量化,变为数据变革的重点由T(技术)转变到I(信息)上03大数据时代的NOSQL1)什么是大数据Bigvolume–smallanalyticsBigvolume–biganalyticsBigvelocityBigvarietyBIGDATA03大数据时代的NOSQL1)什么是大数据Bigvolume–smallanalytics传统SQL:Select*from…where…如果查询到的结果是MB、GB、TB级的怎么办?要考虑count、sum、avg等,可辅之以groupby03大数据时代的NOSQL1)什么是大数据Bigvolume–biganalytics03大数据时代的NOSQL1)什么是大数据Bigvelocity03大数据时代的NOSQL1)什么是大数据Bigvariety03大数据时代的NOSQL2)常见的NOSQL产品DynamoDBHBase是一个分布式的、面向列的开源数据库,该技术来源于Google论文“Bigtable:一个结构化数据的分布式存储系统”。HBase是Apache的Hadoop项目的子项目。就像Bigtable利用了Google文件系统(FileSystem)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库.另一个不同的是HBase基于列的而不是基于行的模式。03大数据时代的NOSQL2)常见的NOSQL产品03大数据时代的NOSQL2)常见的NOSQL产品HBASE的数据模型:Rowkey、列族、列、时间戳NoSQL,分布式的Key-Value型数据库,由Facebook贡献与Hbase类似,也是借鉴GoogleBigtable的思想体系只有顺序写,没有随机写的设计,满足高负荷情形的性能需求Cassandra的主要特点就是它不是一个数据库,而是由一堆数据库节点共同构成的一个分布式网络服务,对Cass

1 / 59
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功