데이터 공부/Apache Airflow 11

Airflow XCOM 알아보기

안녕하세요 한소희입니다. 공부를 통해 배운 내용을 작성하고 있습니다. 혹여 해당 포스팅에서 잘못된 부분이 있을 경우, 알려주시면 빠르게 수정 조치하도록 하겠습니다. 01. Airflow XCOM이란? XCOM 은, cross communcation 의 약자로 하나의 DAG 내 task간 데이터를 주고 받고 싶을 때 사용하는 Airflow 기능이다. 이는 적은 양의 데이터에 대해서만 주고받을 때 유용하며, 데이터 프레임과 같은 큰 값을 전달하는 데에 사용하는 것은 적합하지 않다는 특징이 있다. 02. Variable과 XCOM Variable과 XCOM 은 공통점과 차이점이 존재한다. Variable XCOM 공통점 key - value 형식 구성 차이점 전역적 DAG 내에서만 통신 key-value의 형..

Airflow를 helm으로 배포해보기 - (2)

** Airflow 관련 업데이트 소식 지난 4월 1일, Airflow에서 2.5.3 버전을 release 했다. 중요한 변화는 없었지만, 크고 작은 버그들이 개선됐다고 한다. 참고문서: Airflow Release Notes https://airflow.apache.org/docs/apache-airflow/stable/release_notes.html#airflow-2-5-3-2023-04-01 Release Notes — Airflow Documentation airflow.apache.org 지난 포스팅에 이어서, GKE 환경의 Airflow를 처음부터 배포해 보도록 하겠다. 01. DB 생성 Airflow 를 처리하기 위해서는 postgreSQL 서버가 필요하다. 간단한 테스트 용 postgre..

Airflow를 helm으로 배포해보기 - (1) 사이드카 패턴

오늘 포스팅에서는, 직접적인 helm 배포를 진행하기 전, 알아둬야 할 개념 중 하나인 사이드카 패턴에 대해 다뤄보고자 한다. 01. 사이드카 패턴이란 사이드카 패턴이란, 어플리케이션 컨테이너와 독립적으로 동작하는 별도의 컨테이너를 붙이는 패턴을 말한다. 사이드카를 형상화(?) 하면 이렇다. 이처럼, 메인 오토바이에 사이드카를 붙인 형태와 같은 패턴이 사이드카다. 이렇게 오토바이에 사이드카를 붙여 달릴 수도 있고 사이드카를 떼어서도 달릴 수 있는 형태처럼, 기본 컨테이너와 함께 하나의 컨테이너가 함께 실행될 수 있는 컨테이너 패턴을 짜는 것이 사이드카 패턴이다. 즉 pod 안에 두 개의 컨테이너가 띄워져 있는 형국인데, 이때 pod안의 컨테이너들은 동일한 volumn과 연결이 가능하다. 또한, 하나의 p..

Airflow Helm 배포 - 설치하기

