Skip to content
/ akudu Public

Async Kudu Client. Graceful way for Python to async connect to Kudu database (data storage engine).

License

Notifications You must be signed in to change notification settings

lovinjoy/akudu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

akudu

Async Kudu Client. Graceful way for Python to async connect to Kudu database (data storage engine).

Quick start

It is recommanded to use Python == 3.10, others are not tested.

*protobuf>=3.20.0* is required, or you need to compile the protobuf files by yourself.
  1. Install akudu from PyPI.

    pip install akudu
  2. Test your Kudu server, such as 192.168.0.111:7051 with code here:

    import asyncio
    import akudu
    cli = akudu.Client('192.168.0.111', 7051)
    
    async def op():
        tables = await cli.list_tables()
        print(tables)
    
    asyncio.run(op())
  3. Here are some frequently used calls, for more please refer to the documentation.

    cli.list_tables()

Caution

  • This client is not thread-safety, it is recommended that one instance of Kudu() for each threads.

More

TODO

  • connect timeout, read timeout, write timeout
  • Steady state ping-pong
  • call-id used-up
  • test all calls
  • benchmark test
  • support RPC Sidecars
  • support TLS
  • fully support SASL

Base on

Run test

python -m venv env
source env/bin/activate
pip install protobuf
python -m test.test

Generate protobuf files

# kudu-master download from github.com kudu

# Because kudu proto generate .pb2 files in the name space: kudu, we need to change it into akudu.kudu
find kudu-master/src/ -name "*.proto" | xargs sed -i 's/import "kudu/import "akudu\/kudu/g'
mkdir kudu-master/src/akudu
mv kudu-master/src/kudu kudu-master/src/akudu

# Generate
find kudu-master/src/ -name "*.proto" | xargs protoc -I=kudu-master/src --python_out=.
# or
find kudu-master/src/ -name "*.proto" | xargs python -m grpc_tools.protoc -I=kudu-master/src --python_out=.

Ref

About

Async Kudu Client. Graceful way for Python to async connect to Kudu database (data storage engine).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages