更新时间:2024-08-20 GMT+08:00

TPC-DS数据构建

  1. 登录ECS云服务器,执行如下命令创建TPC-DS存放目录。

    1
    2
    mkdir -p /data1/script/tpcds-kit/tpcds1000X
    mkdir -p /data2/script/tpcds-kit/tpcds1000X
    

  2. 官网获取TPC-DS数据构建工具dsdgen最新版本,并通过SFTP工具上传到ECS的/data1/script/tpcds-kit目录。
  3. 执行如下命令解压tpcds的包并编译生成数据构建工具dsdgen。

    • “tpcds_3.2.0.zip”替换为实际的软件包名。
    • “DSGen-software-code-3.2.0rc1”替换为实际解压的文件夹名。
    1
    2
    cd /data1/script/tpcds-kit && unzip tpcds_3.2.0.zip
    cd DSGen-software-code-3.2.0rc1/tools && make
    

  4. 进入/data1/script/tpcds-kit/DSGen-software-code-3.2.0rc1/tools目录后,执行以下命令生成数据。

    • 因为tpcds 1000X的数据,单个表的数据文件较大,我们采取分片生成的策略。
    • Tpcds 1000X数据文件总大小约930GB,请确认ECS的磁盘空间足够。
    • 由于生成的数据较大,只启动一个GDS导入数据会比较慢,建议均分两个数据盘来生成数据,如下示例,1-5分片存放至/data1/script/tpcds-kit/tpcds1000X,6-10分片存放至/data2/script/tpcds-kit/tpcds1000X
    1
    2
    for c in {1..5};do (./dsdgen -scale 1000 -dir /data1/script/tpcds-kit/tpcds1000X -TERMINATE N -parallel 10 -child ${c} -force Y > /dev/null 2>&1 &);done
    for c in {6..10};do (./dsdgen -scale 1000 -dir /data2/script/tpcds-kit/tpcds1000X -TERMINATE N -parallel 10 -child ${c} -force Y > /dev/null 2>&1 &);done
    

    其中:

    • -scale 指定数据规模,本例为1000。
    • -dir 指定生成数据文件存放的目录,本例为/data1/script/tpcds-kit/tpcds1000X/data2/script/tpcds-kit/tpcds1000X
    • -TERMINATE 控制每行记录的末尾是否需要分隔符。
    • -parallel 指定分片数,本例为10片。
    • -child 指定当前是生成分片中的第几片,本例不需修改。

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

    1
    2
    du -sh /data1/script/tpcds-kit/tpcds1000X/*.dat
    du -sh /data2/script/tpcds-kit/tpcds1000X/*.dat