Python笔记:happybase库简介

2021-03-25 16:35:14 浏览数 (1)

1. happybase库简介

happybase是一个针对与Apache HBase数据库进行交互的python接口库。

其官方文档详见:https://happybase.readthedocs.io/en/latest/

因此,为了更好地了解happybase工具,我们这里先简单地介绍一下HBase数据库,不过由于我不是数据库方向的,因此这里也就是根据网上找到的资料进行了一些归纳,如果有需要细节了解必要的读者,还是需要仔细去研究一下这个东西。

HBase是一个基于HDFS(Hadoop Distributed File System)的分布式存储系统,他是一种基于rowkey的分布式存储系统,他的优点包括:

  1. 高性能,写入效率极高;
  2. 支持大数据;
  3. 高可靠性;

但是,相对的,他的缺点在于:

  1. 不支持sql语言;
  2. 查询只支持基于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为一个数据库链接实例,下面我们给出一些相关的操作函数:

  1. open()
    • 打开HBase数据库实例
  2. close()
    • 关闭HBase数据库实例
  3. tables()
    • 查看HBase数据库实例中所有的表格名
  4. table(name, use_prefix=True)
    • 实例化HBase数据库中的一张表格,返回一个表格实例;
  5. create_table(name, families)
    • 在HBase数据库中创建一张新的表格;
  6. delete_table(name, disable=False)
    • 从HBase数据库中删除一张表格

4. HBase表格实例

由上,我们知道可以通过connection.Table(table_name)命令来实例化一个HBase中的表格。

HBase数据库中的表格数据格式为一个两元素的tuple,其内容分别为数据的row_key以及他实际的数据内容。

给出其具体格式如下:

代码语言:javascript复制
(row_key, row_dict)

下面,我们来看一下如何对HBase数据库中的表格进行操作。

  1. 数据查询:
    1. row(row, columns=None, timestamp=None, include_timestamp=False)
      • 如果知道数据的row_key信息,则可以直接通过row()方法进行数据查询;
    2. rows(rows, columns=None, timestamp=None, include_timestamp=False)
      • rows()方法为row()方法的批量调用方式;
    3. cells(row, column, versions=None, timestamp=None, include_timestamp=False)
      • 直接从表格中取出数据的某一个元素特征;
  2. 数据遍历
    1. 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()方法对整张表进行数据遍历;
  3. 数据插入
    1. put(row, data, timestamp=None, wal=True)
      • 通过put()方法可以实现数据的插入;
  4. 数据删除
    1. 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. 参考链接

  1. https://happybase.readthedocs.io/en/latest/
  2. https://www.zhihu.com/question/39859266
  3. https://blog.csdn.net/L13763338360/article/details/106916440
  4. https://sq.163yun.com/blog/article/174620451741294592
  5. https://blog.csdn.net/y472360651/article/details/79059457
  6. https://blog.csdn.net/xc_zhou/article/details/80868332

0 人点赞