前提条件

  • 创建对象存储的bucket, 用于TPC-DS的数据存储, 详情请参见创建存储空间
  • 在Databricks数据洞察产品中创建一个集群,详情请参见创建集群

步骤一 :示例下载

步骤二 :运行TPC-DS测试集

在Databricks数据洞察的项目空间中创建一个新项目,操作如下:

创建项目

步骤三 :生成测试数据集脚本

  • spark资源可以更具集群具体情况进行调整
  • scale_factor参数控制整个测试集的数据量 (如scale_factor=1000 即1T的数据量)
  • TPC-DS测试集已打成jar包(spark-sql-perf-assembly-0.5.0-SNAPSHOT.jar)可以直接使用

执行脚本如下:

--class com.databricks.spark.sql.perf.tpcds.TPCDS_Standalone
--deploy-mode cluster
--name generate_dataset
--queue default
--master yarn
--conf spark.yarn.submit.waitAppCompletion=true
--conf spark.driver.cores=2
--conf spark.driver.memory=4G
--conf spark.executor.cores=4
--conf spark.executor.memory=8G
--conf spark.executor.instances=2
--conf spark.yarn.executor.memoryOverhead=1024
--conf spark.shuffle.service.enabled=true
oss://databricks-demo/tpcds-jar/spark-sql-perf-assembly-0.5.0-SNAPSHOT.jar
--dataset_location oss://databricks-demo/tpcds/
--output_location oss://databricks-demo/tpcds/results
--iterations 1
--shuffle_partitions 100
--scale_factor 10
--regenerate_dataset true
--regenerate_metadata true
--only_generate_data_and_meta true
--db_suffix delta
--format delta

步骤四:运行TPC-DS测试集

运行测试集的方法和生成数据的操作一致,仅需要修改下面三个参数

  • regenerate_dataset false
  • regenerate_metadata false
  • only_generate_data_and_meta false

执行脚本如下:

--class com.databricks.spark.sql.perf.tpcds.TPCDS_Standalone
--deploy-mode cluster
--name run_dataset
--master yarn
--conf spark.yarn.submit.waitAppCompletion=true
--conf spark.driver.cores=2
--conf spark.driver.memory=4G
--conf spark.executor.cores=4
--conf spark.executor.memory=8G
--conf spark.executor.instances=2
--conf spark.yarn.executor.memoryOverhead=1024
--conf spark.shuffle.service.enabled=true
oss://databricks-demo/tpcds-jar/spark-sql-perf-assembly-0.5.0-SNAPSHOT.jar
--dataset_location oss://databricks-demo/tpcds/
--output_location oss://databricks-demo/tpcds/results
--iterations 1
--shuffle_partitions 100
--scale_factor 10
--regenerate_dataset false
--regenerate_metadata false
--only_generate_data_and_meta false
--format delta

运行完成后结果会存储在output_location参数所指定的路径(如上面的例子,结果在:oss://databricks-demo/tpcds/results)