Flink 스트림 처리 모델: 무한 스트림·데이터플로우 그래프·연산자 병렬성

flink stream-processing data-engineering execution-model datastream
Stream-Processing-Essential 시리즈의 1단계. 배치가 다루는 '끝이 있는 데이터'와 스트림이 다루는 '끝이 없는 데이터'의 경계를 잡고, Flink가 무한 스트림을 어떤 실행 모델로 표현하는지 — 데이터플로우 그래프(StreamGraph → JobGraph → ExecutionGraph), 연산자 체이닝과 슬롯 공유, 파티션·병렬...

기술적으로 뛰어난 데이터 팀이 실패하는 이유: Data-Perspective-Action 3층 모델 (Goutham Budati)

articles data-engineering data-team decision-making career
Practical Data Community의 Goutham Budati가 쓴 'Why Technically Excellent Data Teams Still Fail'을 분석한다. 파이프라인·대시보드 실력이 아무리 뛰어나도 데이터 팀이 조직에 영향을 못 주는 이유를 'Data → Perspective → Action' 3층 모델로 설명하고, 해석(Pe...

소스 데이터를 온톨로지로: 백킹 데이터셋과 엔티티 해소

ontology data-engineering entity-resolution data-quality data-mapping
우아한 객체·링크 모델도 실제 데이터와 이어지지 않으면 그림일 뿐입니다. 파이프라인 산출물인 백킹 데이터셋을 객체 타입의 물리적 뒷받침으로 삼는 속성 매핑, 여러 소스에 흩어진 같은 실체를 하나의 객체로 묶는 엔티티 해소(결정적·확률적 매칭, 매칭 신뢰도, 골든 레코드), 그리고 중복·불일치·누락이라는 지저분한 현실 위에서 신뢰할 만한 객체 그래프를 ...

Spark로 Iceberg · Delta 다루기: 레이크하우스 저장 포맷 연동

spark data-engineering iceberg delta
Spark-Essential 시리즈의 완결편(심화). 앞 단계에서 갈고닦은 Spark를 2026 레이크하우스 스택에 얹습니다. Iceberg·Delta 오픈 테이블 포맷이 오브젝트 스토리지의 파일 더미 위에 메타데이터·스냅샷으로 ACID·시간여행을 세우는 원리를 Spark 관점에서 짚고, 카탈로그 설정·MERGE/업서트·스키마·파티션 진화로 읽고 쓰며...

PySpark 실무: API · UDF · pandas API on Spark

spark data-engineering pyspark udf
현실의 Spark 코드 대부분을 차지하는 PySpark를 파고듭니다. Python↔JVM 경계(Py4J)와 왜 대부분 내장 함수로 충분한지, UDF의 종류(느린 Python UDF vs Arrow 기반 벡터화 Pandas UDF)와 직렬화 비용, 내장 함수 우선 원칙, 그리고 기존 pandas 코드를 최소 수정으로 분산 실행하는 pandas API o...

Spark Structured Streaming: 마이크로배치 · 워터마크 · 상태

spark data-engineering streaming structured-streaming
무한 스트림을 계속 자라는 테이블로 보는 Spark Structured Streaming을 파고듭니다. 배치와 통합된 DataFrame API와 마이크로배치 모델, 이벤트 시간 집계에서 언제 윈도를 닫고 지각 데이터를 버릴지 정하는 워터마크와 윈도잉, 그리고 상태 관리·체크포인트·출력 모드로 exactly-once를 보장하는 방식까지 다룹니다.

Spark Catalyst · Tungsten · AQE: 쿼리 최적화와 코드 생성

spark data-engineering catalyst optimization
DataFrame이 RDD보다 빠른 이유를 파고듭니다. Catalyst가 쿼리를 논리 계획 → 분석 → 최적화된 논리 계획 → 물리 계획으로 변환하며 조건 푸시다운·컬럼 프루닝을 적용하는 과정, Tungsten의 off-heap 바이너리 메모리 관리와 whole-stage code generation, 그리고 런타임 통계로 계획을 다시 짜는 AQE까지...

Spark RDD · DataFrame · Dataset: 세 가지 핵심 추상화와 lazy evaluation

spark data-engineering rdd dataframe
Spark가 데이터를 다루는 세 얼굴 — 계보 기반 내결함성의 저수준 RDD, 스키마로 Catalyst 옵티마이저가 개입하는 DataFrame, 타입 안전을 더한 Dataset — 의 차이와 선택 기준을 정리합니다. 나아가 변환은 계획만 쌓고 액션에서 실행하는 lazy evaluation과, 노드 안에서 끝나는 narrow와 셔플을 부르는 wide 트...

Spark 아키텍처: Driver·Executor·클러스터 매니저와 실행 흐름

spark data-engineering architecture execution
Spark-Essential 시리즈의 1단계. 실행 계획을 세우는 Driver와 task를 수행하는 Executor의 역할·통신, 자원을 배분하는 클러스터 매니저(YARN·Kubernetes·Standalone)와 client/cluster 배포 모델, 그리고 액션→Job→Stage→Task 분해에서 스테이지 경계가 곧 셔플 지점이 되는 실행 흐름을 ...

Iceberg REST Catalog · 거버넌스: 카탈로그 표준과 접근 제어

lakehouse iceberg data-engineering rest-catalog governance
Iceberg 테이블의 '현재'를 쥐고 있는 카탈로그를 파고듭니다. 테이블 이름을 metadata.json 포인터로 매핑하고 커밋의 원자적 CAS를 실제로 수행하는 카탈로그의 역할, Hive·Hadoop·JDBC·Glue·Nessie로 파편화됐던 구현을 HTTP API 스펙 하나로 표준화한 REST Catalog와 그 커밋 프로토콜, 그리고 RBAC·...

Iceberg compaction · 유지보수: 작은 파일 문제와 스냅샷 만료

lakehouse iceberg data-engineering compaction
돌아가는 Iceberg 테이블과 건강한 Iceberg 테이블을 가르는 운영 지식을 다룹니다. 스트리밍 쓰기가 양산하는 작은 파일을 rewrite_data_files(bin-pack·sort·z-order)로 합치고, 커밋마다 쌓이는 스냅샷을 expire_snapshots로 만료시켜 파일 삭제로 잇고, 고아 파일 정리와 매니페스트 리라이트까지 포함한 정...

Iceberg 파티션 진화 · 스키마 진화: 재작성 없는 진화

lakehouse iceberg data-engineering schema-evolution
Iceberg가 Hive 테이블과 결정적으로 갈라지는 지점 — 재작성 없는 진화를 파고듭니다. 컬럼을 이름이 아닌 고유 ID로 추적해 add/drop/rename/reorder/타입 승격을 안전하게 만드는 스키마 진화, 파티션을 물리 경로가 아닌 컬럼에서 유도되는 메타데이터로 만드는 숨은 파티셔닝(transform), 그리고 월→일 같은 파티션 스펙 ...

Iceberg ACID · 스냅샷 · 시간여행: 트랜잭션과 스냅샷 격리

lakehouse iceberg data-engineering acid time-travel
Iceberg의 커밋은 새 metadata.json을 쓰고 카탈로그의 포인터를 compare-and-swap으로 교체하는 한 동작입니다. 파일은 불변이고 포인터만 상태이기에 이 교체 하나가 원자성의 전부이며, 그 위에서 스냅샷 격리·시간여행(VERSION AS OF)·롤백·optimistic concurrency의 충돌 감지와 재시도가 성립하는 원리를...

Iceberg 메타데이터 · 매니페스트 구조: 스냅샷 · 매니페스트 · 데이터 파일 계층

lakehouse iceberg data-engineering metadata
Iceberg의 모든 능력이 나오는 뿌리를 해부합니다. 카탈로그가 가리키는 메타데이터 파일(vN.metadata.json)에서 매니페스트 리스트(snap-*.avro), 매니페스트(*.avro), 데이터 파일로 이어지는 계층 구조와, 커밋이 새 스냅샷을 만들며 매니페스트를 재사용하는 방식, 그리고 파티션 요약과 컬럼 min/max 통계가 파일 list...

오픈 테이블 포맷의 문제의식: 왜 파일 위에 테이블 계층이 필요한가

lakehouse iceberg data-engineering open-table-format
오브젝트 스토리지에 Parquet를 쌓는 것만으로는 테이블이 되지 않습니다. 디렉터리와 파일 목록에 의존하는 Hive 테이블 모델이 원자성·일관성·성능에서 무너지는 지점을 구체적인 실패 시나리오로 짚고, 파일 집합 위에 스냅샷·스키마·통계라는 메타데이터 계층을 얹어 '테이블'을 만드는 오픈 테이블 포맷의 발상, 그리고 그것이 레이크하우스를 성립시키는 ...

Kafka 전달 보장: at-least-once · exactly-once · 멱등 프로듀서 · 트랜잭션

kafka data-engineering exactly-once transactions
Kafka에서 가장 자주 오해되는 주제, 전달 보장을 파고듭니다. '유실 없음'과 '중복 없음'을 분리해 at-most-once·at-least-once·exactly-once 세 전달 의미를 실패 시나리오로 해부하고, 멱등 프로듀서(PID·시퀀스 번호)가 재시도 중복을 걸러내는 원리와 그 한계, 그리고 트랜잭션(transactional.id·send...

Kafka 프로듀서 · 컨슈머 · 컨슈머 그룹: 병렬 소비와 오프셋

kafka data-engineering streaming consumer-group
Kafka의 읽기·쓰기 경로를 파고듭니다. 프로듀서의 send 경로(serializer → partitioner → 배치 → Sender)와 acks로 조율하는 처리량 vs 내구성, pull 기반 컨슈머의 poll 루프와 오프셋 커밋(자동 vs 수동), 그리고 컨슈머 그룹의 파티션 분배와 리밸런싱 — eager vs cooperative, static...

Kafka 분산 로그 · 토픽 · 파티션: 커밋 로그 모델과 파티셔닝

kafka data-engineering streaming partitioning
Kafka의 1층인 분산 커밋 로그를 파고듭니다. 큐가 아니라 append-only 로그라는 관점에서 세그먼트 파일·순차 I/O·zero-copy·retention과 compaction·재생(replay)의 힘을 잡고, 토픽·파티션·오프셋이 병렬성과 순서를 어떻게 가르는지, 파티셔닝 키와 핫 파티션·파티션 수 결정의 트레이드오프, 그리고 리더/팔로워 ...

dbt 패키지 · CI: Slim CI와 팀 규모 배포

dbt data-engineering ci-cd deployment
dbt를 팀의 것으로 만드는 5단계 — packages.yml과 dbt hub 패키지·사내 공통 모듈 전략, manifest 기반 state:modified와 --defer로 바뀐 모델만 검증하는 Slim CI, 그리고 GitHub Actions 배포 파이프라인과 오케스트레이터 연동까지 팀 규모 배포의 전부를 다룹니다.

dbt 매크로 · Jinja: SQL을 프로그래밍하기

dbt data-engineering jinja macro
dbt SQL이 사실은 Jinja 템플릿이라는 것 — 컴파일 시점에 변수·if·for가 순수 SQL로 펼쳐지는 실행 모델부터, 반복 로직을 함수처럼 묶는 매크로, run_query로 SQL을 생성하는 SQL, adapter.dispatch, 그리고 dbt_utils·codegen 같은 매크로 패키지와 과도한 매크로화의 경계까지 다룹니다.

Airflow 백필 · Catchup · 멱등: 재실행해도 안전한 파이프라인

airflow data-engineering backfill idempotency
Airflow의 시간 모델인 논리적 실행 구간(data interval)을 뿌리부터 이해하고, catchup·backfill로 과거 구간을 다시 채우는 법과 그 재실행이 데이터를 오염시키지 않도록 태스크를 멱등하게 설계하는 패턴(파티션 덮어쓰기·업서트·결정적 경로)을 하나의 설계 원칙으로 꿰어냅니다.

Airflow DAG · 오퍼레이터 · 태스크: 파이프라인을 코드로 선언하기

airflow data-engineering dag pipeline
Airflow의 출발점인 DAG·오퍼레이터·태스크를 파고듭니다. 파이프라인을 방향성 비순환 그래프로 모델링하는 이유, 오퍼레이터(템플릿)와 태스크(인스턴스)의 관계와 의존성 정의, 그리고 파이프라인을 파이썬 코드로 선언하는 configuration as code 철학과 동적 DAG 생성까지 다룹니다.

dbt Essential Curriculum: 애널리틱스 엔지니어링 심화 로드맵

dbt data-engineering curriculum
Data-Engineering-Essential 오버뷰의 '처리' 단계에서 예고된 dbt(변환·애널리틱스 엔지니어링) 심화 스핀오프. 모델·ref·소스부터 테스트·문서화, 매크로·Jinja, incremental·snapshot, 패키지·CI, 세만틱 레이어까지 6단계로 정복하는 학습 로드맵입니다. 도장깨기 방식으로 진행 상황을 추적합니다.

Lakehouse Essential Curriculum (Apache Iceberg) — 레이크하우스 에센셜 커리큘럼

iceberg lakehouse data-engineering curriculum
Data-Engineering-Essential 오버뷰의 '저장' 단계에서 개념만 소개한 오픈 테이블 포맷을 Apache Iceberg 중심으로 파고드는 심화 스핀오프. 문제의식부터 메타데이터·매니페스트 구조, ACID·스냅샷·시간여행, 파티션/스키마 진화, compaction·유지보수, REST Catalog·거버넌스, 그리고 Iceberg vs D...

Spark Essential Curriculum

spark data-engineering curriculum
Data-Engineering-Essential 오버뷰의 '처리' 단계에서 예고된 Apache Spark 심화 스핀오프. 아키텍처(Driver/Executor)부터 RDD/DataFrame/Dataset, Catalyst·Tungsten, 셔플·튜닝, Structured Streaming, PySpark 실무, Iceberg/Delta 연동까지 7단계...

Stream Processing Essential Curriculum (Apache Flink) — 스트림 처리 심화 커리큘럼

flink stream-processing data-engineering curriculum
Data-Engineering-Essential 오버뷰의 '처리' 단계에서 개념만 소개한 이벤트 시간·워터마크·윈도잉을 Apache Flink 중심으로 파고드는 심화 스핀오프. 스트림 처리 모델부터 이벤트 시간·워터마크, 상태·체크포인트, exactly-once, 윈도잉·조인·CEP, Flink SQL까지 6단계로 정복하는 학습 로드맵입니다. 도장깨기...

DataOps·운영·신뢰성: 데이터 시스템을 소프트웨어처럼 운영하기

data-engineering dataops ci-cd monitoring data-security
데이터 파이프라인에 버전 관리·자동 테스트·환경 분리·자동 배포(DataOps/CI-CD)를 입히고, SLA/SLO/SLI와 경보·장애 대응·FinOps로 신뢰성을 지키며, 최소 권한·마스킹·암호화·규정 준수로 데이터를 안전하게 운영하는 법을 다룹니다. 시리즈의 마지막 10단계.

데이터 저장(Storage): 웨어하우스·레이크·레이크하우스와 파일·테이블 포맷

data-engineering data-storage data-warehouse data-lakehouse parquet
OLTP와 OLAP, 행 지향과 열 지향 저장의 차이부터 데이터 웨어하우스·레이크·레이크하우스의 선택 기준, Parquet/ORC/Avro 같은 파일 포맷과 Iceberg/Delta/Hudi 같은 테이블 포맷까지 — 데이터를 '어디에 어떤 형태로' 쌓을지를 한 층씩 풀어냅니다.

Data Engineering Essential Curriculum

data-engineering data-pipeline curriculum
데이터 엔지니어링의 정의와 역사부터 수집·저장·처리·오케스트레이션 기술 오버뷰, 사례별 파이프라인 설계, 품질·거버넌스·DataOps까지 10단계로 정복하는 종합 학습 로드맵입니다. 도장깨기 방식으로 진행 상황을 추적합니다.