본문 바로가기
반응형

Airflow17

[Airflow] Airflow Connection with Google Secret Manager | LIM 현재 회사에서 Airflow를 Google Composer(composer v1)로 사용하고 있다. 하지만 Cloud Composer내에 Version Upgrade가 아직 Beta version이라 완벽하게 진행되지 않고 롤백된 경험이 있다..😔 이때 새로운 환경을 만들어서 기존 환경에 있던 Connection들을 수동으로 모두 다시 기입했었는데 이러한 사태를 막고자 개인 로컬에 Connection 정보를 저장해두고 새로운 환경으로 이관할 때마다 API를 통해 이관하기로 했다. 그러나 알다시피 개인 로컬에 계정 정보를 저장한다는게 사실 안전하지 않기도 하고 누군가가 추가할때마다 로컬에서 정확하게 관리가 되어야 하기 때문에 관리적인 측면에서도 비효율적이었다. 어떻게 할까 찾아보던 와중 Google에 Se.. 2022. 6. 16.
[Airflow] CustomOperator 생성 | LIM 회사에서 task를 생성할 때 task가 단순 request만 요청하는 작업이 많아졌고 기존에는 requests.get()하고 return값을 처리하는 함수를 따로 만들었는데 이 함수가 간단하게 operator로 생성되면 좋을 것 같아서 CustomOperator 생성하는 방법을 찾아보게 되었다. airflow 공식 document와 BaseOperator, PythonOperator를 참조해서 만들었다. ✅ airflow 공식 document https://airflow.apache.org/docs/apache-airflow/2.2.3/howto/custom-operator.html airflow를 사용하면서 느끼는 거지만 공식 document 설명이 좀 불친절한 것 같다. 특히 원래 CustomDec.. 2022. 6. 12.
Mac Airflow local 설치 📌 로컬 환경에서 Airflow 설치하기 1) 일단 airflow 설치할 가상환경을 세팅해준다. 나같은 경우 python venv 가상환경으로 생성했다. $ python3 -m venv ~/{directory_name}/{myenv} 2) airflow의 홈 디렉토리 디폴트값은 ~/airflow이다. 따라서 airflow를 다른 디렉토리 안에서 실행시키고 싶으면 환경변수를 세팅해주어야 한다. $ export airflow=~/{directory_name}/airflow 나같은 경우 airflow_test 라는 디렉토리 하위에서 airflow 를 실행시켰다. 3) 가상환경 활성화 $ source {myenv}/bin/activate 4) airflow 설치 (공식 document: https://airfl.. 2022. 5. 14.
[Airflow] Datetime (feat. 자동실행 방지) 📌 Airflow 실행날짜 실행 날짜는 batch job 의 특성을 가진 Airflow에서 매우 중요하다. Airflow에서 start_date 는 실행 시작 날짜가 아니라 스케줄이 시작되는 날짜라는 것을 기억해야한다. 예를 들어서 오늘 날짜가 datetime(2022, 5, 14) 이다. 하지만 Airflow에 start_date를 (2022, 1, 1) 로 적게되면 1월 1일 부터 5월 13일까지의 job이 생기게 된다. 이처럼 Airflow에서 start_date는 실행 시작이 아닌 스케줄에 올라가는 날짜라는 것을 기억하자 📌 catchup 위와 같이 과거 날짜로 start_date 를 설정하면 Airflow는 과거의 Task를 차례대로 실행하는 Backfill을 실행하게 된다. 하지만 보통 이런 .. 2022. 5. 14.
[Airflow] Airflow 기본 개념 📌 Airflow란? Python 코드로 워크플로우(workflow)를 작성하고, 스케쥴링, 모니터링 하는 하나의 플랫폼이다.. Airflow를 통해서 데이터엔지니어링의 ETL(Extract, Transform, Load) 작업을 자동화하고, DAG(Directed Acyclic Graph)의 형태의 워크플로우 작성이 가능하다. 이를 통해 더 정교한 dependcy를 가진 파이프라인을 설정할 수 있게 된다. 간략하게 Airflow가 무엇인지 살펴보았고, Airflow를 구성하고 있는 구성요소들에 대해 알아보도록 한다. Scheduler - 모든 DAG와 Task에 대하여 모니터링 및 관리하고 실행해야 할 Task를 스케줄로 관리(각 task id는 고유하다) DAG - Directed Acyclic Gr.. 2021. 8. 14.
반응형