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

OmniCache物化视图配置文件

运行前,需要相应的修改“BoostKit-omnicache_1.0.0/config/omnicache_config.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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
[schema]
# schema sql路径
schema_path = hdfs://server1:9000/omnicache_0919/schema.sql
[raw_file]
# 数据库名称
database = tpcds_bin_partitioned_decimal_orc_8000
# spark yarn模式下,指定query执行的时间段
q_log_start_time = 2022-09-16 20:28
q_log_end_time = 2022-09-17 08:50
# spark yarn模式下,成功改写的query使用omnicache plugin执行的时间段
q_mv_log_start_time = 2022-09-17 16:37
q_mv_log_end_time = 2022-09-17 19:20
# 日志解析的JAR包路径
logparser_jar_path = /opt/onmnicache/boostkit-omnicache-logparser-spark-3.1.1-1.0.0-aarch64.jar
# omnicache plugin的路径
cache_plugin_jar_path = /opt/omnicache/boostkit-omnicache-spark-3.1.1-1.0.0-aarch64.jar
# spark-defaults.conf路径下面配置的spark history输出的路径
hdfs_input_path = hdfs://server1:9000/spark2-history
# 通过日志解析之后,把每条日志解析成json格式,所有日志存放的路径
hdfs_output_path = hdfs://server1:9000/omnicache_0919/spark2-history-json
# sql语句的存放路径,这里以tpcds sql为例
sqls_path = hdfs://server1:9000/omnicache_0919/tpcds
[csv]
# 以下三个均为recommend task的中间结果文件,即使用成本评估模型的结果
query_csv = hdfs://server1:9000/omnicache_0919/data/query_data.csv
mv_csv = hdfs://server1:9000/omnicache_0919/data/mv_data.csv
q_mv_csv = hdfs://server1:9000/omnicache_0919/data/query_mv_data.csv
# 候选视图存放的路径,同时会在改目录下面生成子目录:mv_sql(所有候选视图),top_mv(top N 候选视图),mv_recommend(最后推荐的视图)
mv_output_path = hdfs://server1:9000/omnicache_0919/mv
# topN q-mv的对应关系
q_mv_mapping_csv = hdfs://server1:9000/omnicache_0919/data/query-mv_mapping.csv
# recommend task的输出结果文件,包含了推荐的mv的编号和cost,根据编号可在上述${mv_output_path}/mv_sql中找到原始mv sql
recommend_mv_csv = hdfs://server1:9000/omnicache_0919/data/recommend-mvdata.csv
[train]
# 训练数据的比例,不建议调整
train_rate = 0.8
# 训练batch大小,根据TOPN的N值大小进行调整,batch size取为2的整数次幂,取N/batch_size = 10左右,但是batch_size一般不超过256
batch_size = 8
# 训练轮数,根据N值大小进行调整,经验下在30~100之间调整,N=20时,epoch取30即可,N值较大时,适当加大epoch的值
epoch = 20
# 学习率,不建议调整
learning_rate = 0.005
# 以下均为深度学习网络参数,不建议调整
weight_decay = 1e-5
keyword_embedding_size = 32
char_embedding_size = 32
node_auxiliary_size = 2
first_hidden_size = 32
second_hidden_size = 32
drop_rate = 0.1
# 成本评估模型保存路径,切换数据库平台重新训练时请删除此文件
model_save_path_q = hdfs://server1:9000/omnicache_0919/training/ckpt_q.pt
model_save_path_q_mv = hdfs://server1:9000/omnicache_0919/training/ckpt_q_mv.pt
# 模型训练中输出数据的存放路径
training_data_output_path = hdfs://server1:9000/omnicache_0919/training
[rl]
# 推荐模型训练时batch大小
batch_size_rl = 2
# 推荐模型训练时学习率
learning_rate_rl = 0.01
# 以下均为强化学习参数,不建议调整
epsilon = 0.9
gamma = 0.9
target_replace_iter = 3
memory_capacity = 10
drop_rate_rl = 0.2
[spark]
# Spark执行的模式,yarn模式还是local模式
spark_master = yarn
# Spark参数中--name后面的参数
app_name = omnicache
# Spark参数中--num-executors指定的参数
spark_num_executors = 30
# Spark参数中--executor-memory指定的参数
spark_executor_memory = 32g
# Spark参数中--driver-memory指定的参数
spark_driver_memory = 48g
# Spark参数中--executor-cores指定的参数
executor_cores = 18
# 执行spark-sql session的超时时间,默认单位是s,这里默认指定5000s超时时间
session_timeout = 5000
[mv_limit]
# 候选TOP mv的数量限制
cnt_limit = 40
space_limit = 1024
#引用计数小于refer_threshold的子树,不拿来当候选视图,缺省值为2
refer_threshold=2
[mv_selection]
query_ratio = 0.6
space_ratio = 0.35
filter_ratio = 0.05

