Bigtable的些许重点

分布式数据库系统

针对于海量数据,可扩展,高吞吐量,低时延

不支持关系模型

通过row和column进行索引,row和column可以是任意字符串

所存储的数据也是字符串


Bigtable是一个map,value是array of bytes,通过row key, column key, timestamp检索。

(row:string, column:string, time:int64) --> string


读写操作对于行是原子性的

The row range for a table is dynamically partitioned.

Each row range is called a tablet, which is the unit of distribution and load balancing.

一个tablet包含多行


列族是访问控制的基本单位

同一列族的数据通常是相同类型的,对同一列族的数据进行压缩

列族属于模式,数量有限(in the hundreds at most),很少改变

列的数量是不限制的(have an unbounded number of columns)

列键 column key命名为family:qualifier


时间戳timestamp

可通过HBase系统指定,也可在客户端指定

可存储最新n条数据,也可存储最近几天的数据


基于GFS存储log和data files

SSTable文件格式来存储Bigtable data

Internaly, each SSTable contains a sequence of blocks(typically each block is 64KB in size, but this is configurable).

A block index (stored at the end of the SSTable) is used to locate blocks; the index is loaded into memory when the SSTable is opened.


Chubby provides a namespace that consists of directories and small files.

Each directory or file can be used as a lock, and reads and writes to a file are atomic.


Chubby的职责:

1、to ensure that there is at most one active master at any time

2、to store the bootstrap location of Bigtable data

3、to discover tablet servers and finallize tablet server deaths

4、to store Bigtable schema information (the column family information for each table)

5、to store access control lists

如果Chubby持续一段时间不能访问,Bigtable becomes unavialiable。



实现包含三个部分:

a library that is linked into every client

one master server

many tablet servers (can be dynamically added or removed)



master server的职责:

1、assigning tablets to tablet servers

2、detecting the addition and expiration of tablet servers

3、balancing tablet-server load

4、garbage collection of files in GFS

5、handles schema changes such as table and column family creations


teblet server的职责:

1、manages a set of tablets (typically we have somewhere between ten to thousand tablets per tablet server)

2、handles read and write requests to the teblets that is loaded

3、splits tablets that have grown too large


每个table包含若干tablets,每个tablet对应多行


通过3层类B+树实现tablet的索引

第一层是保存在Chubby中的文件,记录的是root tablet的位置

第二层为root tablet,包含METADATA表的tablets信息,为了保证三层结构,root table只有一个,不进行split。

第二层为METADATA,包含的是user tablets的位置,以tablet's table identifier和its end row为key,value为对应tablet的位置


root tablet实际是第一个METADATA表的tablet。


Locality groups:

用户可以将同时访问的列族设置为一个locality group,每个locality group作为一个SSTable存储


Compression:

可以将包含locality group的SSTable文件进行压缩存储以节省空间


Caching for read performance:

Higher-level cache: the key-value pairs returned by the SSTable

Lower-level cache: SSTables blocks


Bloom filters:

A read operation has to read from all SSTables that make up the state of a tablet.

过滤器可以减少磁盘访问量






本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/387402.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里云天池 Python训练营Task4: Python数据分析:从0完成一个数据分析实战 学习笔记

本学习笔记为阿里云天池龙珠计划Python训练营的学习内容,学习链接为:https://tianchi.aliyun.com/specials/promotion/aicamppython?spm5176.22758685.J_6770933040.1.6f103da1tESyzu 一、学习知识点概要 本次主要通过阿里云天池的赛题【Python入门系…

JMETER从JSON响应中提取数据

如果你在这里,可能是因为你需要使用JMeter从Json响应中提取变量。 好消息!您正在掌握掌握JMeter Json Extractor的权威指南。作为Rest API测试指南的补充,您将学习掌握Json Path Expressions 所需的一切。 我们走吧!并且不要惊慌&…

centos7安装oracle12c 二

环境:CentOS7VMware12,分配资源:CPU:2颗,内存:4GB,硬盘空间:30GB Oracle 12C企业版64位 下载地址:http://www.oracle.com/technetwork/database/enterprise-edition/down…

阿里云天池 Python训练营Task5:Python训练营测试 学习笔记

一、学习知识点概要 本次是Python训练营的测试,在45分钟内完成25题,满分100分及格80分。题目主要考察Task1到Task3里面的Python基础知识。在我随到的25道题里,知识点有: 变量(包括数据类型和容器类型)运算…

centos7安装oracle12c 三

场景描述:我在自己电脑的虚拟机上linux环境下安装oracle11g数据库。 Linux版本为:CentOS release 6.8 (Final),Oracle版本为:linux.x64_11gR2 问题描述:在oracle安装到Prerequisite Checks这一步的时候,出现…

mysql删除一条记录

mysql如何删除一条记录delete from 表名 where 条件实例:use db1delete from tb1 where id 1; 转载于:https://www.cnblogs.com/effortsing/p/10393229.html

HBase体系结构

HBase HBase是Apache Hadoop的数据库,基于HDFS文件系统 random,realtime read/write access to Big Data 开源、分布式、可扩展、面向列 larger tables--billions of rows X millions of columns 不支持表链接操作 不支持事务处理 HBase存储的数据从逻辑上来…

