更新时间:2024-10-22 GMT+08:00
分享

TPC-H数据生成

  1. 官网获取TPC-H工具。
  2. 登录ECS云服务器,执行如下命令创建TPC-H存放目录。

    mkdir -p /data1/script/tpcds-kit/tpch1000X
    mkdir -p /data2/script/tpcds-kit/tpch1000X

  3. 将获取的TPC-H工具上传到ECS的/data1/script/tpch-kit目录执行以下命令解压。

    “tpch_3.0.1.zip”替换为实际的软件包名。

    cd /data1/script/tpch-kit && unzip tpch_v3.0.1.zip

  4. 执行如下命令编译生成数据构建工具dbgen。

    编译之前需要修改dbgen目录下的两个文件:makefile.suite和tpcd.h

    1. 修改makefile.suite文件。
      #makefile.suite的更改参数如下(103行-111行):
      CC      = gcc
      # Current values for DATABASE are: INFORMIX, DB2, TDAT (Teradata)
      #                                  SQLSERVER, SYBASE, ORACLE, VECTORWISE
      # Current values for MACHINE are:  ATT, DOS, HP, IBM, ICL, MVS,
      #                                  SGI, SUN, U2200, VMS, LINUX, WIN32
      # Current values for WORKLOAD are:  TPCH
      DATABASE = POSTGRESQL     #程序给定参数没有postgresql ,修改tpcd.h 添加POSTGRESQL脚本
      MACHINE = LINUX
      WORKLOAD = TPCH
    2. 修改tpcd.h文件。
      //在tpcd.h文件增加如下语句:
      #ifdef POSTGRESQL
      #define GEN_QUERY_PLAN  "EXPLAIN"
      #define START_TRAN      "BEGIN TRANSACTION"
      #define END_TRAN        "COMMIT;"
      #define SET_OUTPUT      ""
      #define SET_ROWCOUNT    "LIMIT %d\n"
      #define SET_DBASE       ""
      #endif /* POSTGRESQL */
      $ cd TPC-H_Tools_v3.0.1/dbgen
      $ cp makefile.suite makefile
      $ make -f makefile
      $ cp -R /data1/script/tpch-kit/TPC-H_Tools_v3.0.1/ /data2/script/tpch-kit/

  5. 登录ECS,执行如下命令生成TPC-H 1000X数据,本示例分两个数据盘同步生成TPC-H 1000x数据。

    TPC-H 1000X数据文件总大小约1100GB,请确认ECS的磁盘空间足够。

    1. 进入/data1/script/tpch-kit/TPC-H_Tools_v3.0.1/dbgen目录后,执行如下命令。
      for c in {1..5};do (./dbgen -s 1000 -C 10 -S ${c} -f > /dev/null 2>&1 &);done
    2. 进入/data2/script/tpch-kit/ TPC-H_Tools_v3.0.1/dbgen目录后,执行如下命令。
      for c in {6..10};do (./dbgen -s 1000 -C 10 -S ${c} -f > /dev/null 2>&1 &);done

      其中:

      • -s 指定数据规模,本例为1000。
      • -C 指定分成几个chunk,本例为10。
      • -S 指定当前是第几个chunk,此处不需修改。

  1. 执行以下命令,判断数据文件的生成进度。也可以通过ps ux|grep dbgen,查看生成数据文件的进程是否退出。

    du -sh /data1/script/tpch-kit/TPC-H_Tools_v3.0.1/dbgen/*.tbl*
    du -sh /data2/script/tpch-kit/TPC-H_Tools_v3.0.1/dbgen/*.tbl*

  2. 将TPC-H 1000X数据转移至指定目录。

    mv /data1/script/tpch-kit/TPC-H_Tools_v3.0.1/dbgen/*.tbl* /data1/script/tpch-kit/tpch1000X
    mv /data2/script/tpch-kit/TPC-H_Tools_v3.0.1/dbgen/*.tbl* /data2/script/tpch-kit/tpch1000X

相关文档