본문 바로가기

Airflow6

[Apache Airflow 기반의 데이터 파이프라인] 커스텀 컴포넌트 빌드 커스텀 컴포넌트 빌드 커스텀 훅 빌드하기 커스텀 오퍼레이터 빌드하기 커스텀 센서 빌드하기 컴포넌트 패키징하기 커스텀 컴포넌트 빌드 Airflow의 강점 중 하나는 여러 유형의 시스템들 간의 작업을 조율할 때 쉽게 확장할 수 있다. (SageMaker 기반 머신러닝 모델 학습, ECSOpserator 사용해서 ECS기반 작업가능) 그러나, Airflow가 지원하지 않는 시스템에서 태스크 실행해야 할 수 있다. 또한 태스크 중 PythonOperator를 사용하여 구현할 수 있지만 수많은 단순 반복적인 코드가 필요하여, 여러 DAG에서 사용하기 힘든경우가 발생한다. 이 때문에 Airflow 에서 특정 시스템에서 작업이 실행되어야 할 때, 이를 위한 오퍼레이터를 개발하여 빌드해 왔었다. Airflow에서 커스.. 2024. 2. 21.
[Apache Airflow 기반의 데이터 파이프라인] Airflow 콘텍스트를 사용하여 태스크 템플릿 작성하기 개요 PythonOperator 템플릿 키워드 인자를 받아들이는 또다른 방법 : 명시적으로 변수를 알려주기 PythonOperator에 변수제공 :두가지 이상의 데이터 소스에서 데이터를 다운로드 다른 시스템과 연결하기 개요 어떤 종류의 데이터로 작업을 하든지, 파이프라인을 구축하기 전에 접근 방식에 대한 기술적 계획을 세우는 것이 중요하다. 솔루션은 항상 다른 사용자가 데이터로 무엇을 하려는지에 따라 달라지므로, 질문에 대한 답을 알고 나면 기술적 세부 사항에 대한 문제를 해결할 수 있다. jinja 탬플릿 {{이중 중괄호}}을 통해 런타임 시 삽입 될 변수를 나타내서 사용할 수 있다. print("Hello {{ name }}!") 런타임 시 값을 입력하기 때문에 프로그래밍 할 때에는 값을 알 수 없다.. 2024. 2. 17.
[데이터엔지니어] 실리콘 밸리에서 날아온 엔지니어링 스타터 키트 Week7 7주차 주요내용 Airflow Configuration for Production Usage Slack 연동하기 구글 시트 연동하기: 시트 => Redshift 테이블 API & Airflow 모니터링 Dag Dependencies Airflow Configuration for Production Usage 제일 중요한 파일은 airflow.cfg (/var/lib/airflow or /opt/airflow/) Any changes here will be reflected when you restart the webserver and scheduler core 섹션의 dags_folder가 DAG들이 있는 디렉토리가 되어야한다. /var/lib/airflow/dags dag_dir_list_interva.. 2023. 10. 12.
[데이터엔지니어] 실리콘 밸리에서 날아온 엔지니어링 스타터 키트 Week6 6주차 주요내용 OLTP 테이블 복사하기 Backfill 실행하기 Summary 테이블 만들기 (ELT) MySQL(OLTP) 테이블 복사하기 서비스 운영을 위한 데이터를 MySQL에 적재해놓는다. OLTP(Online Transaction Process) : 서비스를 운영하는데 필요한 최소한의 정보등록 → OLAP(Online Analytical Process) : 데이터 분석과 데이터 프로세싱을 위한 DB구축 MySQL .nps 데이터를 Redshift nps 데이터에 적재하는 두가지 방법 MySQL에서 레코드 하나씩 읽어온 다음에 INSERT 로 루프돌면서 적재시키기 upsert가 지원이 되지 않고 INSERT/UPDATE 과정을 두번 거쳐야하기 때문에 오래걸림 COPY를 통해 UPSERT를 구현 .. 2023. 10. 11.
[데이터엔지니어] 실리콘 밸리에서 날아온 엔지니어링 스타터 키트 Week5 5주차 주요내용 airflow.cfg 파해치기 Open Weathermap DAG 구현하기 Primary Key Uniqueness 보장하기 Backfill과 Airflow airflow.cfg 파해지기 1. DAGs 폴더는 어디에 지정되는가? core 섹션의 dags_folder 키 - 도커 sh 로 들어가는 과정 /opt/airflow/dags : dags파일이 있을거라고 생각함 2. DAGs 폴더에 스캔 주기를 정해주는 키의 이름이 무엇인가? core 섹션의 dags_dir_list_interval 키 (default = 300s), 최대 5분을 기다리는것이다. 3. API 형태로 외부에서 조작하고 싶다면? 어떤 섹션을 변경해야 하는가? api 섹션의 auth_backend를 airflow.api... 2023. 10. 10.
[데이터엔지니어] 실리콘 밸리에서 날아온 엔지니어링 스타터 키트 Week3 3주차 주요내용 1. 데이터 파이프라인? 2. Airflow 소개 및 구성 3. 데이터 파이프라인을 만들 때 고려할 점 4. Backfill이란? 데이터 파이프라인이란? 데이터 엔지니어링에서의 Data Pipeline은 전체적인 ETL 프로세스를 의미한다. ETL (Extract, Trasform, Load): 데이터 시스템 밖에 있는 데이터를 가져오는 방법에 대한 이야기이다. (Data Pipeline = ETL = Data Workflow = DAG(Directed Acyclic graph)) → 이걸 하는게 데이터 엔지니어의 역량이다. ELT : 데이터 시스템 내부에 이미 들어와 있는 데이터를 조합해서 깨끗한 데이터를 만드는 과정 (T라고도 함) → CTAS를 서비스로 만드는게 dbt이다. 데이터 .. 2023. 9. 5.
반응형