《属性数据分析引论》 部分课后习题R语言实践(第三章、第四章)

目录 前言 第三章 广义线性模型 习题3.18 a小题 b小题 c小题 d小题 习题3.19 a小题 b小题 c小题 第四章 Logistic回归 习题4.1 a小题 b小题 c小题 d小题 e小题 习题4.2 a小题 b小题 c小题 d小题 小结 前言 习题选自高等教育出版社译制,Alan A…

Linux下SVN搭建

在Linux系统中搭建svn服务所需要用到的软件叫做subversion,可以通过yum来进行安装,如图 安装好软件后第一件事就是创建一个仓库目录 [rootserver1 ~]# mkdir /svn 使用svn自带命令建立仓库 [rootserver1 ~]# svnadmin create /svn 进入该仓库&#xff0c…

HBase模式设计

HBase的使用是为了解决或优化某一问题 恰当的设计模式可以使其具有HBase本身所不具有的功能,并且使其执行效率得到成百上千倍的提高 在进行HBase数据库模式设计的时候,不当的设置可能对系统的性能产生不良的影响 需要注意: 1、列族的数量及…

C++STL特殊容器priority_queue

在了解priority_queue&#xff08;优先队列&#xff09;前&#xff0c;可以先去瞅瞅queue&#xff0c;下面是传送门啦>——< 传送门 priority_queue的基本性能 class priority_queue<>实现出一个queue&#xff0c;只不过其中的元素依照优先级被读取。priority_queu…

可用于多元正态的参数估计 及 均值向量和协差阵检验 的R语言函数总结

一、多元正态的参数估计 1.1 样本均值 在R语言中&#xff0c;均值通常用函数mean()得到&#xff0c;但是mean()只能计算一维变量的样本均值&#xff0c;在面对多元随机变量的样本时&#xff0c;假设我们以数据框的形式保存样本&#xff0c;我们有以下方法可以得到样本均值&…

30秒的PHP代码片段-MATH

本文来自GitHub开源项目 点我跳转 30秒的PHP代码片段 精选的有用PHP片段集合&#xff0c;您可以在30秒或更短的时间内理解这些片段。数学函数 average 返回两个或多个数字的平均值。 function average(...$items) { $count count($items); return $count 0 ? 0 : array_sum(…

Hive简介

Hive最初是应Facebook每天产生的海量新兴社会网络数据进行管理和机器学习的需求而产生和发展的 是建立在Hadoop上的数据仓库基础架构 作为Hadoop的一个数据仓库工具&#xff0c;Hive可以将结构化的数据文件映射为一张数据库表&#xff0c;并提供简单的SQL查询功能 Hive作为数…

可用于 线性判别、聚类分析 的R语言函数总结

一、判别分析 判别分析是一种分类技术&#xff0c;其通过一个已知类别的“训练样本”来建立判别准则&#xff0c;并通过预测变量来为未知类别的数据进行分类。根据判别的模型分为线性判别和非线性判别&#xff0c;线性判别中根据判别准则又分为Fisher判别&#xff0c;Bayes判别…

Linux 环境下搭建 Jenkins(Hudson)平台

安装jenkins&#xff1a;安装 jenkins 有两种方式&#xff1a;安装方式一&#xff1a; [java] view plaincopysudo java -jar jenkins.war –httpPort18080 –ajp13Port18009 但是很多时候我们是使用SSH方式到目标机器上的&#xff0c;放我们关闭SSH连接时&#xff0c;这个命…

Android APK 打包过程 MD

Markdown版本笔记我的GitHub首页我的博客我的微信我的邮箱MyAndroidBlogsbaiqiantaobaiqiantaobqt20094baiqiantaosina.comAndroid APK 打包流程 MD 目录 目录APK 的打包流程整体流程资源的编译和打包资源ID资源索引概况具体打包过程aapt阶段aidl阶段Java Compiler阶段dex阶段a…

可用于 主成分分析、R型因子分析、简单相应分析 的R语言函数总结

一、主成分分析 主成分分析是多元统计分析的一种常用的降维方法&#xff0c;它以尽量少的信息损失&#xff0c;最大程度将变量个数减少&#xff0c;且彼此间互不相关。提取出来的新变量成为主成分&#xff0c;主成分是原始变量的线性组合。 1.1 KMO检验和Bartlett球形检验 在…

[国家集训队]墨墨的等式

Description 墨墨突然对等式很感兴趣&#xff0c;他正在研究a1x1a2y2…anxnB存在非负整数解的条件&#xff0c;他要求你编写一个程序&#xff0c;给定N、{an}、以及B的取值范围&#xff0c;求出有多少B可以使等式存在非负整数解。 Input 输入的第一行包含3个正整数&#xff0c;…

Storm简介

Storm是实时流式数据处理框架&#xff0c;支持多种编程语言 应用案例&#xff1a; realtime analytics online machine learning continuous computation distributed RPC ETL 性能&#xff1a;a million tuples per second per node 可扩展、高容错 结合消息队列和数据库…