---
title: ClickHouse引擎配置文件
description: "运行前，需要相应地修改“BoostKit-omnimv_1.1.0/config/omnimv_config_clickhouse.cfg”，其中配置文件样例如下所示："
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2300/bds/kunpengbds_omniruntime_20_0123.html
sourcePath: /source/zh/kunpengboostkithistory/2300/bds/kunpengbds_omniruntime_20_0123.html
indexId: 7b55cf1a12e4dffa5d9c80b08ef0e34996c02599f1b133be84578a19879deccf78
---
# ClickHouse引擎配置文件

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

```
[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 |
