Data/Data PipeLine

airflow 스케줄러Airflow 스케줄러의 역할Airflow 스케줄러는 모든 태스크와 DAG를 모니터링하며, 해당 DAG가 실행될 수 있는지 주기적으로 확인한다.주기적으로 (매분 또는 설정된 주기에 따라) 활성화된 태스크들을 검사하여 실행할 수 있는지 확인한다.스케줄링 간격에 따른 실행schedule_interval을 1일로 설정한 DAG이 있을 경우, 실행되는 실제 실행 시간은 그 기간이 끝난 후에 시작된다.예를 들어, 2023-01-01에 실행되도록 설정된 DAG은 2023-01-01 23:59가 지나야 실행되며, 실행된 시각은 2023-01-02로 찍힌다. 즉, Airflow는 주어진 기간이 끝난 후, 1번의 주기가 지난 후에 작업을 실행한다.실행 시간 (Execute Time)start_dat..
주요 포인트:ProviderProvider 정의Airflow Provider는 Apache Airflow 내에서 특정 기능이나 외부 시스템과의 통합을 의미한다.Providers는 Airflow가 다양한 외부 시스템, 서비스, 또는 기술과 상호작용하고 지원할 수 있도록 한다.Provider의 목적:Airflow의 Providers는 Airflow가 외부 시스템, 서비스, 기술과 상호작용할 수 있도록 하여 기본 기능을 넘어서는 작업을 처리할 수 있게 한다.모듈화된 아키텍처:Airflow는 모듈화된 아키텍처로 설계되어 있어 다양한 Providers를 쉽게 추가할 수 있다. 이로 인해 Airflow의 기능이 외부 시스템과 상호작용하거나 특정 시스템에 맞게 확장될 수 있다.Providers는 일반적으로 다음과 같..
구성Airflow 주요 구성 요소웹 서버 (Web Server):사용자가 워크플로의 상태와 진행 상황을 모니터링하고 시각화할 수 있는 사용자 인터페이스(UI)를 제공한다.스케줄러 (Scheduler):DAG(Directed Acyclic Graph)에서 정의된 의존성과 일정에 따라 작업의 실행을 조정한다. 작업이 언제(when) 어디서(where) 실행될지 결정한다.메타데이터 데이터베이스 (Metadata Database):DAG, 작업 및 작업 상태와 관련된 메타데이터를 저장하여 영속성 및 장애 복구 기능을 제공한다.실행기 (Executor):작업이 어떻게 실행될지를 정의한다. Airflow는 LocalExecutor, CeleryExecutor, KubernetesExecutor 등 다양한 실행기를 ..
토픽(topic)정의 및 특징데이터를 분류하고 저장하기 위한 기본 단위메시지를 pub/sub 할 수 있는 논리적 채널kafka 클러스터 안에 있는 데이터 스트림db의 테이블과 개념 유사topic은 Producer가 데이터를 전송하고, Conusumer가 데이터를 읽는 단위하나의 Kafka 클러스터에서 다수의 topic 을 생성할 수 있음.각 topic 은 partition 으로 분리되어 데이터를 분산 저장함파티션(partition)정의 및 특징Kafka 토픽을 물리적으로 나눈 단위병렬 처리 및 분산 처리 하기 위해 사용됨각 파티션은 하나의 순서를 가지고 데이터가 특정 순서대로 기록됨오프셋(offset)정의 및 특징Kafka 파티션 내에서 메시지가 저장된 위치를 나타내는 고유한정수 값각 파티션마다 오프셋은..
최적화 과정에서 중요한 것은 I/O 비용과 CPU 비용을 최소화하는 것입니다. 예를 들어 데이터베이스에 고객이란 테이블이 있고, Seoul 에 사는 고객의 이름만을 조회하는 쿼리를 실행한다고 가정해보자. 일반적으로 우리는 습관적으로 필요한 데이터가 아니라 * 로 모든 데이터를 불러오려고 한다. 그러나 불러오는 거 자체도 리소스가 들기 때문에 필요한 것만 들고오는 것이 중요하다. SELECT name FROM customers WHERE city = 'Seoul'; 굳이 키워드로 정리하자면, 특정 조건을 기반으로 행을 필터링하는 것을 프레디케이트 푸시다운 (Predicate Pushdown), 특정 열만 선택하여 가져오는 것을 프로젝션 푸시다운 (Projection Pushdown) 이라 한..
1. 분산 시스템에서의 읽기 복구가 중요한 이유데이터 복제: 분산시스템은 데이터의 신뢰성과 가용성을 높이기 위해 데이터를 여러 노드에 복제합니다. 한 노드에서 데이터가 변겨되면 모든 복제본을 일관되게 업데이트 해야한다.파티션 허용: 일부 노드의 실패가 있어도 사용가능한 노드들은 여전히 일관된 데이터 읽기를 지원해야 합니다.최신성 보장: 분산 시스템은 데이터 최신 버전이 어떤 노드에 있는지를 추적하고, 읽기 요청이 있을 때 최신 데이터를 제공해야 합니다. 1-1 읽기 복구를 위한 주요 접근 방식데이터의 최신상태 확인하기버전관리와 타임스탬프쿼럼 기반 읽기노드의 과반수 승인을 받는 메커니즘클라이언트 사이드 복구클라이언트가 여러 노드로부터 데이터를 읽고, 이 중 최신데이터를 결정2. 클라이언트-서버 스타일 아키..
cozyong_dev
'Data/Data PipeLine' 카테고리의 글 목록