| GaonIT Cloud — 호스팅 & 클라우드
가온IT

데이터 레이크/ETL

개발자가 사랑하는 호스팅 & 클라우드. 지금 바로 시작하세요.

Lakehouse / ETL / ELT요금: 별도문의

데이터 레이크 / ETL

원천 데이터 수집부터 정제·카탈로그·거버넌스·오케스트레이션까지, 분석과 AI가 바로 쓰는 레이크하우스 기반을 제공합니다.

🌊 스키마 온 리드
오브젝트 스토리지 기반으로 원시 데이터를 그대로 보관, 필요 시점에 스키마 적용.
⚡ 배치 + 스트림
Spark/Flink 기반 대용량 배치, Kafka/Flink로 실시간 처리.
📚 카탈로그
메타데이터/파티션 관리, Parquet/ORC 최적화, 데이터 계보(라인리지).
🛡️ 거버넌스
IAM 역할/정책, 암호화, 감사로그, 디도스보호(프록시) 연동.
레퍼런스 아키텍처
구성요소
  • 수집층: Kafka Connect / HTTP Ingest / DB CDC
  • 저장층: 오브젝트 스토리지(Parquet/ORC), 파일 스토리지(NFS)
  • 처리층: Spark(배치), Flink(스트림), SQL 엔진
  • 카탈로그: 메타스토어/스키마 레지스트리
  • 거버넌스: IAM/정책/암호화/감사
  • 오케스트레이션: Airflow/워크플로
데이터 플로우(요약)
[Producers]
  └─(CDC/Kafka/HTTP)──▶  [Ingest]
                           └─▶  [Raw Zone (S3 호환)]
                                   └─▶  [ETL/ELT: Spark/Flink]
                                          └─▶  [Curated Zone]
                                                  └─▶  [Catalog/BI/AI]

수집/연결 커넥터

전체배치스트림
소스 프로토콜 모드 비고
RDBMS(MySQL/Postgres)JDBC + 병렬 스냅샷배치증분키/타임스탬프
RDBMS CDCDebezium/Kafka Connect스트림변경이벤트 캡처
파일 업로드S3 API/NFS배치CSV/JSON/Parquet
로그/이벤트Kafka / HTTP스트림웹/앱/IoT
IoT/센서Mqtt/HTTP스트림타임시리즈
저장소 & 포맷
유형 포맷 압축 주요 용도
오브젝트Parquet/ORCSnappy/Zstd분석/머신러닝
오브젝트JSON/CSVGzip원시/교환
파일(NFS)행/열 혼합-DL/레거시 호환
* 스키마/파티션은 카탈로그에서 관리됩니다.
처리(배치/스트림)
엔진 모드 스케일 사례
Spark배치수십~수백 노드정규화/집계/피처 생성
Flink스트림밀리초 SLA실시간 ETL/알림
SQL 엔진인터랙티브서버리스/MPP애드혹 분석
카탈로그 / 거버넌스
메타데이터 — 테이블/파티션/스키마 버전.
보안 — IAM(사용자/역할/정책), 컬럼 마스킹, 행 수준 필터.
암호화 — 저장/전송 시 암호화, 키 관리.
감사 — 감사로그/라인리지로 변경 추적.
오케스트레이션(워크플로)
from airflow import DAG
from airflow.operators.bash import BashOperator
from airflow.providers.apache.spark.operators.spark_submit import SparkSubmitOperator
from datetime import datetime

with DAG("daily_lake_etl", start_date=datetime(2025,1,1), schedule_interval="@daily", catchup=False) as dag:
  extract = BashOperator(task_id="extract", bash_command="python3 extract_rdbms.py {{ ds }}")
  transform = SparkSubmitOperator(task_id="transform", application="etl/jobs/curate_parquet.py", application_args=["--date", "{{ ds }}"]) 
  load = BashOperator(task_id="load", bash_command="python3 load_dw.py {{ ds }}")
  extract >> transform >> load
-- 파티션드 테이블 예시
CREATE TABLE lake.sales_curated (
  date DATE, region STRING, sku STRING, qty INT, amount DOUBLE
) USING PARQUET
PARTITIONED BY (date)
LOCATION 's3://lake/curated/sales';

INSERT OVERWRITE TABLE lake.sales_curated
SELECT date, region, sku, SUM(qty), SUM(amount)
FROM lake.raw_sales
WHERE date = '${date}'
GROUP BY date, region, sku;
모니터링 / 라인리지
영역 지표/로그 알림
수집오프셋/지연/실패율지연/실패 임계 초과
처리잡 시간/스테이지 재시도런타임/오류율
저장IOPS/지연/오브젝트 수용량 임계/비정상 패턴
라인리지컬럼 변환/의존성스키마 변화 감지
비용 최적화 가이드
포맷/압축 — Parquet+Zstd, 컬럼 프루닝/푸시다운.
파티셔닝 — 날짜/지역 등 선택적 스캔.
수명주기 — 핫→웜→아카이브 계층화.
스팟/선점형 — 배치 잡 컴퓨팅 비용 절감.
메트릭기반 — 실패 재시도/자동 스케일.
전송최적화 — 같은 리전 간 전송 우선, 캐시.
추가 샘플
Flink SQL — 실시간 윈도 집계
Kafka Connect — S3 싱크 (개념요약)
{
  "connector.class": "io.confluent.connect.s3.S3SinkConnector",
  "topics": "events",
  "s3.bucket.name": "lake/raw/events",
  "format.class": "io.confluent.connect.s3.format.parquet.ParquetFormat",
  "flush.size": 100000
}
요금 안내
항목 산정 비고
스토리지GB·월계층별 단가 상이
컴퓨팅vCPU·시간배치/스트림 워커
전송GB 당리전/외부 전송 과금
카탈로그/메타요청/시간구성에 따라
* 실제 제공 범위/단가는 상담 후 확정됩니다. 요금은 별도문의.
데이터 레이크/ETL 도입, 지금 시작하세요
원천 시스템/규모/목표 KPI만 알려주시면 아키텍처/비용안을 제안드립니다.