userver
C++ Async Framework
Toggle main menu visibility
Documentation
API Groups
Namespaces
Reference
Class List
Class Index
File List
Macros
All
e
i
l
r
t
u
Functions
Macros
e
i
l
r
t
u
Examples
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
Concepts
Loading...
Searching...
No Matches
component.hpp
Go to the documentation of this file.
1
#
pragma
once
2
3
/// @file userver/storages/clickhouse/component.hpp
4
/// @brief @copybrief components::ClickHouse
5
6
#
include
<
userver
/
components
/
component_base
.
hpp
>
7
8
#
include
<
userver
/
utils
/
statistics
/
storage
.
hpp
>
9
10
USERVER_NAMESPACE_BEGIN
11
12
namespace
clients::
dns
{
13
class
Component;
14
}
15
16
namespace
storages::
clickhouse
{
17
class
Cluster;
18
}
19
20
namespace
components
{
21
22
// clang-format off
23
24
/// @ingroup userver_components
25
///
26
/// @brief ClickHouse client component
27
///
28
/// Provides access to a ClickHouse cluster.
29
///
30
/// ## Static configuration example:
31
///
32
/// @snippet samples/clickhouse_service/static_config.yaml Clickhouse service sample - static config
33
///
34
/// If the component is configured with an secdist_alias, it will lookup
35
/// connection data in secdist.json via secdist_alias value, otherwise via
36
/// components name.
37
///
38
/// ## Secdist format
39
///
40
/// A ClickHouse alias in secdist is described as a JSON object
41
/// `clickhouse_settings`, containing descriptions of databases.
42
///
43
/// @snippet samples/clickhouse_service/tests/conftest.py Clickhouse service sample - secdist
44
///
45
/// ## Static options:
46
/// Name | Description | Default value
47
/// --------------------- | ------------------------------------------------ | ---------------
48
/// secdist_alias | name of the key in secdist config | components name
49
/// initial_pool_size | number of connections created initially | 5
50
/// max_pool_size | maximum number of created connections | 10
51
/// queue_timeout | client waiting for a free connection time limit | 1s
52
/// use_secure_connection | whether to use TLS for connections | true
53
/// compression | compression method to use (none / lz4) | none
54
55
// clang-format on
56
57
class
ClickHouse
:
public
ComponentBase
{
58
public
:
59
/// Component constructor
60
ClickHouse
(
const
ComponentConfig&,
const
ComponentContext&);
61
/// Component destructor
62
~
ClickHouse
() override;
63
64
/// Cluster accessor
65
std::shared_ptr<storages::
clickhouse
::Cluster>
GetCluster
()
const
;
66
67
static
yaml_config
::Schema GetStaticConfigSchema();
68
69
private
:
70
clients::
dns
::Component& dns_;
71
72
std::shared_ptr<storages::
clickhouse
::Cluster> cluster_;
73
utils
::statistics::Entry statistics_holder_;
74
};
57
class
ClickHouse
:
public
ComponentBase
{
…
};
75
76
template
<>
77
inline
constexpr
bool
kHasValidate<ClickHouse> =
true
;
78
79
}
// namespace components
80
81
USERVER_NAMESPACE_END
userver
storages
clickhouse
component.hpp
Generated on Thu Apr 24 2025 12:14:01 for userver by
Doxygen
1.13.2