userver: components::ClickHouse Class Reference
No Matches
components::ClickHouse Class Reference

#include <userver/storages/clickhouse/component.hpp>

Detailed Description

ClickHouse client component.

Provides access to a ClickHouse cluster.

Static configuration example:

# yaml
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']
def service_env(clickhouse_conn_info) -> dict:
secdist_config = {
'clickhouse_settings': {
'clickhouse-database-alias': {
'hosts': [],
'port': clickhouse_conn_info.tcp_port,
'password': '',
'user': 'default',
'dbname': 'clickhouse-database',
return {'SECDIST_CONFIG': json.dumps(secdist_config)}
def clickhouse_local(service_source_dir):
return discover.find_schemas(
schema_dirs=[service_source_dir.joinpath('schemas', 'clickhouse')],

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.

+ Inheritance diagram for components::ClickHouse:
+ Collaboration diagram for components::ClickHouse:

Public Member Functions

 ClickHouse (const ComponentConfig &, const ComponentContext &)
 Component constructor.
 ~ClickHouse () override
 Component destructor.
std::shared_ptr< storages::clickhouse::ClusterGetCluster () const
 Cluster accessor.
- Public Member Functions inherited from components::ComponentBase
 ComponentBase (const ComponentConfig &, const ComponentContext &)
 ComponentBase (ComponentBase &&)=delete
 ComponentBase (const ComponentBase &)=delete
 ~ComponentBase () override=default
ComponentHealth GetComponentHealth () const override
void OnLoadingCancelled () override
void OnAllComponentsLoaded () override
void OnAllComponentsAreStopping () override
- Public Member Functions inherited from components::RawComponentBase
 RawComponentBase (RawComponentBase &&)=delete
 RawComponentBase (const RawComponentBase &)=delete

Static Public Member Functions

static yaml_config::Schema GetStaticConfigSchema ()
- Static Public Member Functions inherited from components::ComponentBase
static yaml_config::Schema GetStaticConfigSchema ()
- Static Public Member Functions inherited from components::RawComponentBase
static yaml_config::Schema GetStaticConfigSchema ()

Additional Inherited Members

- Protected Types inherited from components::ComponentBase
using LoggableComponentBase = ComponentBase
 Legacy alias, use ComponentBase instead.

The documentation for this class was generated from the following file: