- 1、本文档共70页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课件05多结构化数据管理googleBIGTABLE1讲述
多结构化数据管理潘鹏
数据存储与组织方法
现有技术(Google Big Table)
2
Big Table——分布式结构化数据存储系统
Bigtable被设计用于处理海量数据(通常是分布在数千台普通服务器上的PB级的数据)。
Google的很多项目使用Bigtable:
Web索引
Google Earth
Google Finance
。。。
2
Big Table——分布式结构化数据存储系统
要求迥异:高吞吐量的批处理,及时响应以快速返回数据给用户。
Bigtable集群的配置也有很大的差异:有的集群只有几台服务器,而有的则需要上千台服务器、存储几百TB的数据。
Bigtable提供了一个灵活的、高性能的解决方案。
3
4
基本特点
使用了很多数据库的实现策略
(在很多方面Bigtable和数据库很类似)。
Bigtable不支持完整的关系数据模型——与之相反,Bigtable提供了简单的数据模型,客户可以动态控制数据的分布和格式。
4
基本特点
数据没有Schema,用户自己定义Schema。
通过选择数据模式,客户可以控制数据的位置相关性。
用户也可以自己推测数据底层存储的位置相关性(如树状结构中具有相同前缀的数据存放位置接近,可以把相关数据一次读取出来)。
可以通过BigTable的模式参数来控制数据是存放在内存中、还是硬盘上。
5
6
基本特点
数据的下标 = 行和列的名字(名字可是任意的字符串)。
存储的数据都视为字符串,Bigtable本身不去解析这些字符串。
↓
客户程序可以把各种结构化或者半结构化的数据串行化到这些字符串里。
6
7
数据模型
Bigtable是一个稀疏的、分布式的、持久化存储的多维度排序Map(由key和value组成)。
Map的索引=行关键字+列关键字+时间戳。
Map中的每个value都是一个未经解析的byte数组。
↓
(row:string, column:string,time:int64)-string
7
8
数据模型举例
使用表Webtable存储海量的网页及相关信息。
用URL(反向存储)作为行关键字。
使用网页的某些属性作为列名(anchor列族存放引用该网页的锚链接文本,网页的内容存在contents列族中,并用获取该网页的时间戳作为标识。按照获取时间不同,存储多个版本的网页数据) 。
8
数据模型举例
CNN的主页被Sports Illustrater和MY-look的主页引用,因此该行包含了名为“anchor:”和 “anchhor:my.look.ca”的列。
每个锚链接只有一个版本(时间戳标识了列的版本,t9和t8分别标识了两个锚链接的版本);而contents列则有三个版本,分别由时间戳t3,t5,和t6标识。
9
10
数据模型——行
表的行关键字可以是任意字符串(目前最大64KB)。
程序在对某一行进行并发更新操作时都是原子的(对同一个行关键字的读或者写操作,不论读或者写这一行里多少个不同列)。
每一行可以参与动态分区,一个分区叫做一个”Tablet”,Tablet是数据分布和负载均衡调整的最小单位。(SSTable列存储)
10
数据目录
11
数据模型——行
通过行关键字的字典顺序组织数据。
用户可通过选择合适的行关键字在数据访问时有效利用数据的位置相关性。
例:在Webtable里反转URL中主机名,可以把同一个域名下的网页聚集起来组织成连续的行,提高基于主机和域名的分析的效率。
Tablet
12
数据模型——列族
“列族“ ——列关键字组成的集合,是访问控制的基本单位。
存放在同一列族下的所有数据通常都属于同一个类型(可压缩列族)。
一张表的列族不能太多(最多几百个),并且列族在运行期间很少改变。
列族使用:先创建,然后在列族中任何的列关键字下存放数据。
12
稀疏
数据模型——列族
访问控制、磁盘和内存的使用统计都是在列族层面进行的。
一些应用可以添加新的基本数据
一些应用可以读取基本数据并创建继承的列族
一些应用则只允许浏览数据(甚至部分数据)
13
14
数据模型——列关键字
列关键字的命名语法——“列族:限定词”。
列族的名字必须是可打印的字符串,限定词可以是任意的字符串。
例:
1)Webtable的language列族,存放撰写网页的语言,只有一个列关键字用来存放网页的语言标识ID。
2)anchor列族,限定词是引用该网页的站点名,每一个列关键字代表一个锚链接,每列的数据项存放的是链接文本。
14
15
数据模型——时间
文档评论(0)