ClickHouse client component.
Provides access to a ClickHouse cluster.
Static configuration example:
# yaml
clickhouse-database:
secdist_alias: clickhouse-database-alias
initial_pool_size: 5
max_pool_size: 10
queue_timeout: 1s
use_secure_connection: false
compression: lz4
If the component is configured with an secdist_alias, it will lookup connection data in secdist.json via secdist_alias value, otherwise via components name.
Secdist format
A ClickHouse alias in secdist is described as a JSON object clickhouse_settings
, containing descriptions of databases.
import json
import pytest
from testsuite.databases.clickhouse import discover
pytest_plugins = ['pytest_userver.plugins.clickhouse' ]
@pytest.fixture(scope='session')
def service_env(clickhouse_conn_info) -> dict:
SECDIST_CONFIG = {
'clickhouse_settings' : {
'clickhouse-database-alias' : {
'hosts' : [clickhouse_conn_info.host],
'port' : clickhouse_conn_info.tcp_port,
'password' : '' ,
'user' : 'default' ,
'dbname' : 'clickhouse-database' ,
},
},
}
return {'SECDIST_CONFIG' : json.dumps(SECDIST_CONFIG)}
@pytest.fixture(scope='session')
def clickhouse_local(service_source_dir):
return discover.find_schemas(
schema_dirs=[service_source_dir.joinpath('schemas' , 'clickhouse' )],
dbprefix='' ,
)
Static options:
Name Description Default value
secdist_alias name of the key in secdist config components name
initial_pool_size number of connections created initially 5
max_pool_size maximum number of created connections 10
queue_timeout client waiting for a free connection time limit 1s
use_secure_connection whether to use TLS for connections true
compression compression method to use (none / lz4) none
Definition at line 57 of file component.hpp .