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..
인프라 구축기인프라 구축기 (9)에서 Terraform의 .tfstate 파일을 삭제하는 이슈가 있었다. 이때 배운 것 중 하나가 원격 저장소를 활용한 Terraform 상태 파일 관리였다. 그래서 원격 저장소인 AWS S3에 상태 파일을 두고 사용하는 방법을 살펴보고, 작성 중인 Terraform 코드에 적용해볼 것이다. 인프라 구축기 (9) - Terraform terraform.tfstate 삭제 이슈인프라 구축기Terraform으로 aws 인프라를 지속적으로 관리하던 중 큰 문제 하나를 마주쳤다. 실수로 Terraform의 상태 파일인 terraform.ftstate를 삭제한 것이다. 이번 글에서는 해당 이슈를 해결한 과정sanseo.tistory.com각 디렉터리에 terraform.tf 파일 ..
data_interval_start를 활용한 File System Partitioning적용데이터 파일을 S3에 저장을 하는 로직을 구현하기 위해 파일 명을 "0000_{data_interval_start}.parquet"으로 설정하는 방법을 탐색하였다. data_interval_start와 같은 Airflow 내부 시간에 대해 알고 싶다면 아래의 링크에서 확인 가능하다. [Airflow] DAG Scheduling과 ExecutionAirflow Scheduling과 Execution개요Airflow 관리Airflow를 사용하면서 반드시 알아야 할 것이 "작성한 DAG가 언제, 얼마나 실행되는가?"일 것이다. Airflow에서는 관련 개념을 숙지하지 않으면, 해당 DAG의 실행sanseo.tistory..
Redshift COPY 시 잘못된 timestamp 값이 적재되는 문제Airflow의 S3ToOperator를 사용해 S3 버킷에 저장된 .parquet 파일을 Redshift에 COPY를 진행하였는데, 다른 모든 값은 모두 올바르게 적재되었음에도 timestamp 형식을 가진 컬럼만 잘못된 값이 적재되었다. 이 문제를 해결하기 위한 과정을 적어보려 한다.데이터 처리 방식 (ETL)우선 이슈가 발생했을 때의 S3에 적재되는 .parquet의 ETL 과정을 나타내 본 뒤 본격적으로 해결 과정을 알아보자.데이터 추출 (Extract)서울 도시데이터 API 호출을 통해 Json 형태의 데이터 추출데이터 변형 (Transform)추출한 데이터 (Json)를 가져와 필요한 데이터를 리스트 형태로 변경여기서 리스..