---
title: 使用HammerDB测试Greenplum时，可能存在数据导入失败的情况
description: "使用HammerDB工具测试Greenplum时，部分机型可能存在数据导入失败的情况，可以采用tbl文件的方式导入。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdbs/testguide/tstg/kunpenghammerdbforgp_11_0007.html
sourcePath: /source/zh/kunpengdbs/testguide/tstg/kunpenghammerdbforgp_11_0007.html
indexId: df05b8d4f341cc4a7f83372ef51094ee0b0914476e2c5854d82b2bb144132d7a70
---
# 使用HammerDB测试Greenplum时，可能存在数据导入失败的情况

#### 问题现象描述

使用HammerDB工具测试Greenplum时，部分机型可能存在数据导入失败的情况，可以采用tbl文件的方式导入。


#### 关键过程、根本原因分析

可能是HammerDB默认配置不匹配系统环境所致，可以采用tbl文件的方式导入数据。


#### 结论、解决方案及效果

1. 生成tbl文件。
  1 2 3 4 5 6 dbset db pg dbset bm tpc-h dgset directory /data/tbl dgset scale_fact 1 dgset vu 1 datagenrun
| 命令 | 含义 |
| --- | --- |
| dgset directory /data/tbl | tbl文件存储路径，路径需存在并存在剩余空间。 |
| dgset scale\_fact 1 | 数据量。 |
| dgset vu 1 | 任务并发数，与生成的tbl文件个数相关。 |
| datagenrun | 创建tbl。 |


2. 查看已生成的tbl文件。
  1 ll ./data/tbl/

3. 将生成的tbl文件拷贝至数据库服务端。其中192.168.67.106为目标数据库服务端的IP地址，用户在操作过程中请根据实际情况替换。
  1 scp -r /data/tbl/ 192.168.67.106:/data/

4. 在数据库服务器上创建库并按测试模型建表，可在HammerDB安装路径下的src/postgresql/pgolap.tcl中查看OLAP测试脚本。
  建表（默认行存）：

  1 2 3 4 5 6 7 8 CREATE TABLE ORDERS (O_ORDERDATE TIMESTAMP, O_ORDERKEY NUMERIC NOT NULL, O_CUSTKEY NUMERIC NOT NULL, O_ORDERPRIORITY CHAR(15), O_SHIPPRIORITY NUMERIC, O_CLERK CHAR(15), O_ORDERSTATUS CHAR(1), O_TOTALPRICE NUMERIC, O_COMMENT VARCHAR(79)) DISTRIBUTED BY (O_ORDERKEY); CREATE TABLE PARTSUPP (PS_PARTKEY NUMERIC NOT NULL, PS_SUPPKEY NUMERIC NOT NULL, PS_SUPPLYCOST NUMERIC NOT NULL, PS_AVAILQTY NUMERIC, PS_COMMENT VARCHAR(199)) DISTRIBUTED BY (PS_PARTKEY,PS_SUPPKEY); CREATE TABLE CUSTOMER(C_CUSTKEY NUMERIC NOT NULL, C_MKTSEGMENT CHAR(10), C_NATIONKEY NUMERIC, C_NAME VARCHAR(25), C_ADDRESS VARCHAR(40), C_PHONE CHAR(15), C_ACCTBAL NUMERIC, C_COMMENT VARCHAR(118)) DISTRIBUTED BY (C_CUSTKEY); CREATE TABLE PART(P_PARTKEY NUMERIC NOT NULL, P_TYPE VARCHAR(25), P_SIZE NUMERIC, P_BRAND CHAR(10), P_NAME VARCHAR(55), P_CONTAINER CHAR(10), P_MFGR CHAR(25), P_RETAILPRICE NUMERIC, P_COMMENT VARCHAR(23)) DISTRIBUTED BY (P_PARTKEY); CREATE TABLE SUPPLIER(S_SUPPKEY NUMERIC NOT NULL, S_NATIONKEY NUMERIC, S_COMMENT VARCHAR(102), S_NAME CHAR(25), S_ADDRESS VARCHAR(40), S_PHONE CHAR(15), S_ACCTBAL NUMERIC) DISTRIBUTED BY (S_SUPPKEY); CREATE TABLE NATION(N_NATIONKEY NUMERIC NOT NULL, N_NAME CHAR(25), N_REGIONKEY NUMERIC, N_COMMENT VARCHAR(152)) DISTRIBUTED BY (N_NATIONKEY); CREATE TABLE REGION(R_REGIONKEY NUMERIC, R_NAME CHAR(25), R_COMMENT VARCHAR(152)) DISTRIBUTED BY (R_REGIONKEY); CREATE TABLE LINEITEM(L_SHIPDATE TIMESTAMP, L_ORDERKEY NUMERIC NOT NULL, L_DISCOUNT NUMERIC NOT NULL, L_EXTENDEDPRICE NUMERIC NOT NULL, L_SUPPKEY NUMERIC NOT NULL, L_QUANTITY NUMERIC NOT NULL, L_RETURNFLAG CHAR(1), L_PARTKEY NUMERIC NOT NULL, L_LINESTATUS CHAR(1), L_TAX NUMERIC NOT NULL, L_COMMITDATE TIMESTAMP, L_RECEIPTDATE TIMESTAMP, L_SHIPMODE CHAR(10), L_LINENUMBER NUMERIC NOT NULL, L_SHIPINSTRUCT CHAR(25), L_COMMENT VARCHAR(44)) DISTRIBUTED BY (L_LINENUMBER, L_ORDERKEY);

5. 在数据库中按表逐个导入tbl文件。
  1 copy ${table_name} from '/data/tbl/${table_name}.tbl' WITH DELIMITER AS '|';

  ${table_name} 表示表名，共8张表。

6. 创建索引。
  1 2 3 4 5 6 7 8 CREATE INDEX REGION_PK ON REGION (R_REGIONKEY); CREATE INDEX NATION_PK ON NATION (N_NATIONKEY); CREATE INDEX SUPPLIER_PK ON SUPPLIER (S_SUPPKEY); CREATE INDEX PARTSUPP_PK ON PARTSUPP (PS_PARTKEY,PS_SUPPKEY); CREATE INDEX PART_PK ON PART (P_PARTKEY); CREATE INDEX ORDERS_PK ON ORDERS (O_ORDERKEY,o_orderdate); CREATE INDEX LINEITEM_PK ON LINEITEM (L_LINENUMBER, L_ORDERKEY,l_shipdate); CREATE INDEX CUSTOMER_PK ON CUSTOMER (C_CUSTKEY);
