Engineering/Database System27 배치 vs 마이크로배치 vs 스트리밍, 그리고 Flink 서버 개발자에게 "요청이 들어오면 즉시 응답한다"는 자연스러운 사고방식이다. 하지만 데이터 처리의 세계에서는 "언제 처리할 것인가" 자체가 아키텍처를 결정하는 첫 번째 질문이 된다.어제 하루치 주문 데이터를 집계해서 리포트를 만든다 → 배치최근 10초간 쌓인 클릭 로그를 모아서 대시보드를 갱신한다 → 마이크로배치사용자가 결제 버튼을 누른 바로 그 순간 이상 거래를 탐지한다 → 스트리밍 세 가지 모델은 "진화의 단계"가 아니다. 각각 고유한 트레이드오프를 가진 선택지다. 이 글에서는 세 모델의 차이를 명확히 정리하고, 스트리밍이 필요한 순간에 왜 Apache Flink가 강력한 선택지인지를 이야기한다.레이턴시처리 모델대표 기술일 단위BatchSpark, Hive분 단위Micro-batchSpark Stru.. 2026. 3. 25. Data Skew 진단과 해결 Spark on Kubernetes 클러스터에서 ETL 잡을 돌리다 보면, 대부분의 Executor Pod는 멀쩡한데 딱 한두 개 Pod만 OOMKilled로 죽는 상황을 마주하게 된다. 로그를 열어보면 해당 Pod에 할당된 파티션의 데이터가 다른 파티션 대비 수십~수백 배 많다. 이것이 Data Skew 문제다. Data Skew는 Spark만의 문제가 아니다. 데이터를 키(key) 기반으로 분산하는 모든 시스템 — Kafka, Flink, DB 샤딩, MapReduce — 에서 동일한 구조적 원인으로 발생한다. 이 글에서는 Data Skew가 왜 발생하는지 근본 원인을 파악하고, Spark에서의 구체적 해결법과 함께 분산 시스템 전반에 적용 가능한 포괄적 전략을 다룬다.목차Data Skew란 무엇인.. 2026. 3. 17. MySQL 타임존 다루기 데이터베이스에 시각 (날짜) 관련 데이터를 저장하려다 보면 타임존에 대해 고민하게 된다. 국내 한정으로 서비스한다면 크게 고려하지 않는 부분이나, 글로벌 서비스를 고민한다면 필히 타임존을 고려하여 날짜데이터를 다루게 된다. 이번에는 MySQL 데이터베이스를 기준으로 날짜 데이터와 타임존을 어떻게 다룰 수 있는지 알아본다. 목차 MySQL의 날짜와 시간 DATETIME과 TIMESTAMP 다루어보기 MySQL의 날짜와 시간 MySQL의 날짜 타입 DATETIME, TIME : 컬럼 자체에 타임존 정보 없음. 클라이언트가 입력한 값 그 자체를 저장, 반환 TIMESTAMP : UTC로 저장되어 클라이언트에게 반환할 때는 타임존 변환을 거쳐 반환 MySQL이 관리하는 타임존 정보는 아래와 같다. syst.. 2025. 1. 20. [Database] MySQL ORDER BY 방식 비교와 성능 목차인덱스를 이용한 정렬 (extra에 별도 표기 없음)driving table만 정렬 (Using filesort)임시 테이블을 이용한 정렬 (Using temporary; Using filesort) MySQL에서 ORDER BY (정렬)을 처리하는 방식은 크게 2가지가 있다. 인덱스를 활용하는 인덱스 정렬과, 메모리 (혹은 디스크까지)를 활용해서 정렬하는 filesort이다. 이 2가지 방법을 토대로 옵티마이저는 크게 세 가지 형태로 정렬을 진행할 수 있는데 결론부터 말하자면,가능하다면 인덱스를 사용한 정렬로 유도 하고, (인덱스 정렬)그렇지 못하면 최소한 드라이빙 테이블만 정렬해도 되는 수준으로 유도하는 것이 좋은 튜닝방법이다. (filesort)그렇지 않으면 임시 테이블을 이용해 정렬하게 되는.. 2024. 7. 16. [Database] 빅 데이터 (Big Data) 1장 - Big Data Storage System 전통적인 application은 관계형 데이터베이스 (RDBMS)를 기반으로 구축할 수 있었다. 그러나 현대 application은 관계형 데이터베이스 구조에 딱 맞는 데이터만을 다루지 않는다. 더 이상 데이터는 하나의 엔터프라이즈로부터 생산되지 않는다. 즉 빅데이터가 나타났으며 이 빅데이터를 다루기 위한 여러 데이터베이스 시스템 종류들이 등장한다. 따라서 빅 데이터를 정의, 분류하고 그에 따른 적절한 데이터베이스 시스템들을 훑어본다. 전체적인 흐름은 데이터베이스 시스템 (Abraham Silberschatz , Henry F. Korth , S. Sudarshan 저)의 10장 Big Data을 따른다. 목차 빅 데이터 (Big Data) 이전의 데이터 빅 데이터 쿼리 (Query) 빅 데이터 저장소 .. 2024. 4. 13. [Database] 데이터 타입 비교 : char vs varchar 목차 SQL 표준에서의 char, varchar 예시 1. Oracle 예시 2. MySQL SQL 표준에서의 char, varchar SQL 표준에서 정의한 built-in type은 다음과 같다. char(n) : character, 고정길이 형태 문자열, n (bytes)은 사용자가 정의 varchar(n) : character varying, 가변길이 형태 문자열, 사용자는 최대길이 n (bytes)을 정의 nvarchar (n) : 다국어 데이터를 저장할 수 있는 varchar int samllint numeric(p, d) real, double precision folat(n) char와 varchar에 대해 간단히 비교해보려 한다. 둘 다 문자열 데이터 타입이고, null을 삽입할 수 있다.. 2024. 1. 17. 이전 1 2 3 4 5 다음