AIOHappyBase is a developer-friendly Python library to interact with Apache HBase. AIOHappyBase is designed for use in standard HBase setups, and offers application developers a Pythonic API to interact with HBase. Below the surface, AIOHappyBase uses the Python ThriftPy2 library to connect to HBase using its Thrift gateway, which is included in the standard HBase 0.9x releases.


From the original HappyBase author, Wouter Bolsterlee:

Do you enjoy HappyBase? Great! You should know that I don’t use HappyBase myself anymore, but still maintain it because it’s quite popular. Please consider making a small donation to let me know you appreciate my work. Thanks!


The example below illustrates basic usage of the library. The user guide contains many more examples.

from aiohappybase import Connection

async def main():

    async with Connection('hostname') as connection:
        table = connection.table('table-name')

        await table.put(b'row-key', {
            b'family:qual1': b'value1',
            b'family:qual2': b'value2',

        row = await table.row(b'row-key')
        print(row[b'family:qual1'])  # prints 'value1'

        for key, data in await table.rows([b'row-key-1', b'row-key-2']):
           print(key, data)  # prints row key and data for each row

        async for key, data in table.scan(row_prefix=b'row'):
           print(key, data)  # prints 'value1' and 'value2'

        await table.delete(b'row-key')

Indices and tables