ETL 4

[Airflow] 기상 데이터 적재 자동화: 2014년부터 2024년까지

들어가며Airflow를 활용하여 2014년부터 2024년까지의 기상 데이터를 공공 API를 통해 요청하고, PostgreSQL 데이터베이스에 저장하는 과정을 설명합니다.디렉토리 구조 및 common 폴더: 프로젝트 디렉토리 구조와 공통으로 사용될 파일 정의Airflow DAG 설계: 데이터 적재 작업을 정의.Custom Operator 작성: API 요청과 데이터 적재 로직 구현.PostgreSQL 데이터베이스와 스키마 자동 생성.프로젝트 디렉토리 구조아래는 현재까지의 프로젝트 디렉토리 구조입니다: ├── dags/│ ├── climaml_historical_weather_data_dag.py # DAG 정의 파일├── plugins/│ ├── operators/│ │ ├── climam..

Projects/ClimaML 2024.11.18

[Postgresql] Open API 데이터 ETL 플로우

Open API 데이터를 추출하고, 원하는 데이터 형식으로 변환하고, 그것을 데이터 베이스에 적재하는 ETL 플로우에 대해 알아보겠습니다. 저장할 DB는 PostgreSQL을 사용하였습니다. PostgreSQL을 선택한 이유?MLOps 프로젝트의 기상 데이터 적재와 관리 용도로 사용할 데이터베이스(DB)로 데이터 양, 접근 방식, 쿼리 성능 등을 고려하여 선택하였습니다.10년치 기상 데이터라면 수십 GB 이하로 예상이 되기 때문에 오픈소스인 PostgreSQL이나 MySQL으로도 충분히 감당할 수 있다고 생각하였습니다. 또한 구조화된 스키마를 가지고 있어, 각 지역 및 날짜별 기상 데이터를 정리할 수 있을 것이라고 판단했습니다. 그리고 PostgreSQL이 최근 각광받고 있다는 점때문에 PostgreSQ..

Projects/ClimaML 2024.11.04

[API] 공공 데이터 포털에서 기상 데이터 받아오기

공공 데이터 포털에서 기상 데이터를 fetch 하는 방법에 대해 알아보겠습니다. 공공 데이터 포털은 기상 데이터 외에도 교육, 국토 관리, 공공 행정, 재정 금융, 산업 고용 등 우리나라의 많은 데이터들을 api 외에도 파일 데이터로 제공해주는 사이트입니다. https://www.data.go.kr/index.do 공공데이터 포털국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datasewww.data.go.kr 제가 필요한 데이터는 기상청_지상(종관, ASOS) 일자료 조회서비스입니다.https://www.data.go.kr/tcs/dss/selectApiDataDeta..

Projects/ClimaML 2024.11.04

[Airflow] Jinja 템플릿 활용

Airflow에서는 DAG 작성 시 Jinja 템플릿을 통해 특정 파라미터에 동적으로 값을 할당할 수 있습니다. Jinja는 주로 웹 프레임워크에서 HTML 템플릿 렌더링에 사용되는 엔진이지만, Airflow에서는 SQL, Bash 스크립트 등 다양한 작업에서 파라미터 값 설정을 유연하게 해주는 역할을 합니다. 이 글에서는 Jinja 템플릿이 무엇인지, Airflow에서 어떤 식으로 활용되는지 구체적으로 알아보겠습니다.Jinja 템플릿이란?Jinja 템플릿은 문서에서 특정 양식으로 작성된 값을 런타임에 실제 값으로 치환해주는 처리 엔진입니다. Python 기반의 여러 프레임워크에서 지원되며, 대표적으로 Flask나 Django에서 HTML 템플릿을 화면에 렌더링할 때 사용됩니다. Airflow에서는 SQ..

MLOps/Airflow 2024.11.03