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 |
名称 |
作用 |
缺省值 |
---|---|---|
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 |
|
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 |