728x90 분류 전체보기337 [Kafka] 카프카 디자인 정리(특징, 데이터 모델, 리플리케이션, 주키퍼 지노드) 이번 포스트부터 카프카에 대해서 정리를 하겠습니다. 우선 카프카가 만들어질 때 고려된 점을 디자인에 반영한 그 특징에 대해서 정리해보겠습니다. 1. 카프카 디자인 특징링크드인에서 ActiveMQ를 사용하다가 사용자 증가로 한계점을 느끼고 카프카를 설계하게 됨분산된 데이터 파이프라인을 통합, 처리량에 중점을 둠높은 처리량과 빠른 메세지 전송, 운영 효율화 등을 위해 분산 시스템, 페이지 캐시, 배치 전송 처리 등의 기능을 구현1) 분산 시스템분산 시스템은 다음과 같은 장점이 있음단일 시스템보다 더 높은 성능분산 시스템 중 하나의 서버 또는 노드 등이 장애가 발생하면 다른 서버 또는 노드가 대신 처리함시스템 확장이 용이함2015년 기준 링크드인은 가장 사용량이 높은 클러스터의 경우 60대의 브로커로 분산 처.. 2025. 2. 19. [Spark] Spark Streaming 운영 환경에서의 Structured Streaming 이번 포스트에는 spark streaming을 운영할 때 중요한 포인트를 정리 해보겠습니다.1. 내고장성과 체크포인팅structured streaming application은 단순히 재시작만으로 장애 상황을 극복스파크 엔진이 자동으로 관리하는 체크포인트와 WAL을 사용하도록 설정해야 함장애 상황이 발생하면 단순히 application을 다시 시작하여 중간 상탯값을 저장한 체크 포인트 경로를 참조하도록 설정, 이전 상태를 복구하고 중단된 데이터를 처리함체크포인트 디렉터리나 디렉터리의 파일이 제거된 경우 장애 상황에서 애플리케이션을 정상적으로 실행할 수 없고, 처음부터 다시 스트림 해야 함val static = spark.read.json("/data/activity-data")val streaming =.. 2025. 2. 10. [Spark] Spark Streaming 이벤트 시간과 상태 기반 처리 정리 스트리밍 데이터를 다룰 때 꼭 필요한 개념인 이벤트 시간 처리와 상태 기반 처리에 대해서 정리하겠습니다. 1. 이벤트 시간 처리DStream API는 이벤트 시간과 관련된 처리 정보를 제공하지 않음이벤트 시간:이벤트 시간은 데이터에 기록되어 있는 시간대부분의 경우 이벤트가 실제로 일어난 시간을 의미이벤트를 다른 이벤트와 비교하는 더 강력한 방법을 제공하기 때문에 사용해야 함이때 지연되거나 무작위로 도착하는 이벤트를 해결해야 한다는 문제점이 있음스트림 처리 시스템은 지연되거나 무작위로 도착한 데이터를 반드시 제어할 수 있어야 함처리 시간:처리 시간은 스트림 처리 시스템이 데이터를 실제로 수신한 시간세부 구현과 관련된 내용이므로 이벤트 시간보다 덜 중요이벤트 시간처럼 외부 시스템에서 제공하는 것이 아니라 스.. 2025. 2. 10. [Spark] Spark streaming readStream, writeStream format, option, mode 및 config 정리 이번 포스트에는 spark streaming에서 input과 output에서 사용되는 source(format)의 종류와 option을 정리해보겠습니다. 1. format1) readStream.format() Format 설명 socketTCP 소켓 (netcat 등)에서 텍스트 데이터 수신kafkaKafka 토픽에서 데이터 수신file특정 디렉토리에 추가되는 파일을 실시간으로 읽음rate초당 일정한 개수의 행을 생성하는 데이터 소스rate-micro-batch마이크로 배치 기반으로 일정한 개수의 행을 생성deltaDelta Lake 테이블을 스트리밍 소스로 사용parquetParquet 파일을 스트리밍 소스로 사용orcORC 파일을 스트리밍 소스로 사용jsonJSON 파일을 스트리밍 소스로 사용cs.. 2025. 2. 7. [Spark] Spark Streaming, Structured Streaming 기초 정리 이번 포스트에는 spark streaming 고수준 API인 structured streaming에 대해서 정리해보겠습니다. 1. Structured Streaming 개요 및 특징Structured streaming은 spark SQL 엔진 기반의 스트림 처리 프레임워크(spark의 structured API인 Dataframe, Dataset 그리고 SQL를 사용함)스트리밍 연산은 배치 연산과 동일하게 표현함, 사용자가 스트림 처리용 코드와 목적지를 정의하면 structured streaming 엔진에서 신규 데이터에 대한 증분 및 연속형 쿼리를 실행하고, 코드 생성, 쿼리 최적화 등의 기능을 지원하는 카탈리스트 엔진을 사용해 연산에 대한 논리적 명령을 처리함종합적이며, 정확히 한 번 처리 방식(ex.. 2025. 2. 6. [Data Engineering] Real-time processing, Streaming data과 Message의 차이는? 흔히들 실시간(real-time) streaming, Message 용어에 대한 개념에 대해 혼동하는 경우가 많으므로, 이번 포스트에는 해당 용어들을 정리해보겠습니다. 1. Real-time processing vs Streaming data1) Real-time processing실시간 처리에 대한 위키피디아 글 인용"실시간 프로그램은 지정된 시간 제약 내에서 응답을 보장해야 하며, 이는 종종 '데드라인'이라고 불린다. […] 실시간 처리는 특정 이벤트에 대해 지정된 데드라인 내에 완료되지 않으면 실패한 것으로 간주된다. 시스템 부하와 관계없이 데드라인은 항상 준수되어야 한다." 대개 우리가 real-time에 대해서 말할 때 2가지의 기준에 따라 분류 됨Real-time: 일반적으로 수 밀리초에서 몇.. 2025. 2. 1. [SQL] 조인 시 선행 테이블은 어떤 테이블이어야 할까? 조인에 대해서 2개의 테이블이 있을 때 어떤 테이블이 left에 있는게 맞을까?흔하게 그리고 항상 사용하게 되는 join에 있어서 left에 위치하게 되는 혹은 먼저 나오게 되는 테이블에 대해서 정리해보겠습니다.즉, 마스터-디테일 구조에서의 driving table을 정하는 기준을 확인해보겠습니다.1. 마스터 테이블, 디테일 테이블이란?1) 원장성 테이블(master table)업무의 핵심 개체(entity)들로서 주로 업무성격의 주체(Subject, Source)에 대한 정보를 담고 있으며, 부속된 많은 자식 테이블(child table)들을 거느리고 있음주요 엔터티(Entity)를 관리하는 테이블로, 주로 고유 ID(primary key)와 메타데이터를 포함, 다른 테이블의 참조 대상Customer,.. 2025. 1. 27. [Airflow] Airflow 개념과 전체적인 구조 정리 이번 포스트에는 Airflow의 구조에 대해서 간단하게 정리 해보겠습니다.1. LocalExecutor를 사용하는 Single Node ArchitectureSingle Node Architecutre에는 크게 4가지 모듈이 있습니다.WebServer:Airflow의 웹서버는 사용자가 DAG의 상태를 확인하거나 로그를 조회할 수 있도록 웹 인터페이스를 제공기본적으로 Flask로 구축되어 있음Scheduler: Airflow 스케줄러는 정의된 DAG(Directed Acyclic Graph)의 Task를 스케줄에 따라 실행여러 DAG에서 병렬 작업을 관리하며, Executor와 연동해 작업을 처리Metastore: DAG, USER, 권한, 실행 이력과 같은 테이블을 저장하고 있으며, PostgreSQL,.. 2025. 1. 17. [Airflow] Airflow 3.0 version 변경점 정리 Airflow가 2025 3월31일에 공개될 예정인데, 관련해서 어떤 변경점이 있는지 정리해보겠습니다.그 동안 사용자들이 추가 기능을 요구 한 것은 아래와 같았습니다. 정말 사용자 입장에서 다 필요한 것들을 공통적으로 생각하고 있었다고 동의할 수 밖에 없는 항목들 인 것 같습니다.Airflow 3.0 변경점 TASK 실행에 대한 변경 사항 (확실히 대세인 오픈 소스 3대장)SDK 변경사항importing form the airflow module 이 deprecate될 예정 1) Python 3.9 이상 지원Airflow 3.0은 Python 3.9 이상의 버전만을 지원하며, 이는 최신 Python 기능과 보안 업데이트를 활용하기 위함기존 워크플로와 플러그인이 Python 3.9 이상과 호환되는지 확인.. 2025. 1. 17. 이전 1 2 3 4 ··· 38 다음 728x90