본문으로 건너뛰기

데이터 마트 생성

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

데이터 마트 관리

사전 준비

  • 관리자 권한으로 로그인
  • 소스 데이터가 존재해야 합니다 (tpch 카탈로그 등)

데이터 마트란?

데이터 마트는 원천 데이터를 비즈니스 목적에 맞게 집계/변환한 결과 테이블입니다. GenD에서는 SQL 한 줄로 마트를 정의하면 Iceberg 테이블로 자동 생성됩니다.

1단계: 데이터 마트 페이지 열기

좌측 사이드바 데이터 엔지니어링 > 데이터 마트 메뉴를 클릭합니다.

2단계: 마트 생성

[+ 마트 생성] 버튼을 클릭하여 생성 다이얼로그를 엽니다.

2-1. 마트 정의

필드예시 값설명
이름customer_segments마트 이름
유형viewview / materialized
대상 카탈로그iceberg결과 저장 카탈로그
대상 스키마marts결과 저장 스키마
대상 테이블customer_segments결과 저장 테이블명
갱신 전략fullfull / 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;

예상 결과:

mktsegmentcustomer_count
AUTOMOBILE29
BUILDING34
FURNITURE27
HOUSEHOLD32
MACHINERY28

마트 활용 예시

월별 주문 집계 마트

-- 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

다음 단계