Python操作Hbase的增删改查操作
增改数据put, row操作
put(row, data, timestamp=None, wal=True)---> 插入数据,无返回值
row---> 行,插入数据的时候需要指定;
data---> 数据,dict类型,{key:value}构成,列与值均为str类型
timestamp--->时间戳,默认None,即写入当前时间戳
wal---> 是否写入wal, 默认为True
import
In [8]: conn = happybase.Connection("192.168.14.1",9090)
In [9]: table = conn.table("zhy")
# 向表中增添数据,需要制定rowkey和一个字典形式的键值对
In [11]: table.put("test2",{"info:data":"22222"})
# 通过指定列簇来检索数据
In [12]: row = table.row("test2")
In [13]: print row
{'info:data': '22222'}
In [14]: table.put("test3",{"info:data":"33333"})
In [15]: row = table.row("test3")
In [16]: print row
{'info:data': '33333'}
In [20]: table.put("test2",{"info:content":"33333"})
In [21]: row = table.row("test2")
In [22]: print row
{'info:content': '33333', 'info:data': '22222'}
# 检索多行数据
In [23]: rows = table.rows(["test2","test3"])
In [24]: print rows
[('test2', {'info:content': '33333', 'info:data': '22222'}), ('test3', {'info:data': '33333'})]
删除操作
table.delete("rowkey")---->删除一整行数据
table.delete("rowkey", columns=["info:xxx",...])---->删除一个列簇中几个列的数据
In [27]: table.delete("test3")
In [28]: row = table.row("test3")
In [29]: print row
{}
In [35]: row = table.row("test2")
In [36]: print row
{'info:content': '333333', 'info:data': '22222'}
In [37]: table.delete("test2", columns=["info:content"])
In [38]: row = table.row("test2")
In [39]: print row
{'info:data': '22222'}
全局查询操作scan()方法
可用于遍历查询表中的数据的数量
可以指定开始和结束的row key来进行局部查询
可以通过制定前缀来进行匹配查询
for key, value in table.scan():
print key,value
# 指定row_start和row_stop参数来设置开始和结束扫描的row key
for key, value in table.scan(row_start='www.test2.com', row_stop='www.test3.com'):
print key, value
# 通过row_prefix参数来设置需要扫描的row key
for key, value in table.scan(row_prefix='www.test'):
print key, value