[서울시 대기현황 데이터 적재 프로젝트] Streamlit으로 Dashboard 만들기 (4)
·
프로젝트/서울시 대기현황 데이터 적재 프로젝트
1. 개요서울시 대기현황 ETL 현재 프로젝트에서는 서울시 열린데이터 광장 API를 활용하여 1시간 간격으로 실시간 서울시의 대기현황 데이터를 수집하고, 이를 PostgreSQL에 저장하는 데이터 파이프라인을 구축하여 운영중에 있습니다. 데이터는 효과적으로 관리하기 위해 날짜별로 파티셔닝하여 저장하며, 파티셔닝된 테이블 정보는 다음과 같습니다.# RealtimeCityAir_2024-09-26 테이블 예시|MSRDT |MSRRGN_NM|MSRSTE_NM|PM10|PM25|O3 |NO2 |CO |SO2 |IDEX_NM|IDEX_MVL|ARPLT_MAIN||---------------|---------|---------|----|----|-----|-----|---|-----|----..
[서울시 대기현황 데이터 적재 프로젝트] Terraform으로 배포 환경 구성하기 (3)
·
프로젝트/서울시 대기현황 데이터 적재 프로젝트
1. 도입 배경현재 프로젝트 상태현재 데이터 파이프라인 인프라는 GCE 인스턴스 생성, Docker 설치, Airflow 설치 및 설정 등의 작업을 수작업으로 진행하고 있습니다. 특히 포트 허용, 방화벽 설정, 네트워크 구성과 같은 작업은 매번 GCP 콘솔에 접속해 수동으로 관리하고 있습니다.이러한 수작업 방식은 비효율적일 뿐만 아니라, 인프라 설정을 일관되게 추적하기 어렵고 실수로 인한 오류 가능성도 큽니다.이와 같은 배경에서 반복적인 작업을 자동화하고, 인프라 변경 사항을 효율적으로 추적하기 위해 Terraform을 도입하기로 결정했습니다.  개선 방향Terraform을 도입하면서 다음과 같은 기능을 목표로 하고 있습니다.GCE 생성 자동화: 인프라가 필요할 때마다 Terraform을 통해 코드로 G..
[서울시 대기현황 데이터 적재 프로젝트] Dag 생성하고 실행하기 (2)
·
프로젝트/서울시 대기현황 데이터 적재 프로젝트
1. Dag: dags_seoul_api_RealtimeCityAir(1). "RealtimeCityAir_status_sensor": 서울시 공공데이터 포털에 현재 시간의 데이터가 정상적으로 업데이트되었는지 확인함, 정상적으로 업로드되지 않았다면 10분마다 업데이트 상태를 확인하고 다음 task로 넘어가지 않도록 대기함  (2). "RealtimeCityAir_status_to_csv": sensor에서 정상적으로 데이터가 업데이트 되었음을 확인하면, 데이터를 받고 csv 파일로 저장(3). "insrt_postgres": csv 파일로 저장된 데이터를 postgres에 bulk load2. dags와 plugins의 파일▪ dags: Airflow의 DAG 파일이 저장되는 디렉터리로, 데이터 파이프라..
[서울시 대기현황 데이터 적재 프로젝트] Airflow 환경 구성하기 (1)
·
프로젝트/서울시 대기현황 데이터 적재 프로젝트
1. 배포 환경▪ GCP의 ComputeEngine을 서버로 사용▪ Docker Compose로 Airflow Webserver, Scheduler, Worker, Redis, PostgresSQL 컨테이너 실행  ▪ 서울시 권역별 실시간 대기환경 현황 데이터는 PostgreSQL custom에 적재2. 환경 구성▪ 아래 순서로 작업을 진행하여 환경을 구성 (1). GCP VM 인스턴스 생성하기 -> https://doodo0126.tistory.com/24(2). Ubuntu에 Docker 설치하기 -> https://doodo0126.tistory.com/26(3). Docker로 Airflow 설치하기 -> https://doodo0126.tistory.com/28(4). 개발환경구성 (local ..