프로젝트에서 발생했던 오류 정리이번 데브코스에서 프로젝트를 진행하면서 발생했던 오류와 해결 과정을 정리해보려고 한다. 나는 Airflow의 DAG를 작성하는 역할을 맡았기에 데이터를 S3, Redshift에 저장하는 과정에서 에러를 마주치게 되었다.S3에 저장한 csv 열었을 때 한글 깨짐문제 발생API를 통해 데이터를 가져와 데이터 프레임 형태로 만들고, S3에 csv로 저장해 주었다. 에러가 발생하지 않아서 올바르게 작동하나 싶었지만, aws 웹 콘솔로 접속해서 S3의 파일을 직접 열었을 때 한글이 깨지는 것을 확인할 수 있었다. 영어와 숫자는 제대로 나오기 때문에 인코딩-디코딩 과정에서 오류가 있을 것이라 생각했다.문제 해결결론적으로 구글링을 많이 해봤지만, S3의 파일을 다운로드하고 열었을 때 한..
프로젝트 설명 및 회고프로젝트 소개깃허브 링크 GitHub - lv1turtle/tourist_visitation_patterns_by_weatherContribute to lv1turtle/tourist_visitation_patterns_by_weather development by creating an account on GitHub.github.com진행 기간2024.06.10 ~ 2024.06.14 (5일)주제기상에 따른 관광지 방문 현황 파악프로젝트 인원 구성총 4명Airflow 서버 환경 구축, Github Action 작성한국관광공사 관광지 방문자 수 API 데이터 추출 DAG 작성ERD 작성, dbt를 활용한 ELT 구축기상청 관광지 날씨 정보 API 데이터 추출 DAG 작성나의 역할한국..
구글 시트 연동과 API & Airflow 모니터링구글 시트의 데이터를 Redshift 테이블로 복사하거나 Redshift의 SELECT 결과를 구글 시트로 복사하는 작업은 현업 부서와 일을 할 때 자주 사용하며, 중요한 작업 중 하나이다.구글 시트 연동하기 (1) : 구글 시트 -> Redshift구글 시트의 데이터를 Redshift의 테이블로 복사하는 작업을 진행한다.구현 절차시트 API를 활성화 -> 구글 서비스 어카운트 생성 -> 내용을 JSON 파일로 다운로드어카운트에서 생성해 준 이메일을 조작하고 싶은 시트에 공유Airflow DAG에서 해당 JSON 파일로 인증하고 시트를 조작어카운트 생성 과정 구글 스프레드시트 API 활성화 및 프로젝트 생성 (링크)구글 서비스 어카운트 생성 (링크) : ..
Airflow DAG 개발 - OLTP 복사와 ELTOLTP(MySQL) 테이블 복사 방법프로덕션 MySQL 테이블 (OLTP)의 prod.nps 테이블을 AWS Redshift (OLAP)의 raw_data.nps로 복사하는 실습을 진행한다.복사 방법둘 중 어느 방법을 사용하더라도 Airflow는 MySQL과의 연결이 필요하며, COPY를 사용할 경우 S3와도 연결돼야 한다.INSERT INTOMySQL의 소스 데이터를 읽어 하나씩 AWS Redshift로 "INSERT INTO"를 사용해 복사소스 데이터의 레코드 수가 많다면 시간이 오래 걸림MySQL -> Airflow Server -> AWS RedshiftRedshift COPYMySQL의 소스 데이터를 읽어 파일로 클라우드 스토리지 S3에 저장..