
# TPC-DS数据构建
1. 登录ECS云服务器，执行如下命令创建TPC-DS存放目录。 
   ```
   mkdir -p /data1/script/tpcds-kit/tpcds1000X
   mkdir -p /data2/script/tpcds-kit/tpcds1000X
   ```
   
   
2. 从[官网](https://www.tpc.org/tpc_documents_current_versions/current_specifications5.asp)获取TPC-DS数据构建工具dsdgen最新版本，并通过SFTP工具上传到ECS的/data1/script/tpcds-kit目录。
3. 执行如下命令解压tpcds的包并编译生成数据构建工具dsdgen。 
   - *"tpcds_3.2.0.zip"*替换为实际的软件包名。
   
   - *"DSGen-software-code-3.2.0rc1*"替换为实际解压的文件夹名。
   
   
   ```
   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** 目录后，执行以下命令生成数据。
   
   ![](https://support.huaweicloud.com/pwp-dws/public_sys-resources/note_3.0-zh-cn.png)
   - 因为tpcds 1000X的数据，单个表的数据文件较大，我们采取分片生成的策略。
   
   - Tpcds 1000X数据文件总大小约930GB，请确认ECS的磁盘空间足够。
   
   - 由于生成的数据较大，只启动一个GDS导入数据会比较慢，建议均分两个数据盘来生成数据，如下示例，1-5分片存放至*/data1/script/tpcds-kit/tpcds1000X* ，6-10分片存放至*/data2/script/tpcds-kit/tpcds1000X*。
    
   ```
   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** ，查看生成数据文件的进程是否退出。
   
   ```
   du -sh /data1/script/tpcds-kit/tpcds1000X/*.dat
   du -sh /data2/script/tpcds-kit/tpcds1000X/*.dat
   ```
   
   
 
