일단 project3 현재까지 진행 상황.
- GCS_to_Bigquery Dag 작성 완료.
- 각 태스크 별 성공, 실패 작업 slack 알람 및 default_args로 email 알람 기능 처리
- staging테이블 생성하여 모든 데이터들은 dwh 이동 과정에서 중간 단계를 거쳐 data validation 진행해 Integrity 확보
어제 GCS -> Bigquery에 있어 전체적인 Dag작성은 완료를 했고 오늘 해야 할 일을 작성해보면 다음과 같다.
- dag 고도화 (task 처리)
- sql query 작성 (CREATE & validation)
- failover 처리
✅ dag task
- 각 task 별 성공/실패 시 slack, email로 alert 기능 구현
- DWH적재 과정에서 2차례 Validation을 통해 data integrity 확보.
GCS -> Bigquery 과정에서 error 발생으로 인한 data volume 문제를 해결하거나, 메모리 초과, CPU 용량 초과 등의 문제로 catchup을 False로 지정한 현 시점에서 발생할 수 있는 문제는 서버 다운으로 인한 data 손실이다.
이러한 문제는 이중화 문제로써 failover를 일으킬 수 있다.
이 방법을 해결하고자 다음 선택을 할 수 있을 듯 하다.-> DWH를 2개를 생성해 backfill 개선
-> default_args(catchup = True)지정해 이전 데이터 모두 처리
-> 30분 마다 기존 데이터가 이미 GCS에 있으므로 태스크 처리를 @ONCE로 스케줄 지정.
dag 작성 및 CTAS 쿼리 생성이 끝났으나, DAG가 올바르게 작동하지 않는 것을 확인.
음.... 로그 에러를 자세히 보면 google_cloud_default가 정의되지 않았다고 하는데, airflow.cfg로 들어가 connections 섹션을 만들고 json으로 다운 받은 service-account를 입력해준다. 이렇게 처리를 해도 에러가 나오면... 방법을 좀 추가로 찾아보아야 할 것 같다.