[Spark] Spark Standalone과 YARN 클러스터 매니저 비교
Spark Standalone과 YARN이 익스큐터를 배치하고 자원을 나누는 방식과, 같은 설정 키를 두 매니저가 다르게 읽는 지점을 Spark 3.5 기준으로 정리한다.
Spark Standalone과 YARN이 익스큐터를 배치하고 자원을 나누는 방식과, 같은 설정 키를 두 매니저가 다르게 읽는 지점을 Spark 3.5 기준으로 정리한다.
Iceberg 데이터 파일을 압축한 뒤 Spark MERGE의 태스크당 입력 크기가 커지면서 실행 메모리 한도를 넘고 Spill이 증가한 원인을 정리한다.
Delta Lake의 Z-Order가 여러 컬럼 값을 같은 파일에 모으는 원리와 정렬 방식별로 읽는 파일 수의 차이, 적용 방법과 컬럼 선택 기준, Liquid Clustering과의 차이를 정리한다.
Spark standalone 집계 잡에서 반복되던 Spill과 Executor OOM을 History Server 지표로 추적하고, Executor 메모리와 memory.fraction 조정 전후를 비교한다.
Spark on YARN 환경에서 워커 디스크 사용량이 계속 증가한 원인을 추적하고, TRIM과 셔플 파티션 조정, Iceberg merge-on-read 전환 전후를 비교한다.
Apache Iceberg 테이블에 쌓이는 스냅샷과 작은 파일을 다루는 유지 관리 작업과 이를 안전하게 자동화하는 방법을 정리한다.
여러 DBMS의 데이터 타입을 표준 타입으로 정규화하고 PostgreSQL, Iceberg, Spark 타입으로 변환하는 매핑 표를 정리한다.
데이터엔지니어링 필수 개념인 동시성과 병렬성에 대한 이해
스파크에서 JDBC 파티셔닝을 활용해 데이터 읽기 최적화 하기
Apache Iceberg가 데이터 레이크의 파일을 테이블로 관리하는 방식과 카탈로그, 스냅샷, 매니페스트, 데이터 파일의 계층 구조를 정리한다.
데이터 통합 플랫폼 씨터널을 활용한 CDC 데이터 동기화
스파크 세션 및 원격 작업 등을 관리할 수 있는 다양한 도구 알아보기
스파크 애플리케이션 최적화를 위한 실행 단계 이해
PostgreSQL Wrtie-Ahead LOG 설정 구성
로컬에 카프카 설치 및 UI로 Topic 생성하기
Change Data Capture의 개념과 WAL 로그 기반 파이프라인 구축 방법
Spark 기반의 자연어 처리 라이브러리 살펴보기
Livy를 활용한 인터랙티브한 스파크 작업
정적/동적 스크래핑 차이, selenium과 requests 스크래핑 방식 차이
블로그 광고성 데이터 전처리 방법
메시지큐 카프카의 커넥트와 커넥터 개념 및 실습
대용량·파티션 테이블에서 autovacuum이 늦게 도는 이유와, scale_factor·insert·cost_limit 옵션을 왜 어떻게 조정해야 하는지를 정리한다.
PostgreSQL에서 correlation이 가리키는 두 대상(플래너 통계와 데이터 관계)을 구분하고, 상관된 컬럼으로 파티셔닝했을 때 파티션별 통계와 접근 경로 선택이 읽기량을 줄이는 원리를 정리한다.
Citus에서 컬럼형 분산 테이블을 만들고 상태를 확인하는 방법과 증분 반영이 필요한 데이터를 하이브리드로 운영하는 방법을 정리한다.
REFRESH MATERIALIZED VIEW CONCURRENTLY가 Dead Tuple을 누적시키는 구조와 정기 제거, 발생 최소화, 모니터링 운영 방안을 정리한다.
Seq Scan 반복에서 시작해 26일간 열려 있던 장기 트랜잭션에 도달한 진단 과정과, 무관한 테이블의 트랜잭션이 VACUUM을 막는 MVCC 스냅샷 원리, 조치 뒤 이어진 MVIEW 리프레시 지연 후속 이슈까지 정리한다.
Airflow 스케줄링의 DAG Run, schedule, data interval, logical date, start_date 관계와 catchup·timetable에 따라 첫 실행 시각이 달라지는 조건을 정리한다.
dbt v1.12 최신 YAML 스펙 기준으로 Semantic Layer의 구성 요소와 entity·dimension·metric 정의 구조를 설명하고, 같은 질문에 대해 마트 테이블 방식과 비교해 SQL 생성 주체, 테이블 수, 정의 변경 범위의 차이를 정리한다.
테스트 프로젝트로 dbt의 모델 실행, 품질 검증, 메타데이터 산출, 환경 분리를 실측해 도구가 제공하는 범위와 제공하지 않는 범위를 정리한다.
PostgreSQL 19 베타에서 공개된 주요 신규 기능과 변경점을 정리한다.
Iceberg REST Catalog가 무엇이고 왜 필요한지, 그리고 이 카탈로그를 축으로 테이블을 어떻게 모니터링하는지 정리한다.
한국 세법 MCP 서버를 원격 HTTP로 전환하고 Cloud Run과 Firebase Hosting으로 공개 배포하면서 적용한 설정과 운영 시 주의할 점을 정리한다.
dbt 산출물과 카탈로그 정보를 SQLGlot으로 분석해 컬럼 간 의존 관계를 계산하고 PostgreSQL에 메타데이터로 저장한 과정을 정리한다.
데이터 규모에 비해 무거웠던 Spark와 Iceberg 중심 구조를 DuckDB와 DuckLake로 단순화한 과정과 결과를 정리한다.
dbt 테스트 결과에 원인, 영향 범위와 이력을 연결해 데이터 품질 문제의 조치 순서를 정하는 진단 페이지를 설계한다.
Apache Superset을 시각화 엔진으로 사용하면서 데이터 플랫폼 안에서 하나의 분석 기능처럼 제공하는 통합 구조를 설계한다.
구글 애널리틱스를 활용해 방문자 분석 기능 추가하는 방법
Livy API와 asyncpg의 비동기 구성 차이로 확인하는 동기/비동기, 블로킹/논블로킹의 개념
파이썬 비동기 프로그래밍 기초 개념
파이썬 병렬처리 프로그래밍 멀티프로세싱과 멀티스레딩 비교
래빗엠큐 설치하고 관리자 계정 생성하기
AWS EC2에 카프카 서버, 프로듀서 구동하기
Ingress Gateway와 Controller의 개념
도커의 기본 개념과 명령어 정리
Google Sheets의 데이터를 Apps Script로 전달하고 Sites 화면에서 안전하게 불러오는 과정을 정리한다.
ChatGPT Sites에서 첫 화면을 만들고, 검토용 버전을 거쳐 실제 사이트로 배포하는 과정을 정리한다.
korean-taxlaw-mcp의 검색·상세 응답에서 중복 필드와 반복 메타데이터를 제거하고 호출 흐름을 분리해 응답 크기를 줄인 과정을 정리한다.
웹 브라우저나 셀레니움 없이 HTTP 요청만으로 국세청 홈택스 공동인증서 로그인을 재현하는 과정을 인증서 복호화와 전자서명 구현을 중심으로 정리한다.