中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

Clickhouse引擎配置文件

运行前,需要相应地修改“BoostKit-omnimv_1.1.0/config/omnimv_config_clickhouse.cfg”,其中配置文件样例如下所示:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
[raw_file]
# 数据库名称
database = default
work_path = ./clickhouse
[clickhouse]
ck_host = xx.xx.xx.xx
ck_port = 19000
# 集群名称(只查询本地表可不配置)
cluster_name = mycluster
num_round = 5
# 是否启用Clickhouse Projection功能[True or False]
enable_projection = False
# 创建和删除projection的超时时间,单位:s
projection_wait_time = 3600
# 数据压缩比: 视图产生的数据行数/SQL查询需要处理的行数read_rows,数据压缩比越小越好
projection_compress_ratio = 0.8
# SQL运行的阈值,小于这个时间的SQL不考虑推荐视图,单位:ms
sql_running_time_threshold = 100
# 每张表推荐出来的Projection数量的上限
projection_limit_each_table = 5
# 推荐Projection时配置表工作模式,为True,则【clickhouse_tables】只能配置分布式表,为False,则【clickhouse_tables】只能配置本地表
is_distributed_table = False
# 列举一些重点的表来进行推荐,表之间用英文逗号分隔。在多表场景下,需要填写all,e.g. clickhouse_tables = all
clickhouse_tables = lineorder_flat
# 指定从哪个系统表中查询query相关信息,一般本地表会从system.query_log中查询信息,分布式表可能从别的表中获取信息
query_log_table = system.query_log
# (初次提取query)从query_log中对每张表提取query信息,提取到的query需要是指定数据库、指定数据表、运行时间超过配置文件中阈值的query数量
# (增量提取query),增量提取的query数量也是该参数指定
query_limit_each_table = 15
# 在多表场景下,配置提取的query总数量
query_limit_mutil_table = 15
# 是否为包含条件的聚合函数SQL推荐Projection (例如select sum(multiif..)) [True or False]
# 如果为True:则去除条件表达式后推荐,为False:这条SQL不推荐Projection
projection_with_conditional_functions = False
# 是否需要对新建的projection物化历史的数据,默认不物化历史数据 [True or False]
allows_materialize_projection = False
# 指定要删除的Projection名称,使用 "table_name.projection_name"进行指定,table_name只能是本地表。多个projection之间使用英文逗号分割。
# 如果所有节点都存在此"table_name.projection_name",且都需要删除,需要将【is_distributed_table】配置为True
# 如果不需要删除Projection,请将其置为None,以防止误操作
drop_projections = None
[train]
# 通过对出现过的聚合列进行排列组合,以此来扩大训练数据的数量,这里可以限制最大的扩充的训练SQL的数量
max_data_count = 20
epochs = 100
estimators = 50
max_depth = 5
learning_rate = 0.05
[recommend]
# recommend strategy
# options: ['sql', 'compress_ratio']
# 选择compress_ratio表示按照projection压缩比来排序,选择SQL,表示按照Projection可以匹配SQL的数量来排序
candidate_strategy = compress_ratio
表1 ClickHouse引擎配置文件

名称

作用

缺省值

database

训练用的数据库名。

-

work_path

工作路径,存储SQL、物化视图、model相关的信息。

-

ck_host

ClickHouse客户端的IP地址。

xx.xx.xx.xx

ck_port

ClickHouse客户端的端口号。

-

cluster_name

集群名称(只查询本地表可不配置)。

-

enable_projection

是否启用ClickHouse Projection功能,取值范围为True或False。

False

projection_wait_time

创建和删除Projection的超时时间,单位:s。

3600

projection_compress_ratio

数据压缩比阈值,大于该值,则不会保留该Projection,数据压缩比=视图产生的数据行数/SQL查询需要处理的行数read_rows,数据压缩比越小越好。

0.8

sql_running_time_threshold

SQL运行的阈值,小于这个时间的SQL不考虑推荐视图,单位:ms。

100

projection_limit_each_table

每张表推荐出来的Projection数量的上限。

5

is_distributed_table

推荐Projection时配置表工作模式,为True,则clickhouse_tables只能配置分布式表;为False,则clickhouse_tables只能配置本地表。

False

clickhouse_tables

列举一些重点的表来进行推荐,表之间用英文逗号分隔。在多表场景下,需要填写all。例如:clickhouse_tables = all。

-

query_log_table

指定从哪个系统表中查询query相关信息,一般本地表会从system.query_log中查询信息,分布式表可能从别的表中获取信息。

system.query_log

query_limit_each_table

  • (初次提取query)从query_log中对每张表提取query信息,提取到的query需要是指定数据库、指定数据表、运行时间超过配置文件中阈值的query数量。
  • (增量提取query)增量提取的query数量也是该参数指定。

15

query_limit_mutil_table

在多表场景下,配置提取的query总数量

15

projection_with_conditional_functions

是否为包含条件的聚合函数SQL推荐projection (例如select sum(multiif..))取值范围为True或False。如果是True,则去除条件表达式后推荐;如果是False,这条SQL不推荐projection。

False

allows_materialize_projection

是否需要对新建的projection物化历史数据,默认不物化历史数据,取值范围为True或False。

False

drop_projections

指定要删除的Projection名称,使用 "table_name.projection_name"进行指定,table_name只能是本地表。多个projection之间使用英文逗号分割。如果所有节点都存在此"table_name.projection_name",且都需要删除,需要将is_distributed_table配置为True。 如果不需要删除Projection,请将其置为None,以防止误操作。

None

max_data_count

通过对出现过的聚合列进行排列组合,以此来扩大训练数据的数量,这里可以限制最大的扩充的训练SQL的数量。

20

epochs

模型训练的轮数。

200

learning_rate

模型训练的学习率。

0.005

estimators

梯度提升树的个数,属于模型的超参数。

50

max_depth

梯度提升树的深度,属于模型的超参数。

5

candidate_strategy

选择compress_ratio表示按照projection压缩比来排序,选择SQL表示按照projection可以匹配SQL的数量来排序。取值:sql或compress_ratio。

compress_ratio