使用OmniMV物化视图推荐视图
本次任务示例使用TPC-DS的数据表作为测试表。
- 修改配置文件。
修改“config/omnimv_config_spark.cfg”文件。例如:
database = tpcds_bin_partitioned_decimal_orc_8000 logparser_jar_path = /opt/spark/boostkit-omnimv-logparser-spark-3.1.1-1.1.0-aarch64.jar cache_plugin_jar_path = /opt/spark/boostkit-omnimv-spark-3.1.1-1.1.0-aarch64.jar hdfs_input_path = hdfs://server1:9000/spark2-history sqls_path = hdfs://server1:9000/omnimv/tpcds
表1 物化视图部分配置 配置项
含义
参考值
database
用于测试的数据库名称
-
logparser_jar_path
日志解析JAR包路径
/opt/spark/boostkit-omnimv-logparser-spark-3.1.1-1.1.0-aarch64.jar
cache_plugin_jar_path
物化视图的JAR包路径
/opt/spark/boostkit-omnimv-spark-3.1.1-1.1.0-aarch64.jar
hdfs_input_path
Spark任务运行日志在HDFS上的访问地址
hdfs://server1:9000/spark2-history
sqls_path
测试SQL在HDFS上的访问地址
hdfs://server1:9000/omnimv/tpcds
- 获取测试SQL(以tpcds为例)。
- 初始化数据库。这一步主要是获取目标表的建表信息,用于后续创建推荐视图。
屏幕打印“init_database succeed!”说明执行成功。
python main.pyc spark init_database
- 运行测试SQL(以TPC-DS测试SQL为例)。
屏幕打印“run_original_sqls succeed!”说明执行成功。
python main.pyc spark run_original_sqls
- 解析运行日志。
- 生成候选视图。
- 可选:修改配置文件config/omnimv_config_spark.cfg。
# 候选TOP mv的数量限制,实际推荐数量小于等于该值 cnt_limit = 10
- 运行脚本。
- 可选:修改配置文件config/omnimv_config_spark.cfg。
- 运行创建topN视图(需要人为确认,是否可以真实的创建这个候选的视图)。
python main.pyc spark create_greedy_views
- 解析重写任务日志。
- 通过http://ip:18080地址访问Spark History Server查看重写任务起止时间。
- 修改配置文件config/omnimv_config_spark.cfg。
# 创建视图任务开始时间 mv_log_start_time = 2022-09-15 20:18 # 创建视图任务结束时间 mv_log_end_time = 2022-09-15 21:17
- 运行脚本。
python main.pyc spark parse_mv_logs
- 训练代价评估模型。
代价评估模型训练完成后,可以通过命令hdfs dfs -ls /omnimv/training查看是否生成模型。
python main.pyc spark cost_estimation
- 获取推荐的物化视图。
python main.pyc spark recommend
- 创建推荐的物化视图(需要人为确认,是否可以真实的创建这个推荐的视图)。
python main.pyc spark create_recommend_views