1. happybase库简介
happybase是一个针对与Apache HBase数据库进行交互的python接口库。
其官方文档详见:https://happybase.readthedocs.io/en/latest/
因此,为了更好地了解happybase工具,我们这里先简单地介绍一下HBase数据库,不过由于我不是数据库方向的,因此这里也就是根据网上找到的资料进行了一些归纳,如果有需要细节了解必要的读者,还是需要仔细去研究一下这个东西。
HBase是一个基于HDFS(Hadoop Distributed File System)的分布式存储系统,他是一种基于rowkey的分布式存储系统,他的优点包括:
- 高性能,写入效率极高;
- 支持大数据;
- 高可靠性;
- …
但是,相对的,他的缺点在于:
- 不支持sql语言;
- 查询只支持基于rowkey的搜索,不支持多条件查询;
- …
因此,HBase的主要适用场景为:写入密集型而不需要大量读操作的场景。其中,一个典型的例子就是服务器日志。
2. happybase库的安装
我们首先来看一下happybase库的安装。
这个在linux系统下其实非常的简单,只要简单的pip install
一下就行了。
给出具体的安装命令如下:
代码语言:javascript复制pip install happybase
3. HBase数据库实例
显而易见的,在使用happybase库查询和修改HBase数据库之前,我们首先要将其与HBase库中的某一张具体的表格进行关联操作。
给出happybase库连接数据库的命令如下:
代码语言:javascript复制# HOST: HBase数据库ip
# PORT: 端口号
connection = happybase.Connection(HOST, PORT, timeout=3000000)
通过上述命令,我们即可连接到HBase数据库当中,其中,connection
为一个数据库链接实例,下面我们给出一些相关的操作函数:
open()
- 打开HBase数据库实例
close()
- 关闭HBase数据库实例
tables()
- 查看HBase数据库实例中所有的表格名
table(name, use_prefix=True)
- 实例化HBase数据库中的一张表格,返回一个表格实例;
create_table(name, families)
- 在HBase数据库中创建一张新的表格;
delete_table(name, disable=False)
- 从HBase数据库中删除一张表格
4. HBase表格实例
由上,我们知道可以通过connection.Table(table_name)
命令来实例化一个HBase中的表格。
HBase数据库中的表格数据格式为一个两元素的tuple,其内容分别为数据的row_key
以及他实际的数据内容。
给出其具体格式如下:
代码语言:javascript复制(row_key, row_dict)
下面,我们来看一下如何对HBase数据库中的表格进行操作。
- 数据查询:
row(row, columns=None, timestamp=None, include_timestamp=False)
- 如果知道数据的
row_key
信息,则可以直接通过row()
方法进行数据查询;
- 如果知道数据的
rows(rows, columns=None, timestamp=None, include_timestamp=False)
rows()
方法为row()
方法的批量调用方式;
cells(row, column, versions=None, timestamp=None, include_timestamp=False)
- 直接从表格中取出数据的某一个元素特征;
- 数据遍历
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, reverse=False)
- 如果不知道
row_key
信息,则可以通过scan()
方法对整张表进行数据遍历;
- 如果不知道
- 数据插入
put(row, data, timestamp=None, wal=True)
- 通过
put()
方法可以实现数据的插入;
- 通过
- 数据删除
delete(row, columns=None, timestamp=None, wal=True)
- 采用
delete()
方法可以实现数据的删除操作;
- 采用
5. 总结
上述就是happybase库的一个简单的内容介绍。
一般而言,我们使用happybase库的目的就是对HBase数据库中的某张数据表进行诸如遍历、查询、插入或是删除等操作,上述第3节内容中简单介绍了一下如何使用happybase来关联数据库中的某张表格,而第4节中则简单介绍了一下happybase对表格中数据操作的几个主要api。
根据我们个人的经验而言,上述内容应该是足以应付大多数的使用需求了,但如果还是遇到了无法处理的问题,可以查询happybase的接口api文档,其链接如下:
- https://happybase.readthedocs.io/en/latest/api.html
6. 参考链接
- https://happybase.readthedocs.io/en/latest/
- https://www.zhihu.com/question/39859266
- https://blog.csdn.net/L13763338360/article/details/106916440
- https://sq.163yun.com/blog/article/174620451741294592
- https://blog.csdn.net/y472360651/article/details/79059457
- https://blog.csdn.net/xc_zhou/article/details/80868332