Airflow 구성
Airflow 기초 용어
- 워크플로우 - 연결된 작업집합
- DAG - 작업 파이프라인
- Task - DAG의 세부 작업
서버의 종류
- 웹서버와 스케줄러서버
기타 용어
- Metastore 파이프라인 정보를 기록하는 곳
- Executor: 작업반장
- Worker: 일꾼
- Operator: 기계
Airflow 메뉴들
- DAGs: 작업들을 모아 놓음
Dags_ex) example_branch_datetime_operator
UI
- Schedule: @daily 반복 주기
- 좌측에는 실시간 정보가 나옴. 중앙에는 정보의 상세 값
- 토글_Auto-refresh: 진행상태를 실시간 업데이트
Airflow DAG 만들어보기
Airflow관련, 터미널 명령어
0. db 생성: airflow db init
계정 추가: airflow users create -u alpacoms -p 1234 -f paco -l al -r Admin -e admin@admin.com
1. 재실행시 (.pid 파일을 삭제)
2. Airflow 서버 실행 (새 터미널)
airflow webserver -p 8080
lsof -i :8080
kill -9 [제거할id]
3. 비서 (새 터미널)
airflow scheduler
4. 실패 로그 제거
홈페이지: Browse > DAG Runs
전체 과정
1. sql 테이블
2. 크롤링 준비
3. 크롤링
4. 전처리
5. 저장
6. dag완료 알리기
0. 준비과정
- 네이버 크롤링 API키 코드에 삽입
- naver_search_pipline.py 코드 작성 및 저장
- Airflow dag에서 'naver'검색 (naver_search_pipline 로 접속)
width DAG(
setting들 나열하는 곳
) as dag:
작업 내용.
1. sql 테이블
- 테이블 생성 코드 작성
- naver_search_pipline > Graph 탭에 코드 인식된 것 확인
- Admin > Connection
- sqlite3 (뷰용) 설치, 코드로 db가 생성되었는지 확인.
2. 크롤링 준비 (체크)
- http 커넥션 생성하기
- dag 안에 코드 넣기
- dag 안에 넣은 코드만 실행해 보기 ('task-id')
airflow tasks test naver-search-pipeline is_api_available
- response_check 는 리턴이다.
3. 크롤링
- 네이버 검색 결과를 가져올 오퍼레이터를 만든다.
- 검색 결과 전처리하고 csv 저장
- csv 파일로 저장된 것을 테이블에 지정
4. 각 함수들을 연결
creating_table >> is_api_available >> crawl_naver >> preprocess_result >> store_result >> print_complete