hdfs://server1:9000这个代表数据会缓存在HDFS上面,其中server1代表当前服务器的Hostname,9000端口代表HDFS部署的端口号,因此需要根据环境信息进行适配,当然可以采用简化的方式,例如:

将sqls_path = hdfs://server1:9000/omnicache_0919/tpcds。可以直接修改为sqls_path = /omnicache_0919/tpcds。

配置文件中,除了2个JAR包的地址,其余地址默认是HDFS的路径地址。

表1 OmniCache物化视图配置文件

名称

作用

缺省值

schema_path

表结构存储路径。

-

database

训练用的数据库名。

-

q_log_start_time

原生SQL查询开始运行时间。

-

q_log_end_time

原生SQL查询结束运行时间。

-

q_mv_log_start_time

使用物化视图改写SQL的开始运行时间。

-

q_mv_log_end_time

使用物化视图改写SQL的结束运行时间。

-

logparser_jar_path

日志解析JAR包存放路径。

-

cache_plugin_jar_path

OmniCache物化视图插件JAR包存放路径。

-

hdfs_input_path

Spark历史日志存放路径。

-

hdfs_output_path

OmniCache物化视图解析日志的存放路径。

-

sqls_path

待训练的SQL集合。

-

query_csv

查询数据存放路径。

-

mv_csv

视图数据存放路径。

-

q_mv_csv

查询-视图关系存放路径。

-

mv_output_path

候选视图输出路径。

-

q_mv_mapping_csv

查询-视图关系存放路径。

-

recommend_mv_csv

推荐视图输出路径。

-

train_rate

训练数据比例,不建议调整。

0.8

batch_size

训练batch大小,根据TOPN的N值大小进行调整,batch size取为2的整数次幂,取N/batch_size = 10左右,但是batch_size一般不超过256。

8

epoch

训练轮数,根据N值大小进行调整,经验下在30~100之间调整,N=20时,epoch取30即可,N值较大时,适当加大epoch的值。

20

learning_rate

学习率,不建议调整。

0.005

weight_decay

深度学习网络参数,不建议调整。

1e-5

keyword_embedding_size

深度学习网络参数,不建议调整。

32

char_embedding_size

深度学习网络参数,不建议调整。

32

node_auxiliary_size

深度学习网络参数,不建议调整。

2

first_hidden_size

深度学习网络参数,不建议调整。

32

second_hidden_size

深度学习网络参数,不建议调整。

32

drop_rate

深度学习网络参数,不建议调整。

0.1

model_save_path_q

成本评估模型保存路径,切换数据库平台重新训练时请删除此文件。

-

model_save_path_q_mv

成本评估模型保存路径,切换数据库平台重新训练时请删除此文件。

-

training_data_output_path

模型训练中输出数据的存放路径。

-

batch_size_rl

推荐模型训练时batch大小。

2

learning_rate_rl

推荐模型训练时学习率。

0.01

epsilon

强化学习参数,不建议调整。

0.9

gamma

强化学习参数,不建议调整。

0.9

target_replace_iter

强化学习参数,不建议调整。

3

memory_capacity

强化学习参数,不建议调整。

10

drop_rate_rl

强化学习参数,不建议调整。

0.2

spark_master

Spark执行的模式。

yarn

app_name

Spark任务名称。

-

spark_num_executors

Spark参数 --num-executors。

30

spark_executor_memory

Spark参数 --executor-memory。

32g

spark_driver_memory

Spark参数 --driver-memory。

48g

executor_cores

Spark参数 --executor-cores。

18

session_timeout

spark-sql session的超时时间,默认单位是s。

5000

cnt_limit

候选视图的数量限制,默认选择40个候选视图,可以适当调大一些,确保覆盖sql数量增大。

40

refer_threshold

引用计数小于refer_threshold的子树,不拿来当候选视图,缺省值为2,不建议调整。

2