用户可根据实际需要提供数据表,使用OmniMV物化视图最终得到推荐的视图集。
本次任务示例使用TPC-DS的数据表作为测试表。
1 2 | cd /opt/omnimv/BoostKit-omnimv_1.1.0 vi config/omnimv_config_spark.cfg |
1 2 3 4 5 | database = tpcds_bin_partitioned_decimal_orc_8000 logparser_jar_path = /opt/omnimv/boostkit-omnimv-logparser-spark-3.1.1-1.1.0-aarch64.jar cache_plugin_jar_path = /opt/omnimv/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 |
配置项 |
含义 |
参考值 |
---|---|---|
database |
用于测试的数据库名称。 |
- |
logparser_jar_path |
日志解析JAR包路径。 |
/opt/omnimv/boostkit-omnimv-logparser-spark-3.1.1-1.1.0-aarch64.jar |
cache_plugin_jar_path |
OmniMV的JAR包路径。 |
/opt/omnimv/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 |
hdfs dfs -mkdir -p hdfs://server1:9000/omnimv/tpcds hdfs dfs -put /spark源码目录/sql/core/src/test/resources/tpcds/* hdfs://server1:9000/omnimv/tpcds/
屏幕打印“init_database succeed!”说明执行成功。
1 | python main.pyc spark init_database |
屏幕打印“run_original_sqls succeed!”说明执行成功。
1 | python main.pyc spark run_original_sqls |
1 | vi config/omnimv_config_spark.cfg
|
1 2 3 4 | # 测试SQL运行开始时间 q_log_start_time = 2022-09-15 11:58 # 测试SQL运行结束时间 q_log_end_time = 2022-09-15 17:15 |
屏幕打印“parse_query_logs succeed!”说明执行成功。
1 | python main.pyc spark parse_query_logs |
1 | vi config/omnimv_config_spark.cfg
|
1 2 | # 候选TOP mv的数量限制,实际推荐数量小于等于该值 mv_limit = 10 |
1 | python main.pyc spark create_greedy_views |
1 | vi config/omnimv_config_spark.cfg
|
1 2 3 4 | # 创建视图任务开始时间 mv_log_start_time = 2022-09-15 20:18 # 创建视图任务结束时间 mv_log_end_time = 2022-09-15 21:17 |
1 | python main.pyc spark parse_mv_logs |
代价评估模型训练完成后,可以通过命令hdfs dfs -ls /omnimv/training查看是否生成模型。
1 | python main.pyc spark cost_estimation |
1 | python main.pyc spark recommend |
1 | python main.pyc spark create_recommend_views |