시딩 가이드
샘플 데이터를 GenD 환경에 적재하는 방법을 설명합니다.
사전 요구사항
- Kind 클러스터(
gend-local)가 실행 중이어야 합니다 - PostgreSQL, Trino, SeaweedFS 서비스가 정상 동작해야 합니다
port-forward가 설정되어 있어야 합니다 (Trino: 30080, PostgreSQL: 5433)
빠른 시작
# demo 스케일로 전체 시드 실행
make seed-demo
수동 실행
cd scripts/seed
# 1. 데이터 생성 (Parquet + CSV)
python -m seed.generate --scale demo
# 2. PostgreSQL 적재 (sourcedb, card_crm, card_log)
python -m seed.load_pg --scale demo
# 3. Iceberg 적재 (SeaweedFS → Trino)
python -m seed.load_iceberg --scale demo
스케일 팩터 선택
| 스케일 | 고객 | 거래 | 소요 시간 | 용도 |
|---|---|---|---|---|
tiny | 1K | 10K | ~30초 | 단위 테스트, CI |
demo | 100K | 1M | ~5분 | PoC 시연 |
perf | 5M | 50M | ~60분 | 성능 벤치마크 |
환경 변수
| 변수 | 기본값 | 설명 |
|---|---|---|
GEND_SOURCEDB_HOST | localhost | PostgreSQL 호스트 |
GEND_SOURCEDB_PORT | 5433 | PostgreSQL 포트 |
GEND_SOURCEDB_USER | gend | PostgreSQL 사용자 |
GEND_SOURCEDB_PASSWORD | gend | PostgreSQL 비밀번호 |
GEND_TRINO_HOST | localhost | Trino 호스트 |
GEND_TRINO_PORT | 30080 | Trino 포트 |
출력 디렉토리
생성된 Parquet/CSV 파일은 scripts/data/card_demo/{scale}/ 디렉토리에 저장됩니다.
시드 테스트
cd apps/api
.venv/bin/python -m pytest ../../scripts/test_seed*.py -v
# 128 tests
데이터 검증
시드 완료 후 Trino에서 확인:
SELECT COUNT(*) FROM iceberg.card.transactions;
SELECT COUNT(*) FROM sourcedb.public.customers;