easybase icon indicating copy to clipboard operation
easybase copied to clipboard

Developer-friendly Python library to interact with Apache HBase, supports time range scan and multi-versions

EasyBase

.. image:: https://github.com/wgzhao/easybase/actions/workflows/python-package.yml/badge.svg :target: https://github.com/wgzhao/easybase

.. image:: https://img.shields.io/pypi/dm/easybase.svg :target: https://pypi.org/project/easybase/

.. image:: https://img.shields.io/pypi/v/easybase.svg :target: https://pypi.org/project/easybase/

.. image:: https://img.shields.io/pypi/pyversions/easybase.svg :target: https://pypi.org/project/easybase/

.. image:: https://img.shields.io/pypi/implementation/easybase.svg :target: https://pypi.org/project/easybase/

EasyBase is a developer-friendly Python library to interact with Apache HBase <https://hbase.apache.org>__ . The original source code forked from HappyBase <https://github.com/wbolster/happybase>__.

Feature highlight

  • easy using

  • support HBase Thrift 2 protocol(HBase Thrift 1 is NO longer supported)

  • using thriftpy2 <http://github.com/thriftpy/thriftpy2>__ instead of old thriftpy

Installation

.. code:: shell

pip install easybase

Usage

Connect

.. code:: python

import easybase host, port = 'localhost', 9000 tbl = 'test1' conn = easybase.Connection(host=host, port=port) table = conn.table(tbl) rs = conn.scan(limit=10) for row in rs: print(row)

Create Table

.. code:: python

table_def = {'cf1':dict(), 'cf2':{'max_versions':2000}} conn.create_table('test1', table_def)

Write row to table

.. code:: python

puts = {'cf1:c1': 'v1', 'cf1:c2': 'v2' 'cf2:c2': 'v3'} tbl = conn.table('test1') tbl.put(row='rk1', puts)

Get row from table

.. code:: python

rk = 'rk1' tbl = conn.table('test1') rs = tbl.row(rk)

Scan rows

.. code:: python

tbl = conn.table('test1') scanner = tbl.scan(row_start='rk_0001', row_stop='rk_0100') for row in scanner: print(row)

Get all namespace

.. code:: python

for ns in conn.list_namespaces(): print(ns)

You can get detail in DemoClient.py <https://github.com/wgzhao/easybase/blob/master/DemoClient.py>__

License

MIT License <http://www.opensource.org/licenses/MIT>_.