airflow(5)
-
Airflow PythonSensor 실습
Data Pipeline with Apache Airflow Apache Airflow 기반의 데이터 파이프라인 저서를 참고함 Airflow Sensor 소개 워크플로우를 트리거하는 여러가지 방법 중 외부 이벤트의 결과를 트리거로 워크플로우가 실행될 수 있게하는 방법에 대해서 소개하도록 한다. 예를 들면, 공유폴더에 파일이 업로드 되거나 Hive에 새로운 파티션이 생성됐을 때 워크플로우를 실행해야하는 경우가 있는데 이때 PythonSensor or FileSensor를 통해 새로운 데이터를 읽고 처리할 수 있다. 이러한 센서들은 특정 조건이 true인지 지속적으로 확인하고 true라면 성공하고 False면 상태가 true가 될 때까지 또는 타임아웃이 될 때까지 계속 확인한다. 여기서 센서의 타임아웃은 주..
2023.08.17 -
Airflow 코스피 지수 크롤링
Airflow + Postgresql 네이버 코스피 지수 크롤링 Airflow를 연습해보기 위해 네이버 증권에서 코스피 지수 일별 시세를 매일 수집해서 적재하는 배치를 만들어보려고 한다. 위의 그림과 같이 현재는 매일 수집하는 중이고 다른 방법으로 이러한 금융데이터를 수집 적재 해볼 생각이다. 1. URL 구하기 우선 크롤링을 진행할 네이버 증권의 KOSPI 일별 시세의 url을 보면 매일 새로운 데이터가 첫 페이지 맨 위에 장식된다. 그렇기 때문에 페이지와는 상관 없이 무조건 첫 페이지만 불러오면 된다. 우선 네이버 KOSPI 지수 일별 시세를 보여주는 페이지로 가보자. 네이버 증권의 코스피 페이지를 가보면 하단에 일별시세를 제목으로 하는 테이블이 있는데 이때 페이지를 넘기는 숫자에 커서를 올리면 UR..
2023.08.11 -
Airflow + PostgresSQL 연동시키기
Airflow를 설치하고 난 후 데이터를 적재하거나 읽어올 수 있는 RDB 툴이 필요했는데 로컬에 설치되어있는 Postgresql과 연동시키고 싶었다. 처음에는 host 파라미터에 localhost로 지정해주면 되지 않을까해서 Airflow Dag파일 작성하면서 localhost라고 지정해봤지만 실패하였다. 인터넷 검색을 통해 host.docker.internal 이라고 지정해주면 된다고 하지만 도커의 버전에 따라 작동안하는 경우도 있는 것 같고 나도 실패했다... 결국에는 docker 혹은 airflow 이미지 생성 시 설정파일들을 손보면 된다는데 처음에는 간단해보여서 로컬 Postgresql과 연동 시키려 했지만 너무 복잡했다. 그래서 빠르게 포기하고 새로운 postgresql container를 생..
2023.08.04 -
Airflow 소개
회사에 입사 후 여러 사업에 참여하면서 데이터 분석을 할 때 굉장히 불편한 점을 많이 느꼈다. 분석과 데이터 엔지니어 일이 나눠져 있어서 불편한 경우가 한두가지가 아니었는데 새로운 데이터가 필요할 때면 항상 직접 처리하지 못하고 일일히 부탁해야된다는 점이 가장 불편했던거 같다. 현재는 NiFi라는 툴을 이용해 SI 사업을 진행 중이지만 앞으로 미래엔 점차 Airflow로 바뀌어가지 않을까하는 마음과 Python으로 데이터를 다룰 수 있다는 점에 Airflow를 배워보려고 한다. ("Apache Airflow 기반의 데이터 파이프라인" 이라는 책을 정리하면서 공부하려고 한다.) Airflow 장점 1. 파이썬 코드를 사용한 유연한 파이프라인 정의 Airflow는 파이썬 스크립트로 DAG(워크플로우 테스크)..
2023.07.31 -
AIRFLOW 도커로 시작하기
윈도에서도 WSL을 이용하여 Airflow를 설치할 수 있으나 도커도 사용해볼겸 도커를 이용해 설치를 수행하였다. 도커의 윈도우 버전을 설치 Window Store를 통해 WSL2 설치 도커 설정을 통해 도커가 wsl2에서 명령어로 접근할 수 있게끔 설정해주자 docker-compose.yaml 설치 앞으로 Airflow의 작업을 위한 폴더를 생성한 뒤 그 곳에서 curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.1.3/docker-compose.yaml' 명령어를 통해 airflow에서 제공하는 docker 버전 airflow yaml 파일 설치 (airflow는 worker,webserver,scheduler, postgres 등등 다양한 구성..
2023.07.28