'데이터 엔지니어'로 성장하기

정리하는 걸 좋아하고, 남이 읽으면 더 좋아함

airflow 30

Airflow) S3CopyObjectOperator 이용해서 copy 하기

s3 부분에서 에러가 간혹 발생되서, 핵심 로직과 분리하기로 결정 근데 이거는 파일 하나만 가능함. 폴더는 어떡하지 요약 상황 결과 참고 설명 상황 as-is python 코드로 모든 로직을 처리 단점 코드가 복잡해지고 관리가 되지 않음 image안에 코드가 들어가면 어디서 에러가 나는지 알 수 없음 갑자기 모든 것을 바꿀 수 없겠지만, 하나씩 바꿔가기로 함 to-be s3 copy,delete를 aws.operators를 이용하기로함 이유 핵심 로직과 사이드카 같은 로직 분리(복사/이동/삭제) s3 operator는 많이 사용하기 때문에 버그가 적을거라고 생각 결과 from datetime import datetime from airflow.models import DAG from airflow.ope..

Data/Airflow 2022.06.02

Slipp) Airflow2.0스터디_워크플로 트러거_4주차(6장)

이번 챕터는 평소 궁금하던 sensor에 대해서 공부할 수 있어서 재미있었어요. + TriggerDagRunOperator의 경우 복잡해서 사용안하려고 했는데, s3 이동 같은 작업은 클래스처럼 정의해서 사용할 수 있다는 이야기를 들어서 유레카였어요 요약 센서 : 특정 조건을 센서에 만족하도록 대기하기 트리거 : 서로 다른 DAG의 태스크간 의존성 설정하기 CLI/API : REST API 를 통해 워크 플로 실행하기 마무리 설명 1. 센서 : 특정 조건을 센서에 만족하도록 대기하기 로그를 당겨오거나, 작업이 언제 끝날지 기다리거나, hive 테이블에 파티션이 있는지 확인하는 작업에 활용 할 수 있어요 Sensor 특정 조건이 참인지 여부를 지속적으로 확인(polling)하는 특수 유형 오퍼레이터 필요한..

Data/Airflow 2022.05.28

Slipp) Airflow2.0 스터디_3주차(4/5장)

질문 타임이 1시간이나 있었음 https://www.slipp.net/wiki/pages/viewpage.action?pageId=3276808650952 요약 1. 4장 : 태스크 콘텍스트와 Jinja 템플릿 작업 2. 5장 : 태스크 템플릿 + 의존성 정의 3. 마무리 설명 1. 4장 : 태스크 콘텍스트와 Jinja 템플릿 작업 스터디원 중에서 airflow 사용 경험이 없는 분이 발표를 진행했는데 가닥을 잡는데 도움이 되는 챕터였다는 이야기를 들었습니다 {{ds}}, 증분 등의 실습이 많아서 그런 것 같습니다 ㅎ execution_date은 오버라이딩 되나? kwargs로 오버라이딩하면 **context에 오버라이딩 됨 https://mightytedkim.tistory.com/112 paramet..

Data/Airflow 2022.05.15

Airflow) context, kwargs 혼용 실습

airflow 공부하다가 궁금한게 잇어서, 하나씩 돌려봄 ㅎㅎ 요약 task Context 공부하다가 의문이 생김 테스트 **context, **kwargs 로 두개를 파라미터로 두면 어떻게 될까? execution_date를 변수로 명시하면 사용할 수 있다는데, **context 에서는 그럼 빠지는건가? execution_date 오버라이딩가능할까? 설명 1. task Context 공부하다가 의문이 생김 - execution_date를 변수로 명시하면 사용할 수 있다는데, **context 에서는 그럼 빠지는건가? - **context, **kwargs 로 두개를 파라미터로 두면 어떻게 될까? - execution_date 오버라이딩가능할까? 아래는 테스트할 때 사용할 기본 틀 from airflow..

Data/Airflow 2022.05.09

Airflow) 2.0부터는 scheduler 는 replica 여러개 설정 추천

2.0에서 큰 변화 중 하나는 scheudler의 확장성과 자원 여유로 여러개 띄울 수 있어요! 요약 1. airflow scheduler 가 다시 올라오지 않음 2. 재시작하면 정상 작동됨 3. 원인을 찾아야함 설명 1. airflow scheduler 가 다시 올라오지 않음 $k get all -n airflow | grep pod NAME READY STATUS RESTARTS AGE pod/airflow-postgresql-0 1/1 Running 1 (69d ago) 108d pod/airflow-scheduler-88588ff5c-cgpfk 0/3 PodInitializing 3 (6d19h ago) 10d pod/airflow-statsd-5df44cb959-h64bn 1/1 Running ..

