-
Notifications
You must be signed in to change notification settings - Fork 3
TPCH data generation
Primal Pappachan edited this page Jun 24, 2020
·
1 revision
git clone https://github.com/gregrahn/tpch-kit.git
cd tpch-kit/dbgen
make MACHINE=LINUX DATABASE=POSTGRESQL
Create DB
createdb tpch
Load the schema
psql -U sieve tpch -f dss.ddl
Generate the data
./dbgen -vf -s 1
./dbgen -vf -s 10 (10 times the base data)
Load the data
for i in `ls *.tbl`; do
table=${i/.tbl/}
echo "Loading $table..."
sed 's/|$//' $i > /tmp/$i
psql tpch -q -c "TRUNCATE $table"
psql tpch -c "\\copy $table FROM '/tmp/$i' CSV DELIMITER '|'"
done
Reference
https://ankane.org/tpc-h http://xtr.ai/blog/2019-03-12-tpch/
Steps (assuming dbgen is already complied and ready, if not refer to [1]
- ./dbgen -s 0.1
- log into mysql and set the global variables by using this command:
mysql> SET GLOBAL local_infile=1;
- quit current server
mysql --local-infile=1 -u root -p1
create database tpch;
use tpch;
- Create tables
CREATE TABLE CUSTOMER ( C_CUSTKEY INTEGER NOT NULL,
C_NAME VARCHAR(25) NOT NULL,
C_ADDRESS VARCHAR(40) NOT NULL,
C_NATIONKEY INTEGER NOT NULL,
C_PHONE CHAR(15) NOT NULL,
C_ACCTBAL DECIMAL(15,2) NOT NULL,
C_MKTSEGMENT CHAR(10) NOT NULL,
C_COMMENT VARCHAR(117) NOT NULL);
CREATE TABLE ORDERS ( O_ORDERKEY INTEGER NOT NULL,
O_CUSTKEY INTEGER NOT NULL,
O_ORDERSTATUS CHAR(1) NOT NULL,
O_TOTALPRICE DECIMAL(15,2) NOT NULL,
O_ORDERDATE DATE NOT NULL,
O_ORDERPRIORITY CHAR(15) NOT NULL,
O_CLERK CHAR(15) NOT NULL,
O_SHIPPRIORITY INTEGER NOT NULL,
O_COMMENT VARCHAR(79) NOT NULL);
- Load the data
LOAD DATA LOCAL INFILE 'customer.tbl' INTO TABLE CUSTOMER FIELDS TERMINATED BY '|';
LOAD DATA LOCAL INFILE 'orders.tbl' INTO TABLE ORDERS FIELDS TERMINATED BY '|';
- Set constraints
ALTER TABLE CUSTOMER
ADD PRIMARY KEY (C_CUSTKEY);
ALTER TABLE CUSTOMER
ALTER TABLE ORDERS
ADD FOREIGN KEY ORDERS_FK1 (O_CUSTKEY) references CUSTOMER(C_CUSTKEY);
References
[1] https://github.com/catarinaribeir0/queries-tpch-dbgen-mysql