文档章节

HBase中的delete操作

刀锋
 刀锋
发布于 2017/06/10 15:19
字数 524
阅读 4
收藏 0
点赞 0
评论 0

参照 http://hadoop-hbase.blogspot.com/2011/12/deletion-in-hbase.html

在HBase当中,当客户发出Delete命令时,实际上数据并没有真正被删除,而是被打上了删除标记,使得这个被删除的数据对外不可见(从逻辑上和MySQL的MVCC也很像,就是通过时间戳来判断数据对读者的可见性,代码见MultiVersionConsistencyControl .java)。用户的Scan和Get操作中,会自动把这些打上删除标记的数据filter掉,这些数据会在compaction操作中被真正删除

HBase的删除标记有三种:

  1. version delete marker 删除指定version的某个qualifier对应的value
  2. column delete marker 删除某个qualifier的所有version的数据
  3. family delete marker 删除column family下所有qualifier对应的所有version的数据 还可以再column和family delete marker上打上时间戳,这时,只有小于这个时间戳的version才会被影响到。

HBase允许进行基于时间的查询从而得到指定时间段的历史数据。查询时间T的数据即查询[0,T+1)的数据。这样就带来了一个潜在的问题。当一个delete marker被set上,所有被它影响到的数据都不再可见。如果你在时间T put了一个qualifier为C的数据,接着在T+X的时间点删除这个qualifier,此时查询[0,T+1)时间段的数据将不会返回qualifier为C的这个KV对。 HBASE-4536 https://issues.apache.org/jira/browse/HBASE-4536解决了这个问题,可以通过在shell里建表时加上 KEEP_DELETED_CELLS=>true或在java client上调用时加上HColumnDescriptor.setKeepDeletedCells(true)。这样,被删除的数据在基于时间的历史数据查询中依然可见(当然要保证delete marker的时间戳不在历史查询的时间范围内)。就刚才的例子来说,加上这个支持后,查询[0,T+1)时间段的数据将会返回C,而查询[0,T+X+1)时间段的数据将不会返回C,因为在该时间点,C也已经被删除了。

本文转载自:http://www.fx114.net/qa-142-102626.aspx

共有 人打赏支持
刀锋
粉丝 2
博文 23
码字总数 289803
作品 0
济南
程序员
Hbase的应用场景、原理及架构分析

Hbase概述 hbase是一个构建在HDFS上的分布式列存储系统。HBase是Apache Hadoop生态系统中的重要 一员,主要用于海量结构化数据存储。从逻辑上讲,HBase将数据按照表、行和列进行存储。 如图所...

xiangxizhishi ⋅ 2017/07/22 ⋅ 0

关于Hbase多版本存储的一个注意点

我们知道hbase是一个多版本的管理系统,在0.96的版本之前默认每个列是3个version,在hbase 0.96之后每个列是1个version,所谓的version其实就是同一条数据插入不同的时间戳来实现的,在hbase...

u010454030 ⋅ 04/19 ⋅ 0

云HBase小组成功抢救某公司自建HBase集群,挽救30+T数据

摘要: 使用过开源HBase的人都知道,运维HBase是多么复杂的事情,集群大的时候,读写压力大,配置稍微不合理一点,就可能会出现集群状态不一致的情况,糟糕一点的直接导致入库、查询某个业务...

阿里云云栖社区 ⋅ 04/18 ⋅ 0

【HBase从入门到精通系列】误删数据如何抢救?

摘要: 前言 有时候我们操作数据库的时候不小心误删数据,这时候如何找回?mysql里有binlog可以帮助我们恢复数据,但是没有开binlog也没有备份就尴尬了。如果是HBase,你没有做备份误删了又如...

阿里云云栖社区 ⋅ 06/12 ⋅ 0

docker入门到实战(9)docker快速安装hbase

下载镜像 docker pull harisekhon/hbase 运行容器 docker run -ti harisekhon/hbase当你执行成功之后直接进入hbase shell,慢慢享用吧 使用hbase 退出容器后,下次再进入可以使用 docker exe...

编程老司机 ⋅ 05/14 ⋅ 0

阿里云HBase安全系列-初体验

概述简介 阿里云HBase安全包括多方面的措施,主要构成部分有:网络隔离,白名单,身份认证,权限控制,数据加密等,具体介绍可参考文章底部链接。本文主要是阿里云HBase安全实战体验篇,介绍...

HBase技术社区 ⋅ 04/13 ⋅ 0

hbase 数据库简介安装与常用命令的使用

一:hbase 简介与架构功能 二:hbase 安装与配置 三:hbase 常见shell 命令操作 一:hbase 简介与架构功能 1.1 为什么要使用hbase 数据库 1.2 hbase 简介: 1.3 HBase与Hadoop的对比 1.4 HB...