Data/Airflow 2022.04.28

Slipp) Airflow2.0 스터디_2주차(3장) Airflow의 스케줄링

링크 : https://www.slipp.net/wiki/pages/viewpage.action?pageId=3276808650825 2주차 - (3장)airflow의 스케줄링 - SLS - SLiPP::위키 페이지 … Home 22차 SLiPP 스터디 Airflow 2.0 배너의 맨 끝으로 배너의 맨 처음으로 2주차 - (3장)airflow의 스케줄링 메타 데이터의 끝으로 건너뛰기 김학건님이 작성, 2022년 04월 26일에 최종 변경 메타 www.slipp.net 2번째 스터디가 시작했는데, 발표자 분이 피피티를 준비해오셨어요. 3장은 간단하지만 중요한 멱등성, 원자성의 개념이 있었고 각자 회사에서 이 원칙이 잘 지켜지는지 이야기하는 시간을 가졌습니다. 요약 1. 3장 발표 2. 3장 내용 관련 썰 ..

Data/Airflow 2022.04.28

Slipp) Airflow2.0 스터디_1주차(사용 경험썰풀기)

airflow2.0을 살펴보는 스터디 시작 2달간 책의 필요한 부분을 빠르게 훑어보는 것이 목표! 스터디명 : 'Airflow 2.0 익숙해지고 상황별 사례 공유하기' 책 :Apcache Airflow 기반의 데이터 파이프라인 (에어플로 중심의 워크폴로 구축에서 커스텀 텀포넌트 개발 및 배포,관리까지) 목표: 책 완독하기! 얼마전 한글 번역본이 나와서 책을 구매했는데 내용이 괜찮았어요 그런제 혼자서는 끝까지 보지 않을 것 같아서 스터디원들을 모았어요. 마침 slipp도 스터디 주제 제안 기간이고, 우아한 스터디와 콜라보도 진행하길래 질렀죠.ㅎㅎ https://puffy-stick-fa1.notion.site/SLiPP-X-Airflow-2-0-c86f6713faff446da4d30bd420dc02fe M..

Data/Airflow 2022.04.19

Airflow) Ec2에 docker-compose 로 올리기

airflow 스터디 환경 구현 최소 4g ram 필요해서 8g t2.large로 ec2 생성 docker, docker-compose 설치 docker install 4 sudo yum -y upgrade 5 sudo yum -y install docker 7 sudo service docker start 9 sudo usermod -aG docker ec2-user 22 exit docker-compose install 26 sudo curl -L https://github.com/docker/compose/releases/download/1.25.0-rc2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose 27 sudo ch..

Data/Airflow 2022.04.16

Airflow) Pool 활용해서 dag 겹침 이슈 해결

평화로운 어느날 sparkKubernetesOperator가 미쳐 날뛰기 시작했다. 분명 10분정도면 끝나는 spark job인데, 30분이 넘게 걸려서 뒤의 작업과 겹쳐버렸다. (내 잘못ㅜ) grafana 보니까, spark-driver가 여러개 띄어져 있고 executor는 더 난리. 혹시 몰라 grafana에 대시보드 spark 용으로 만들어둬서 다행 spark thrift server ui를 보니까, 0.1초면 끝나는 작업이 hang 걸려있고 난리도 난리가 아니었다. schedule_interval="0 4 * * * " -> 10분이면 끝나는 작업 schedule_interval="30 4 * * * " -> 30분 넘게 걸려서 다른 작업과 겹침 줄줄이 비엔나로 겹침 쨋든 문제는 발견해서 다행 ..

Data/Airflow 2022.03.15

udemy)Airflow Operators Guide_5,6,7장 :: mightytedkim

3/1절 연휴동안 다 들을라했는데, 웹툰보고 놀다가 못함 ㅜㅜ 이번주 평일에 시간을 내야겠음 Section 5: DAG dependencies | 1hr 7min 45. Introduction 1min 1. 파트너A/B/C에게서 데이터를 받는데, 각 파트너마다 dag가 있다고 치자 2. 다 완료되면, 특정 공통된 task를 실행한다. 46. SubDagOperator 11min 복잡한 dag가 있는데, 특정 로직을 공유한다고 치자. 이 때 그룹핑할 수 있고, 시각적으로 명확하게 하는 역할을 한다. 장단점이 있음. 1. 시각화하려고 새로운 dag를 만들어야함 2. 새로운 dag를 또 후출해야하는 불편함이 있음 default_args는 똑같아야함. 부모/자식 간의 설정 dag_id도 명확하게 규정되야함. w..

Data/Airflow 2022.03.01