A thread-safe connection pool for ClickHouse. Inspired by psycopg2 and using clickhouse-driver for connections.
pip install clickhouse-poolfrom clickhouse_pool import ChPool # find available settings at https://clickhouse-driver.readthedocs.io/en/latest/api.html#clickhouse_driver.Client pool = ChPool(host="localhost") with pool.get_client() as client: # execute sql and print the result result = client.execute("SELECT * FROM system.numbers LIMIT 5") print(result) # always close all connections in the pool once you're done with it pool.cleanup()To change the connection pool size,
pool = ChPool(connections_min=20, connections_max=40) with pool.get_client() as client: result = client.execute("SELECT * FROM system.numbers LIMIT 5") print(result) # always close all connections in the pool once you're done with it pool.cleanup()To run tests locally ensure you have an instance of clickhouse-server running on localhost. The easiest way is to use docker:
docker run -d -p 9000:9000 yandex/clickhouse-server poetry run pytestpoetry run sphinx-build -M html docs/source docs/_build