用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数据库的基本操作

Python操作HBase之happybase

在 HappyBase HBase 客户端中设置 Zookeeper 节点(znode)设置

使用happybase访问HBase出现Broken pipe问题---两个“惊天”大bug

Python 操作 HBase —— Trift Trift2 Happybase 安装使用

无法在Python中使用Happybase创建简单表