728x90

Big Data , ML/ETL, ELT 4

Airflow에서 겪은 장애 이슈

Airflow 에서 해당 스케쥴을 바탕으로 실행이 되도록 설계를 해놨다. 하지만 2021년 12월 말에 큰 문제가 발생했다. 위 사진이 정상 실행일때 캘린더 뷰 이고, 아래 사진은 정상적인 실행이 되지 않았을 때의 캘린더 뷰이다. 이슈사항 : 한가지의 DAG 만 스케쥴에 맞춰 실행되는 것이 아닌 모든 DAG의 실행이 되고있지 않는다. 문제 인지 Airflow에서 default queue의 개수를 소지하고있었다. 16개로 알고있다. 어떤 한 쪽에서 API를 호출하는 코드였는데, API가 호출하는데 시간이 많이 지연되고있었다. API call 이 1분단위로 이루어지면서 호출하는데 로딩시간으로 1분이 넘어가 계속 queue가 쌓이게되었다. 해당 DAG가 모든 queue를 소지하고 있어서 다른 dag에는 할당이..

Airflow dag 인자 받기와 병렬처리법

Airflow 에서 실행하는 task에 인자를 받는 함수가 있을 경우에 해당 방법을 사용하면 된다. def call_api(category, **kwargs): import json import req import requests url = f'http://test/{category}' category 값을 넘겨받아 사용하고싶은 경우 call_api_task1 = PythonOperator( task_id = 'call_api_task1', python_callable = call_api, op_kwargs = {'category': '카테고리 값'}, dag = dag ) 병렬 처리로 수행을 하고 싶은 경우 하단 처리 pipeline에서 [] 로 묶어서 실행하면 병렬처리가 가능하다. start_task..

Airflow정의와 설치 과정

에어플로우는 워크플로우 관리 플랫폼이며, 2014년에, 숙박 공유 서비스인 Airbnb에서 회사가 성장하면서, 점점 복잡해지는 워크플로우를 관리하기 위해서 개발되었다. 그 후에 지금까지 발전되어 많은 회사에서 사용되고 있고, 지금은 Apache 재단에서 최상위 프로젝트로 관리되고있다. 1. 워크플로우 순서가 있는 과정을 의미한다. ex ) 로그를 활용하기 위해 로그의 전처리, 가공 및 분석을 진행하고 처리한 결과를 확인하는 그 모든 과정들을 워크플로우라고 한다. 사용성 측면에서 루이지는 복잡한 API를 가지고 있어서 잘 알고 있으면 에어플로우보다 좀 더 유연하게 사용할 수 있지만 cron을 사용하기 때문에 때문에 확장성이 낮음. 반면, 에어플로우는 사이즈에 따라 로컬에서도 실행할 수 있지만 Kuberne..

증권사 추천종목 크롤링

사이트 : https://money2.daishin.com/E5/ResearchCenter/Work/DW_Research_PromList.aspx?pr_code=5&itemgroup=1&m=966&p=1062&v=2297 Monthly > 유망종목 - 대신증권 money2.daishin.com 페이지에서 가져올 데이터를 선정한다. F12 또는 Ctrl+Shift+I 키를 눌러 개발자 도구를 열고 inspector를 클릭하고 수집을 원하는 문구를 클릭한다. 수집하려는 단위 항목의 범위를 확인하고 특징이 있는 tag 및 class 명칭 등을 확인한다. 마우스를 HTML tag 하나 하나 올리면서 이동하면서 확인하면 각 tag 별로 범위를 확인할 수 있다. 위와 같은 방법으로 확인한 우리가 수집하려는 데이터 ..

728x90
반응형