S3ToRedshiftOperator 사용 예시Airflow에서 S3에 존재하는 파일을 Redshift로 COPY 하는 방법은 크게 두 가지 방식이 있다. S3ToRedshiftOperator는 파라미터 정보만 적어주면 되므로 실제 쿼리 작업이 필요한 Hook 사용 방식보다 간편하게 사용할 수 있다. S3Hook과 PostgresHook을 활용해 S3와 Redshift를 각각 연결한 뒤 COPY Query 실행S3ToRedshiftOperator를 사용한 간단하게 COPYS3ToRedshiftOperator 사용 예시라이브러리 선언from airflow.providers.amazon.aws.transfers.s3_to_redshift import S3ToRedshiftOperatorS3ToRedshift..
Redshift COPY 시 잘못된 timestamp 값이 적재되는 문제Airflow의 S3ToOperator를 사용해 S3 버킷에 저장된 .parquet 파일을 Redshift에 COPY를 진행하였는데, 다른 모든 값은 모두 올바르게 적재되었음에도 timestamp 형식을 가진 컬럼만 잘못된 값이 적재되었다. 이 문제를 해결하기 위한 과정을 적어보려 한다.데이터 처리 방식 (ETL)우선 이슈가 발생했을 때의 S3에 적재되는 .parquet의 ETL 과정을 나타내 본 뒤 본격적으로 해결 과정을 알아보자.데이터 추출 (Extract)서울 도시데이터 API 호출을 통해 Json 형태의 데이터 추출데이터 변형 (Transform)추출한 데이터 (Json)를 가져와 필요한 데이터를 리스트 형태로 변경여기서 리스..
프로젝트에서 발생했던 오류 정리이번 데브코스에서 프로젝트를 진행하면서 발생했던 오류와 해결 과정을 정리해보려고 한다. 나는 Airflow의 DAG를 작성하는 역할을 맡았기에 데이터를 S3, Redshift에 저장하는 과정에서 에러를 마주치게 되었다.S3에 저장한 csv 열었을 때 한글 깨짐문제 발생API를 통해 데이터를 가져와 데이터 프레임 형태로 만들고, S3에 csv로 저장해 주었다. 에러가 발생하지 않아서 올바르게 작동하나 싶었지만, aws 웹 콘솔로 접속해서 S3의 파일을 직접 열었을 때 한글이 깨지는 것을 확인할 수 있었다. 영어와 숫자는 제대로 나오기 때문에 인코딩-디코딩 과정에서 오류가 있을 것이라 생각했다.문제 해결결론적으로 구글링을 많이 해봤지만, S3의 파일을 다운로드하고 열었을 때 한..
이전에 S3 - Snowflake - Preset 인프라를 구성하고, 스크래핑 코드를 수정해 주었다. 이번에는 Snowflake에서 S3의 csv 파일을 가져와 데이터베이스로 저장할 수 있도록 Worksheets를 작성할 것이다. [개인 프로젝트] FC Online 공식 경기 분석 (3) - 인프라 구성(S3, Snowflake, Preset)이전에 FC Online API를 활용해 스크래핑하고 S3 버킷에 저장하는 Python 코드를 작성하였다. 이번에는 S3-Snowflake-Preset 인프라를 구성할 것이다. [개인 프로젝트] FC Online 공식 경기 분석 (2) - S3 버킷 생sanseo.tistory.com수정 사항Primary Key - matchId -> idmatchId가 매치 별 ..