Projects/ClimaML 5

[ClimaML] 커스텀 센서로 안정성 높은 데이터 파이프라인 구축

프로젝트 개요지난 시간 공공데이터 API를 활용하여 10년간의 기상 데이터를 PostgreSQL 데이터베이스에 적재하는 작업에 이어 이번 시간에는 매일 새로운 데이터를 수집하는 자동화된 데이터 파이프라인을 구축하는 프로젝트를 진행했습니다.이번 포스팅에서는 다음과 같은 내용을 다룹니다:매일 기상 데이터를 적재하는 자동화 DAG 작성안정성을 높이기 위한 커스텀 센서 작성진행 중 겪었던 문제와 해결 과정1. 매일 데이터 적재를 위한 자동화 DAG 작성요구사항매일 전날(D - 1) 데이터를 API에서 가져와 DB에 적재.Airflow DAG를 작성하여 스케줄링.구현된 DAGDAG는 매일 13시에 실행되며, 전날 데이터를 API에서 가져와 DB에 적재하는 작업을 수행합니다. 이렇게 스케줄링을 한 이유는 기상 AP..

Projects/ClimaML 2024.11.25

[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

[Postgresql] Linux(Ubuntu)에서 설치

리눅스에서는 apt 패키지 관리자를 통해 PostgrSQL을 설치할 수 있습니다. 1. 터미널에서 PostgreSQL을 설치합니다.sudo apt updatesudo apt install postgresql postgresql-contrib 2. PostgreSQL 설치가 완료되면 서비스가 자동으로 시작되며, 확인하기 위해서는 다음의 명령어를 입력합니다.sudo systemctl status postgresql상태 출력 예시active (running): PostgreSQL 서비스가 정상적으로 실행 중.inactive (dead): 서비스가 실행되지 않음.failed: 서비스가 오류로 인해 중단됨. 3. PostgreSQL에 접속합니다.sudo -i -u postgrespsqlsudo -i -u post..

Projects/ClimaML 2024.11.03