推荐视图
用户可根据实际需要提供数据表,使用OmniMV物化视图最终得到推荐的视图集。
本次任务示例使用TPC-DS的数据表作为测试表。
- 修改配置文件。
- 打开“config/omnimv_config_spark.cfg”文件。
1 2
cd /opt/omnimv/BoostKit-omnimv_1.2.0 vi config/omnimv_config_spark.cfg
- 按“i”进入编辑模式,参考如下内容修改。
- Spark 3.1.1。
1 2 3 4 5
database = tpcds_bin_partitioned_varchar_orc_3000 logparser_jar_path = /opt/omnimv/boostkit-omnimv-logparser-spark-3.1.1-1.2.0-aarch64.jar cache_plugin_jar_path = /opt/omnimv/boostkit-omnimv-spark-3.1.1-1.2.0-aarch64.jar hdfs_input_path = hdfs://server1:9000/spark2-history sqls_path = hdfs://server1:9000/omnimv/tpcds
- Spark 3.4.3。
1 2 3 4 5
database = tpcds_bin_partitioned_varchar_orc_3000 logparser_jar_path = /opt/omnimv/boostkit-omnimv-logparser-spark-3.4.3-1.2.0-aarch64.jar cache_plugin_jar_path = /opt/omnimv/boostkit-omnimv-spark-3.4.3-1.2.0-aarch64.jar hdfs_input_path = hdfs://server1:9000/spark2-history sqls_path = hdfs://server1:9000/omnimv/tpcds
- Spark 3.1.1。
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
表1 OmniMV物化视图部分配置 配置项
含义
参考值
database
用于测试的数据库名称。
-
logparser_jar_path
日志解析JAR包路径。
- /opt/omnimv/boostkit-omnimv-logparser-spark-3.1.1-1.2.0-aarch64.jar
- /opt/omnimv/boostkit-omnimv-logparser-spark-3.4.3-1.2.0-aarch64.jar
cache_plugin_jar_path
OmniMV的JAR包路径。
- /opt/omnimv/boostkit-omnimv-spark-3.1.1-1.2.0-aarch64.jar
- /opt/omnimv/boostkit-omnimv-spark-3.4.3-1.2.0-aarch64.jar
hdfs_input_path
Spark任务运行日志在HDFS上的访问地址。
hdfs://server1:9000/spark2-history
sqls_path
测试SQL在HDFS上的访问地址。
hdfs://server1:9000/omnimv/tpcds
- 打开“config/omnimv_config_spark.cfg”文件。
- 获取测试SQL(以TPC-DS为例)。
- 初始化数据库。这一步主要是获取目标表的建表信息,用于后续创建推荐视图。
屏幕打印“init_database succeed!”说明执行成功。
1
python main.py spark init_database
- 运行测试SQL(以TPC-DS测试SQL为例)。
屏幕打印“run_original_sqls succeed!”说明执行成功。
1
python main.py spark run_original_sqls
- 解析运行日志。
- 通过http://ip:18080地址访问Spark History Server查看原生SQL任务起止时间。
- 打开配置文件“config/omnimv_config_spark.cfg”。
1
vi config/omnimv_config_spark.cfg
- 按“i”进入编辑模式,修改参数如下。
1 2 3 4
# 测试SQL运行开始时间 q_log_start_time = 2022-09-15 11:58 # 测试SQL运行结束时间 q_log_end_time = 2022-09-15 17:15
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 运行日志解析脚本。
屏幕打印“parse_query_logs succeed!”说明执行成功。
1
python main.py spark parse_query_logs
- 生成候选视图。
- 运行创建topN视图。需要人为确认,是否可以真实的创建这个候选的视图。
1
python main.py spark create_greedy_views
父主题: 在Spark引擎的应用