공부를 통해 배운 내용을 작성하고 있습니다. 혹여 해당 포스팅에서 잘못된 부분이 있을 경우, 알려주시면 빠르게 수정 조치하도록 하겠습니다. 이전 포스팅을 통해 Helm 에 대해서 알아보았다면, 이제 직접 실습을 해 보겠다. (이전 포스팅 링크: https://eng-sohee.tistory.com/161) Airflow Helm 배포 - Helm 과 Chart 를 알아보기 Kubernetes 환경에서 Airflow를 운영할 때, 일반적으로 Helm 차트를 이용하여 배포 및 운영을 한다. 이유는, Airflow 에서 제공하는 공식 Helm 차트를 제공하기 때문이며, 이를 통해 특정 클라우드 제공 업 eng-sohee.tistory.com 목차 1. Helm 설치 2. Helm 레포지토리 추가 3. valu..

Airflow Helm 배포 - Helm 과 Chart 를 알아보기

공부를 통해 배운 내용을 작성하고 있습니다. 혹여 해당 포스팅에서 잘못된 부분이 있을 경우, 알려주시면 빠르게 수정 조치하도록 하겠습니다. Kubernetes 환경에서 Airflow를 운영할 때, 일반적으로 Helm 차트를 이용하여 배포 및 운영을 한다. 이유는, Airflow 에서 제공하는 공식 Helm 차트를 제공하기 때문이며, 이를 통해 특정 클라우드 제공 업체에 얽매이지 않고 Airflow를 운영할 수 있다. Helm 의 장점 Helm 을 사용하면, 복잡한 쿠버네티스 기반의 애플리케이션을 쉽게 설치 가능하다. 설치뿐만 아니라, 업데이트도 간결하다. helm 차트로 하나로 묶여 있다 보니, 여러 리소스가 묶인 복잡한 소프트웨어를 동시에 관리하기 수월하여 관리가 쉽다. Helm의 단점 하지만 Helm..

Docker airflow2 커스텀 이미지 빌드 과정

앞서, 기존에 생성된 이미지만을 이용해서 airflow 를 빌드했었는데, 오늘은 airflow 이미지 자체를 직접 빌드해보도록 하겠다. 왜 직접 빌드해야 하는지에 대한 이유와 공식 문서 소개, 그리고 airflow2 image 빌드 과정을 포스팅하겠다. 목차 airflow2 커스텀 이미지 빌드의 필요성 airflow2 이미지 빌드 공식 문서 01. airflow2 커스텀 이미지 빌드의 필요성 여담이지만 회사 면접을 봤을 당시, airflow를 도커로 띄워서 작은 프로젝트를 운영해 본 경험이 있다고 말씀드렸다. 이때 사수님께서 이미지 빌드 과정에 대해서 상세히 여쭤보았던 기억이 나는데, 이때 나는 이미 빌드되어져 있는 이미지를 활용해서 운영했었다라고 대답했던 기억이 난다. 그래서, 기회가 된다면 이미지부터..

Apache Airflow 처음부터 빌드해보기 + 4

현재까지 진행한 내용을 정리하자면, 우리는 VM 안에 새로운 가상환경을 만들어 airflow를 설치했다. 앞으로 우리는 DAG 파일을 만들거고, 가장 먼저 sqlite 에서 데이터를 출력해와 테이블을 생성할 것이다. 이 작업을 함께 진행해보자. 01. DAG 생성 간단한 DAG를 생성해보겠다. Sqlite에 새로운 Table을 주기적으로 생성하는 task을 만들어 볼 것이다! 앞선 포스팅에서 생성한 dags 폴더 안에, dag명을 딴 py 파일을 생성한 뒤, 위와 같이 작성해준다. 설명은 아래와 같다. from airflow.models import DAG - DAG import from airflow.providers.sqlite.operators.sqlite import SqliteOperator -..

Apache Airflow 처음부터 빌드해보기+2

앞서 포스팅은 아래와 같다. https://eng-sohee.tistory.com/108 03. Apache Airflow 처음부터 빌드해보기 + 1 Airflow를 사용해본 경험은 꽤 되지만, 이는 누군가가 Docker로 사용하기 좋게 build해놓은 것을 썼기 때문에 온전히 내 것이라는 느낌이 들지 않았다. 따라서 이번 프로젝트를 진행하면서 Airflow를 처 eng-sohee.tistory.com 이제 이어서, airflow 를 본격적으로 실행하기에 앞서, 초기 사용 방법을 익혀보도록 하겠다. 01. Airflow 시작에 앞서 1-1. 앞서 생성한 가상환경 접속 source sandbox/bin/activate 1-2. airflow에서 사용 가능한 인터페이스 설명 목록 확인 이를 통해, airfl..

Apache Airflow 처음부터 빌드해보기 + 1

Airflow를 사용해본 경험은 꽤 되지만, 이는 누군가가 Docker로 사용하기 좋게 build해놓은 것을 썼기 때문에 온전히 내 것이라는 느낌이 들지 않았다. 따라서 이번 프로젝트를 진행하면서 Airflow를 처음부터 직접 설치하며 실행해보고 기초를 완전히 다져보고자 Udemy 수업을 수강하고 구글링을 하는 등 공부를 해보았다. 오늘은 지난 주 배운 내용을 온전히 내 것으로 만들기 위해 복습을 해보았다. 1. airflow란 무엇인가 https://eng-sohee.tistory.com/80 01. Airflow 개념 + Docker를 통한 Airflow 설치 01. Airflow란 무엇인가? Airflow는 에어비앤비에서 개발한 워크플로우 스케줄링 및 모니터링 플랫폼이다. 이는 동작 순서 및 방식과..

DAG 파일 생성 및 실행 + GCP(구글클라우드플랫폼) - Airflow 연동

목차 DAG 파일 생성 후 Airflow 실행 GCP(구글 클라우드 플랫폼) - Airflow 연동 01. DAG 파일 생성 후 Airflow 실행 우선적으로, docker를 연다. 이미 ※ 첫 번째 포스팅에서 컨테이너를 생성했으므로, 컨테이너를 새로 시작할 땐 시작(start)만 해주면 된다. ※ 첫 번째 포스팅 링크 docker start airflow_v1 Vim과 Procps를 설치해보자. 처음 받은 이미지에는, vi로 파일을 수정할 수 없다. 왜냐하면 위와 같은 파일이 설치가 되어있지 않기 때문이다. 또한 netstate로 네트워크 내역을 확인할 수 있도록 필요한 소프트웨어를 설치해준다. root로 접속해서 설치한다. docker exec -u root -ti airflow_v1 /bin/bas..