본문 바로가기
728x90

airflow28

[Airflow] TO-BE Batch job 프로세스 개선 - 2) 거버넌스, 표준, 형상 관리, 자동화, 프로세스 단축 포스트는 총 3개로 나뉘어 진행되며, 이번 포스트가 2번째 포스트입니다.1. [Airflow] TO-BE Batch job 프로세스 개선 - 1) Airflow on k8s 이전 (AWS EKS)https://spidyweb.tistory.com/543 2. [Airflow] TO-BE Batch job 프로세스 개선 - 2) 거버넌스, 표준, 형상 관리, 자동화, 프로세스 단축https://spidyweb.tistory.com/544 3. [Airflow] TO-BE Batch job 프로세스 개선 - 3) DAG 이전 및 이슈 정리https://spidyweb.tistory.com/5451. 표준과 자동화기존의 Airflow DAGs는 다양한 사용자로부터 다양한 코드 포멧과 스타일에 따라 python.. 2024. 6. 22.
[Airflow] TO-BE Batch job 프로세스 개선 - 1) Airflow on k8s 이전(AWS EKS) 이번 포스트에는 NCP 플랫폼에서 새로 구축해본 airflow on k8s 경험을 토대로 저희 주된 배치를 관리하는 AWS 플랫폼 위에서의 Airflow 이전 경험을 공유드리려고 합니다.기존에는 airflow 환경은 EC2한대에 올라가 있었고, IAC로 airflow가 관리되고 있지도 않았고, image에 대해서도 형상관리가 되지 않았습니다. 또한 서버에 대한 확장성이 모잘라서, SIGTERM 에러도 많이 발생 했었습니다.    포스트는 총 3개로 나뉘어 진행되며, 이번 포스트가 1번째 포스트입니다.1. [Airflow] TO-BE Batch job 프로세스 개선 - 1) Airflow on k8s 이전 (AWS EKS)https://spidyweb.tistory.com/543 2. [Airflow] T.. 2024. 6. 22.
[Airflow] Sensor 정리, ExternalTaskSensor 와 S3KeySensor 이번 포스트에는 Airflow에서 특정 작업 혹은 객체를 감지하는 Sensor, 그 중에서도 많이 쓰일 것으로 추정되는 S3KeySensor와 ExternalTaskSensor를 정리해보겠습니다. 1. Sensor란Airflow에서는 특정 상황이 발생할때까지 대기하는 Sensor Operator를 제공시간이 기준이 될 수도 있고 파일이나 외부 이벤트가 기준이 될수도 있음Sensor를 사용하면 이러한 상황이 발생할 때까지 기다렸다가 downstream task들이 진행되게 할 수 있음2. ExternalTaskSensor다른 DAG의 특정 작업이 끝나기를 체크했다가 다음 의존관계가 있는 task를 실행할 때 사용import pendulumfrom airflow import DAGfrom airflow.op.. 2024. 6. 22.
[Airflow] Prometheus & Grafana에서 확인 할 수 있는 Airflow metrics 정리 Airflow에서는 Statsd라는 컴포넌트를 통해 Airflow의 메트릭을 Prometheus로 보내고, Grafana에서 시각적으로 확인해 볼 수 있습니다.즉 Airflow에서 일어나는 일을 모니터링 할 수 있게 됩니다.Airflow의 Metric에는 어떤 것들이 있는지 공식 홈페이지를 통해 확인 해보겠습니다.그 중에서 유의깊게 봐야 할 metric에 대해서 빨간색으로 진하게(bold)처리 해두었으니, 필터링해서 보시면 될 것 같습니다.1. CountersCounters카운터는 단순히 증가하는 값을 나타내며, 일반적으로 주어진 간격 동안의 이벤트 횟수를 추적합니다.예를 들어, 요청이 서버로 들어오는 횟수나 오류가 발생한 횟수 등을 계산할 수 있습니다.카운터는 보통 리셋되지 않고 지속적으로 증가합니다... 2024. 5. 18.
[Airflow] SLA(Service Layer Agreement) 서비스 수준 계약 정리 Airflow에서는 실패 시 함수를 호출하는 on_failure_callback 외에도 서비스 수준 계약 개념을 적용할 수 있습니다.관련해서 SLA와 어떻게 적용하는 지 확인 해보겠습니다.1. SLA란?서비스 제공자와 고객 간에 합의된 서비스 수준을 정의하는 계약SLA는 서비스의 성능, 가용성, 응답 시간, 처리 시간 등 다양한 측면에서 서비스의 품질을 측정하고 보장하기 위해 사용주요 요소서비스 설명: 제공되는 서비스의 세부 사항을 명확히 설명성능 기준: 서비스의 성능을 평가하기 위한 측정 기준을 설정예를 들어, 시스템의 가용성, 응답 시간, 문제 해결 시간 등이 포함될 수 있음가용성: 서비스가 사용자에게 제공되는 시간의 비율을 정의합니다. 예를 들어, 연간 99.9%의 가용성은 연간 약 8.76시간의 .. 2024. 5. 18.
[Airflow] 하나의 DAGs에서 다른 DAGs 파일 호출하기 (TriggerDagRunOperator, ExternalTaskSensor, SSHOperator) Airflow에서 DAGs를 호출하는 방법은 여러가지가 있습니다. 관련해서 정리 해보겠습니다.1. TriggerDagRunOperatorfrom airflow.operators.trigger_dagrun import TriggerDagRunOperatorfrom airflow.operators.dummy_operator import DummyOperatorfrom dateutil.relativedelta import relativedeltafrom datetime import datetime as dtfrom datetime import timedeltafrom datetime import datetimeimport timeimport pendulumfrom airflow import DAGfrom ut.. 2024. 5. 18.
[Airflow] Metastore version, RDBMS 종류에 따른 차이 정리 최근에 Airflow Metastore에 있는 데이터 이관을 하면서 Metastore 이관 관점에서 Metastore에 관련된 테이블, 컬럼 정보들을 정리해봤습니다.1. Airflow version별 metastore의 구성 차이2.1.3(PostgreSQL)1) 테이블 수28개 테이블ab_permissionab_permission_viewab_permission_view_roleab_register_userab_userab_user_roleab_view_menualemberic_versionconnectiondagdag_codedag_pickledag_rundag_tagimport_errorjoblogrendered_task_instance_fieldssensor_instanceserialized_da.. 2024. 4. 27.
[Airflow] Trigger Rule을 통해 반드시 실행 시켜야 할 Task 다루기 이번 포스트에는 Daily Batch 중에 비용절감을 위해 수정한 사항에 대해 정리해보겠습니다. 1. 수정이 필요한 이유 Daily Batch 실패 난 건 중에, ML server(GPU 장비 탑재된 EC2)에서 script가 돌아가는 job이 있었습니다. EC2가 켜지는 Task는 성공했지만, script task 단계에서 에러가 났었고, EC2는 stop되지 않았습니다. 물론 후속작업들도 전부 upstream_failed에 의해 failed처리 되었습니다. GPU 장비가 붙은 EC2는 비용이 어마어마하게 많이 나오기 때문에, 몇 시간만 켜져 있더라도 무시 하지 못할 비용이 나오게 됩니다. 따라서 script가 실패하더라도, 반드시 stop되게 DAG를 구성하는 것이 필요했습니다. 2. 기존 코드 기존.. 2024. 2. 26.
[Airflow] Airflow로 ETL 파이프라인 V2 만들기 (Variables + TaskGroup을 활용한 Task Factory 구현) 이번 포스트에는 저번에 작성했었던 각 작업들을 통합하여 만든 DAG인 ETL 파이프라인 구축하기 V1에서 중복된 태스크는 줄이고, 병렬실행을 도입시켰으며, task를 정의한 Variables 변수에 따라 Dynamic하게 갯수와 이름이 변하게 되게 끔 구성하였습니다. 저번에 작성한 포스트를 보고 싶으시다면 아래의 링크를 확인해주세요. https://spidyweb.tistory.com/506 [Airflow] Airflow로 ETL 파이프라인 만들기(python, EMR, glue crawler, Email, Slack, DB반영) 이번 포스트에는 회사에서 수동으로 처리하고 있던 일회성 ETL작업을 Airflow DAG으로 묶어서 파이프라인을 만든 경험에대해서 소개해드리겠습니다. 기존 업무 처리방식과 A.. 2024. 2. 9.
728x90