반응형
TPC-H 벤치마크란?
RDS의 s3 import/export 성능을 어떻게 평가할까 생각하다가 우연히 AWS블로그 글을 마주쳤습니다. AWS블로그에서는 TPC-H라는 벤치마크를 통해 성능테스트를 진행했습니다.

TPC-H 벤치마크는 TPC라는 비영리단체에서 만든 규격입니다. TPC(Transaction Processing Performance Council)는 1988년에 설립된 비영리 단체로, 데이터베이스 성능 평가 기준의 규격을 정의합니다. 8개의 테이블과 22개 복잡한 쿼리를 테스트할 수 있도록 환경설정 등을 제공합니다.
사용방법
tpch-dbgen github repo를 clone합니다.
git clone https://github.com/electrum/tpch-dbgen
cd tpch-dbgen
make를 실행합니다. 이 명령은 dbgen 바이너리를 생성하기 위해 컴파일을 수행합니다.
make
dbgen을 실행하여 tbl 파일을 생성합니다. 이 파일들은 각 테이블의 레코드가 있습니다.
time ./dbgen -s 1
- lineitem table: 주문 라인 상세정보 (수량, 가격, 할인, 세금 등) - 약 600만 행
- orders table: 주문 정보 (주문번호, 고객, 날짜, 상태) - 약 150만 건
- customer table: 고객 정보 (ID, 이름, 주소, 전화, 잔액) - 약 15만 명
- part table: 부품 정보 (부품명, 제조사, 브랜드, 가격)
- supplier table: 공급자 정보 (이름, 주소, 전화, 계정 잔액)
- partsupp table: 부품-공급자 관계 (수량, 공급 비용, 리드 타임)
- nation table: 국가 정보 (국가명, 지역)
- region table: 지역 정보 (지역명, 설명)

tbl 파일들은 아래처럼 컬럼이 "|"로 구분되어 있습니다.

레코드 import예제 - mysql
dbgen으로 생성한 레코드를 MySQL로 import 해보겠습니다.
먼저 tpch 데이터베이스를 생성하고, 테이블을 생성하는 DDL을 실행합니다.
mysql -h $HOST -u$USER -p << EOF
CREATE DATABASE tpch;
USE tpch;
SOURCE dss.ddl;
EOF

LINEITEM table에 lineitem.tpl레코드를 import합니다. RDS db.t4g.medium스펙에서 약 2분 3초가 걸렸습니다.
# 로딩 시간 측정
ttime mysql --local-infile=1 -h $HOST -u$USER -p tpch -e \
"LOAD DATA LOCAL INFILE 'lineitem.tbl' INTO TABLE LINEITEM \
FIELDS TERMINATED BY '|' LINES TERMINATED BY '\n';"

import작업에서 CPU는 약 30%정도 사용했습니다.

SELECT문으로 레코드개수를 확인합니다.
mysql -h $HOST -u$USER -p tpch << EOF
SELECT COUNT(*) FROM LINEITEM
EOF

참고자료
반응형
'전공영역 공부 기록' 카테고리의 다른 글
| 크기가 큰 csv파일을 리눅스 명령어로 여러 파일로 분할시키는 방법 (0) | 2025.11.09 |
|---|---|
| RDS S3 Import/export (0) | 2025.11.09 |
| 테라폼으로 내 PC IP를 security group에 설정하는 방법 (0) | 2025.11.08 |
| AWS Auto Scaling Group 배포 전략 (0) | 2025.10.12 |
| Argo CD v3.2 업데이트 내용: Application path에서 "." 또는 ""(공백)을 더 이상 사용할 수 없습니다. (0) | 2025.10.09 |