데이터 마트 생성
SQL 기반 집계 마트를 정의하고, Iceberg 테이블로 자동 생성/갱신하는 방법을 안내합니다.

사전 준비
- 관리자 권한으로 로그인
- 소스 데이터가 존재해야 합니다 (tpch 카탈로그 등)
데이터 마트란?
데이터 마트는 원천 데이터를 비즈니스 목적에 맞게 집계/변환한 결과 테이블입니다. GenD에서는 SQL 한 줄로 마트를 정의하면 Iceberg 테이블로 자동 생성됩니다.
1단계: 데이터 마트 페이지 열기
좌측 사이드바 데이터 엔지니어링 > 데이터 마트 메뉴를 클릭합니다.
2단계: 마트 생성
[+ 마트 생성] 버튼을 클릭하여 생성 다이얼로그를 엽니다.
2-1. 마트 정의
| 필드 | 예시 값 | 설명 |
|---|---|---|
| 이름 | customer_segments | 마트 이름 |
| 유형 | view | view / materialized |
| 대상 카탈로그 | iceberg | 결과 저장 카탈로그 |
| 대상 스키마 | marts | 결과 저장 스키마 |
| 대상 테이블 | customer_segments | 결과 저장 테이블명 |
| 갱신 전략 | full | full / incremental |
2-2. SQL 작성
집계 SQL을 작성합니다:
SELECT
mktsegment,
COUNT(*) AS customer_count
FROM tpch.tiny.customer
GROUP BY 1
3단계: 마트 확인
생성된 마트가 목록에 나타납니다. 주요 정보:
- 이름 — 마트 식별자
- 유형 — view / materialized
- 대상 테이블 — Iceberg 대상 경로
- 활성 — 사용 여부
4단계: 새로고침 실행
목록에서 [새로고침] 버튼을 클릭하면 SQL을 재실행하여 마트를 갱신합니다.
5단계: 결과 프리뷰
SQL 에디터에서 마트 결과를 조회합니다:
-- 고객 세그먼트 마트 조회
SELECT * FROM iceberg.marts.customer_segments;
예상 결과:
| mktsegment | customer_count |
|---|---|
| AUTOMOBILE | 29 |
| BUILDING | 34 |
| FURNITURE | 27 |
| HOUSEHOLD | 32 |
| MACHINERY | 28 |
마트 활용 예시
월별 주문 집계 마트
-- monthly_orders 마트 SQL
SELECT
DATE_TRUNC('month', orderdate) AS order_month,
orderpriority,
COUNT(*) AS order_count,
SUM(totalprice) AS total_amount
FROM tpch.tiny.orders
GROUP BY 1, 2
Federation SQL 마트
여러 카탈로그를 조인하는 마트도 정의 가능합니다:
SELECT
c.mktsegment,
COUNT(DISTINCT o.orderkey) AS order_count,
ROUND(AVG(o.totalprice), 2) AS avg_order_value
FROM tpch.tiny.customer c
JOIN tpch.tiny.orders o ON c.custkey = o.custkey
GROUP BY 1