flyfish225 ⋅ 04/12 ⋅ 0

hadoop学习(四)--- Hbase与传统数据库的区别

在说HBase之前,我想再唠叨几句。做互联网应用的哥们儿应该都清楚,互联网应用这东西,你没办法预测你的系统什么时候会被多少人访问,你面临的用户到底有多少,说不定今天你的用户还少,明天...

u010775025 ⋅ 04/24 ⋅ 0

win环境下 hbase 数据库搭建流程

Hbase单机版安装使用教程 Hbase介绍请参考技术支持文档,这里只说明Hbase 的安装和使用 第一步:下载安装Hbase数据库 链接:链接:https://pan.baidu.com/s/1si6Nokvz8xkUsmefsRlntQ 密码:k...

lijiaweizuishuai ⋅ 05/28 ⋅ 0

Hbase+Phoenix 安装及基本操作

1.安装Hbase: 解压:tar-zxvf hbase-1.2.1-bin.tar.gz 重命名:mvhbase-1.2.1 hbase 2.配置环境变量 exportJAVAHOME=/usr/local/software/jdk1.8.066 exportCLASSPATH=.:$JAVAHOME/lib/dt.j......

sinadrew ⋅ 04/12 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

一篇文章学懂Shell脚本

Shell脚本,就是利用Shell的命令解释的功能,对一个纯文本的文件进行解析,然后执行这些功能,也可以说Shell脚本就是一系列命令的集合。 Shell可以直接使用在win/Unix/Linux上面,并且可以调用...

Jake_xun ⋅ 30分钟前 ⋅ 0

大数据工程师需要精通算法吗,要达到一个什么程度呢?

机器学习是人工智能的一个重要分支,而机器学习下最重要的就是算法,本文讲述归纳了入门级的几个机器学习算法,加大数据学习群:716581014一起加入AI技术大本营。 1、监督学习算法 这个算法由...

董黎明 ⋅ 今天 ⋅ 0

Kylin 对维度表的的要求

1.要具有数据一致性,主键值必须是唯一的;Kylin 会进行检查,如果有两行的主键值相同则会报错。 2.维度表越小越好,因为 Kylin 会将维度表加载到内存中供查询;过大的表不适合作为维度表,默...

无精疯 ⋅ 今天 ⋅ 0

58到家数据库30条军规解读

军规适用场景:并发量大、数据量大的互联网业务 军规:介绍内容 解读:讲解原因,解读比军规更重要 一、基础规范 (1)必须使用InnoDB存储引擎 解读:支持事务、行级锁、并发性能更好、CPU及...

kim_o ⋅ 今天 ⋅ 0

代码注释中顺序更改 文件读写换行

`package ssh; import com.xxx.common.log.LogFactory; import com.xxx.common.log.LoggerUtil; import org.apache.commons.lang3.StringUtils; import java.io.*; public class DirErgodic ......

林伟琨 ⋅ 今天 ⋅ 0

linux实用操作命令

参考 http://blog.csdn.net/qwe6112071/article/details/50806734 ls [选项] [目录名 | 列出相关目录下的所有目录和文件 -a 列出包括.a开头的隐藏文件的所有文件-A 同-a,但不列出"."和"...

简心 ⋅ 今天 ⋅ 0

preg_match处理中文符号 url编码方法

之前想过直接用符号来替换,但失败了,或者用其他方式,但有有些复杂,这个是一个新的思路,亲测可用 <?php$str='637朗逸·超速新风王(300)(白光)'; $str=iconv("UTF-8","GBK",$s...

大灰狼wow ⋅ 今天 ⋅ 0

DevOps 资讯 | PostgreSQL 的时代到来了吗 ?

PostgreSQL是对象-关系型数据库,BSD 许可证。拼读为"post-gress-Q-L"。 作者: Tony Baer 原文: Has the time finally come for PostgreSQL?(有删节) 近30年来 PostgreSQL 无疑是您从未听...

RiboseYim ⋅ 今天 ⋅ 0

github太慢

1:用浏览器访问 IPAddress.com or http://tool.chinaz.com 使用 IP Lookup 工具获得github.com和github.global.ssl.fastly.net域名的ip地址 2:/etc/hosts文件中添加如下格式(IP最好自己查一...

whoisliang ⋅ 今天 ⋅ 0

非阻塞同步之 CAS

为解决线程安全问题,互斥同步相当于以时间换空间。多线程情况下,只有一个线程可以访问同步代码。这种同步也叫阻塞同步(Blocking Synchronization). 这种同步属于一种悲观并发策略。认为只...

长安一梦 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部