TPs ED
TPs ED
TP01:
3 / we have to make a copy of makefile.suit and we name it makefile using the following command:
cp makefile.suite makefile
nano makefile
MACHINE =LINUX
WORKLOAD =TPCH
7/ write
make
TPs ED 1
8/ write
./dbgen -s 1 -f
TP02 :
0\
./dbgen -s 5 -f
1\
1.1\
1.2\Create new role: the first step is to create a new role called DW
CREATE ROLE dw
SUPERUSER
CREATEDB
CREATEROLE
INHERIT
LOGIN
REPLICATION
BYPASSRLS
CONNECTION LIMIT -1;
1.1\Change password
3\Create the following tables : Nation, Region, Part, Supplier, Customer, PartSupp,
Orders, and LineItem using the DW role.
TPs ED 2
/*table NATION*/
CREATE TABLE NATION
(N_NATIONKEY INTEGER NOT NULL ,
N_NAME CHAR(25) NOT NULL ,
N_REGIONKEY INTEGER NOT NULL ,
N_COMMENT VARCHAR(152));
/*table REGION*/
CREATE TABLE REGION
( R_REGIONKEY INTEGER NOT NULL ,
R_NAME CHAR(25) NOT NULL ,
R_COMMENT VARCHAR (152));
/*table PART*/
CREATE TABLE PART
(P_PARTKEY INTEGER NOT NULL ,
P_NAME VARCHAR (55) NOT NULL ,
P_MFGR CHAR(25) NOT NULL ,
P_BRAND CHAR(10) NOT NULL ,
P_TYPE VARCHAR(25) NOT NULL ,
P_SIZE INTEGER NOT NULL ,
P_CONTAINER CHAR(10) NOT NULL ,
P_RETAILPRICE DECIMAL(15,2) NOT NULL
, P_COMMENT VARCHAR (23) NOT NULL );
/*table SUPPLIER*/
CREATE TABLE SUPPLIER
(S_SUPPKEY INTEGER NOT NULL ,
S_NAME CHAR(25) NOT NULL ,
S_ADDRESS VARCHAR (40) NOT NULL ,
S_NATIONKEY INTEGER NOT NULL ,
S_PHONE CHAR(15) NOT NULL ,
S_ACCTBAL DECIMAL(15,2) NOT NULL ,
S_COMMENT VARCHAR (101) NOT NULL);
/*table CUSTOMER*/
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);
/*table PARTSUPP*/
CREATE TABLE PARTSUPP
( PS_PARTKEY INTEGER NOT NULL ,
PS_SUPPKEY INTEGER NOT NULL , PS_AVAILQTY INTEGER NOT NULL ,
PS_SUPPLYCOST DECIMAL(15,2) NOT NULL ,
PS_COMMENT VARCHAR (199) NOT NULL );
/*table ORDERS*/
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);
/*table LINEITEM*/
TPs ED 3
CREATE TABLE LINEITEM (
L_ORDERKEY INTEGER NOT NULL,
L_PARTKEY INTEGER NOT NULL,
L_SUPPKEY INTEGER NOT NULL,
L_LINENUMBER INTEGER NOT NULL,
L_QUANTITY DECIMAL(15,2) NOT NULL,
L_EXTENDEDPRICE DECIMAL(15,2) NOT NULL,
L_DISCOUNT DECIMAL(15,2) NOT NULL,
L_TAX DECIMAL(15,2) NOT NULL,
L_RETURNFLAG CHAR(1) NOT NULL,
L_LINESTATUS CHAR(1) NOT NULL,
L_SHIPDATE DATE NOT NULL,
L_COMMITDATE DATE NOT NULL ,
L_RECEIPTDATE DATE NOT NULL ,
L_COMMENT VARCHAR (44) NOT NULL,
l_shipinstruct character(25) NOT NULL,
l_shipmode character(100) NOT NULL,
COL character(100)
);
\copy NATION FROM '/home/heythem/Desktop/ED_TP/genrated tables 02/nation.csv' with (DELIMITER '|', NULL '');
notes :
TP03
TPs ED 4
sum(l_extendedprice * (1 - l_discount)) as sum_disc_price,
sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)) as sum_charge,
avg(l_quantity) as avg_qty,
avg(l_extendedprice) as avg_price,
avg(l_discount) as avg_disc,
count(*) as count_order
from
lineitem
where
l_shipdate <= date '1998-12-01' - interval ':1'
group by
l_returnflag,
l_linestatus
order by
l_returnflag,
l_linestatus;
TP04
Partition by list :
TP05
Partition by hash :
TPs ED 5
FOR VALUES WITH (MODULUS 4, REMAINDER 0);
Partitioning by Range
TPs ED 6
FOR VALUES FROM ('1994-01-01') TO ('1996-01-01');
CREATE TABLE orders_br3 PARTITION OF orders_br
FOR VALUES FROM ('1996-01-01') TO ('1998-01-01');
CREATE TABLE orders_br4 PARTITION OF orders_br
FOR VALUES FROM ('1998-01-01') TO ('1998-08-03');
Patition by reference
TPs ED 7