Dag 11

[Airflow] Email Operator로 메일 전송하기

1. Email 오퍼레이터란? 이메일을 전송해주는 오퍼레이터로서 아래와 같은 형태를 가집니다. email_t1 = EmailOperator( task_id = "email_t1", to = "hockey9322@naver.com", subject = " Airflow 처리결과", html_content = "이메일 내용입니다! " ) 여기서 to 는 누구에게 메일을 보낼것인지 정하는 란이고, subject는 메일제목을 뜻하며, 메일 내용은 html_content에 적으면 됩니다. 이메일 전송을 위해선 사전 작업 세팅이 필요한데요, 해당 작업은 구글 메일 서버를 사용하도록 하겠습니다. 2. 사전 작업 설정(Google) Gmail --> 설정 --> 모든 설정 보기 --> 전달 및 POP/IMAP --> ..

[Airflow] Cron 스케줄 이해하기

Cron 스케쥴은 task가 실행되어야 하는 시간(주기)를 정하기 위한 5개의 필드로 구성된 문자열입니다. {분} {시} {일} {월} {요일} 순으로 구성되어 있는데요, 각각의 필드는 기본적으로는 숫자를 넣어주게 됩니다. 그럼, 구체적인 표를 한 번 살펴봅시다. Cron 표현식 ● * : 모든 값을 뜻합니다. ● ? : 특정한 값이 없음을 뜻합니다. ● - : 범위를 뜻합니다. (예) 월요일에서 수요일까지는 MON-WED로 표현 ● , : 특별한 값일 때만 동작 (예) 월,수,금 MON,WED,FRI ● / : 증가값 지정 (시작시간 / 단위) (예) 0분부터 매 5분 0/5 ( , 와 - 는 분,시,일,월,요일 어디에나 올 수 있습니다) ● L : (일, 요일에서만 설정 가능) ※ 일에 L입력시, 해..

[Airflow] Dag 생성(bash operator), Task의 수행주체

Airflow에서는 workflow가 곧 DAG 인데, DAG에는 오퍼레이터와 task 라는 것이 있습니다. Operator는 특정 행위를 할 수 있는 기능을 모아 놓은 클래스, 즉 설계도라고 할 수 있고, Task는 오퍼레이터에서 객체화(인스턴스화)되어 DAG에서 실행 가능한 오브젝트라고 할 수 있습니다. 즉, DAG에서는 오퍼레이터가 직접 도는 것이 아니라, 오퍼레이터를 통해서 만들어진 task들이 실행되는 것입니다. 여기서 오퍼레이터의 종류로는 리눅스의 쉘 명령을 수행할 수 있게끔 해주는 bash 오퍼레이터가 있고, python 함수들을 실행시켜주는 python 오퍼레이터, 아마존 aws S3 솔루션을 컨트롤 할 수 있게끔 해주는 S3오퍼레이터, 구글 클라우드 GCS 를 다룰 수 있는 오퍼레이터인 ..

[Airflow] Docker를 통한 Airflow 설치

도커를 이용해서 airflow를 설치해보기 전에, 도커에 대해 간략하게 살펴보고 갑시다. 도커가 있기 전에는 가상화서버(Virtual Machine)라는 것을 많이 이용했습니다. 가상화 서버에는 'Hyper Visior' 라는 것이 있는데, Hyper Visor는 물리적인 서버 위에 설치되어 있는 OS가 아닌 그 OS위에 가상화 VM들을 올리고 관리할 수 있도록 해줍니다. 가상화 VM들을 여러개 세팅하고 나면, 이 가상화 VM들은 서로간에 영향을 주지않고 완전히 독립적인 환경에서 구동될 수 있는 장점이 있었습니다. 하지만, 단점이 분명 존재하는데, 바로 '오버헤드'입니다. CPU나 메모리, 디스크 같은 공간을 가상화 서버에다가 명시적으로 할당을 해줘야하기 때문에, 그만큼 호스트 OS가 사용할 수 있는 가..

반응형