일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- HADOOP
- 정리
- 데이터베이스
- S3
- 데이터엔지니어링
- TCP
- 데이터 파이프라인
- AWS
- 가상환경
- Docker
- http
- linux
- PYTHON
- Go
- 데브코스
- 컴퓨터네트워크
- 컴퓨터 네트워크
- 파이썬
- TIL
- 종류
- airflow
- redshift
- dockerfile
- 데이터 웨어하우스
- 데이터 엔지니어링
- 운영체제
- sql
- 자료구조
- airflow.cfg
- Django
- Today
- Total
목록Data Engineering/Airflow (18)
홍카나의 공부방
쉘 스크립트는 Unix/Linux Shell 명령을 이용하여 만들어지고, 인터프리터에 의해 한 줄씩 처리되는 파일이다. 주로 파일 이름에 .sh 확장자를 붙인다. Airflow의 Bash Operator 안에다가 shell 명령어를 입력하면 동작하게 된다. 쉘 명령어는 복잡한 로직을 처리하는 경우에 사용한다. Worker 컨테이너가 쉘 스크립트를 수행하려면, 쉘 파일을 인식하게 만들어야 한다. 그러나 Docker의 특성상 컨테이너는 외부의 파일을 인식할 수 없다. 그리고 컨테이너 안에 파일을 만들어줘도 컨테이너 재시작시 파일이 사라진다. 이에 대한 해결 방법은 /plugins:/opt/airflow/plugins 폴더에 쉘 파일을 넣어두는 것이다. .yaml 파일에는 기본적으로 Docker Volume을..
에어플로우에서 크론 스케쥴은 Task가 실행되는 시간,주기를 정하기 위한 5개의 문자열 필드를 나타낸다. {분} {시} {일} {월} {요일}로 표현하며 예시는 다음과 같다. Examples) 30 5 * * * : 매일 05시 30분 0 * * * * : 매시 정각 1 * * * * : 매시 1분 0 0 10 * * : 매월 10일 0시 0분 30 9 * * 0 : 매주 일요일 09시 30분 */5 * * * * : 5분마다 (0분, 5분…) ( / 특수 문자는 증가값 지정을 의미) 5 9 * * 1-5 : 월요일부터 금요일까지 09시 5분에 배치 0 9-15/1 * * * : 09시부터 15시까지 1시간 마다 30 23 L * * : 매월 마지막 일 23시 30분에 배치 0 9 * * 3#4 : 매월..
Operator(오퍼레이터) - 특정 행위를 할 수 있는 기능을 모아 놓은 클래스, 설계도 - Bash 오퍼레이터는 쉘 스크립트 명령을 수행하는 오퍼레이터 - Python, S3, GCS는 각각 파이썬, AWS S3, GCP의 GCS를 컨트롤 할 수 있게 만들어주는 오퍼레이터 Task(태스크) - 오퍼레이터에서 객체화(인스턴스화)되어 DAG에서 실행 가능한 오브젝트 - Task는 방향성을 가지고 있고, 순환되지 않는 형태로 연결되어 있음(비순환 그래프의 특징) Scheduler(스케쥴러) - DAG 파일을 파싱하고 메타 DB에 정보를 저장하는 역할을 한다. - start time을 확인하고 워커에게 실제 작업을 수행하라는 명령을 내린다. Worker(워커) - DAG 코드를 읽어 들인 후, 실제 작업을 ..
리눅스에서 파이썬 Airflow 라이브러리를 설치하면 Airflow를 사용할 수 있다. 그런데 WSL에서 pip install 명령으로 Airflow를 설치하지 않고, Docker를 사용하는 이유는 1. pip install로 airflow를 설치하면 저사양의 아키텍쳐로 설치가 된다. 실사용에 여러 제약이 생긴다. 2. Task를 한 번에 1개씩만 실행하거나, MetaDB를 제약이 많은 SQLlite로 사용하게 된다. 그래서 Docker로 설치해서 쓰는 경우가 대부분이다.