用happybase happy地查询hbase数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用happybase happy地查询hbase数据相关的知识,希望对你有一定的参考价值。
参考技术A 用happybase进行hbase中数据的增删改查前提:已经安装happybase库(pip install happybase),已有hbase环境并开启thrift通讯端口(nohup hbase thrift start &),thrift默认端口为9090,10.10.30.200为hbase主机ip
scan方法:
参数:
row_start、row_stop:起始和终止rowkey,查询两rowkey间的数据
row_prefix:rowkey前缀。注:使用row_prefix的时候,row_start和row_stop不能使用
filter:要使用的过滤器(hbase 0.92版本及以上生效)
timestamp:按指定时间戳查询
reverse:默认为False。为True时,scan结果按rowkey倒序排列
e.g:
put方法:
e.g:
△ 如put中的rowkey已存在,则为修改数据
delete方法:
row:删除rowkey为row的数据
columns:指定columns参数时,删除
e.g:
删除rowkey为student2的name数据:
删除成功:
batch方法:
1、批量操作
2、使用with管理批量
row方法及rows()方法,检索指定rowkey的数据
检索一条:
检索多条:
返回结果:
e.g:
结果:
暂时就这些0v0
happybase对hbase数据库的基本操作
1、连接数据库
import happybase
connection = happybase.Connection(host=host, port=port)
2、查询数据库中的所有表
table_name_list = connection.tables()
3、连接数据库中的表
enginetable = connection.table(table_name)
4、创建hbase表
families =
table_name: dict()
connection.create_table(table_name, families)
5、向hbase的某个表中插入数据
- row_key 必须是唯一的,如果是相同数据库中的数据会被替换掉
- 每个key需要带上表名 例如“table_name:data”:“data”
enginetable.put("row_key",'table_name:Data': "[]")
6、查询数据
row_start:开始行键(从左原则)
row_stop:结束行键(从左原则)
row_prefix:匹配的行键的 ROA 前缀
columns:入参的数据类型为list 需要显示什么字段,列表中就填写什么字段
filter:筛选器
例如:
data = enginetable.scan(row_prefix="1".encode("utf-8"), columns=["table_name:age"],filter = "SingleColumnValueFilter('table_name', 'age', =, 'binary:20') " )
timestamp:时间戳
include_timestamp:是否返回时间戳 入参:布尔类型
batch_size:设置检索结果的批大小
scan_batching:服务器端扫描批处理
limit:要返回的最大行数
sorted_columns:是否返回排序列
data = enginetable.scan(row_start=None, row_stop=None, row_prefix=None,
columns=None, filter=None, timestamp=None,
include_timestamp=False, batch_size=1000, scan_batching=None,
limit=None, sorted_columns=False)
多条件查询
例如:
data= enginetable.scan(filter = "SingleColumnValueFilter('table_name', 'age', =, 'binary:123')" and "SingleColumnValueFilter('table_name', 'Time', =, 'binary:20221218001212')")
以上是关于用happybase happy地查询hbase数据的主要内容,如果未能解决你的问题,请参考以下文章
在 HappyBase HBase 客户端中设置 Zookeeper 节点(znode)设置
使用happybase访问HBase出现Broken pipe问题---两个“惊天”大bug