happybase是一个针对与Apache HBase数据库进行交互的python接口库。
其官方文档详见:https://happybase.readthedocs.io/en/latest/
因此,为了更好地了解happybase工具,我们这里先简单地介绍一下HBase数据库,不过由于我不是数据库方向的,因此这里也就是根据网上找到的资料进行了一些归纳,如果有需要细节了解必要的读者,还是需要仔细去研究一下这个东西。
HBase是一个基于HDFS(Hadoop Distributed File System)的分布式存储系统,他是一种基于rowkey的分布式存储系统,他的优点包括:
但是,相对的,他的缺点在于:
因此,HBase的主要适用场景为:写入密集型而不需要大量读操作的场景。其中,一个典型的例子就是服务器日志。
我们首先来看一下happybase库的安装。
这个在linux系统下其实非常的简单,只要简单的pip install一下就行了。
给出具体的安装命令如下:
pip install happybase显而易见的,在使用happybase库查询和修改HBase数据库之前,我们首先要将其与HBase库中的某一张具体的表格进行关联操作。
给出happybase库连接数据库的命令如下:
# HOST: HBase数据库ip
# PORT: 端口号
connection = happybase.Connection(HOST, PORT, timeout=3000000)通过上述命令,我们即可连接到HBase数据库当中,其中,connection为一个数据库链接实例,下面我们给出一些相关的操作函数:
open() close() tables() table(name, use_prefix=True) create_table(name, families) delete_table(name, disable=False) 由上,我们知道可以通过connection.Table(table_name)命令来实例化一个HBase中的表格。
HBase数据库中的表格数据格式为一个两元素的tuple,其内容分别为数据的row_key以及他实际的数据内容。
给出其具体格式如下:
(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()方法可以实现数据的删除操作;上述就是happybase库的一个简单的内容介绍。
一般而言,我们使用happybase库的目的就是对HBase数据库中的某张数据表进行诸如遍历、查询、插入或是删除等操作,上述第3节内容中简单介绍了一下如何使用happybase来关联数据库中的某张表格,而第4节中则简单介绍了一下happybase对表格中数据操作的几个主要api。
根据我们个人的经验而言,上述内容应该是足以应付大多数的使用需求了,但如果还是遇到了无法处理的问题,可以查询happybase的接口api文档,其链接如下: