Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- pySpark
- Dag
- Python
- 설치
- kafka
- 오블완
- amazonlinux
- milvus
- grafana
- Streamlit
- airflow
- 루프백주소
- Redshift
- hadoop
- metadabatase
- vectorDB
- SQL
- spark
- RAG
- docker
- prometheus
- dockercompose
- sparkstreaming
- MSA
- ubuntu
- javascript
- jmx-exporter
- airflow설치
- BigQuery
- aiagent
Archives
- Today
- Total
데이터 노트
[Redshift] Airflow로 자동화한 프로시저가 작동하지 않을 경우 본문
Redshift 상에 구축한 프로시저를 자동화하기 위해 Airflow에 DAG, Task를 생성하였으나,
제대로 작동되지 않고 데이터가 들어가지 않았다.
그런데 Airflow 상에서는 제대로 task가 실행되었다고 뜨고,
별도의 오류가 없어서 다같이 트러블슈팅을 하였다.
결과론적으로는 시간대 설정의 문제였다.
airflow 상에서는 한국 시간대 KST로 설정하여 프로시저가 작동하도록 설정해두었는데,
redshift 상에서는 프로시저에서 기간 값 설정을 위해 Declare 문에서 선언한 변수의 시간을 current_date로 설정한 것이 문제였다.
-- 기존 프로시저 내 설정
DECLARE
date_from date:= (current_date -7)::date;
date_to date:= (current_date)::date;
redshift는 UTC 기반이기 때문에 프로시저가 돌아가는 시간 기준으로 설정한 기간 값이 제대로 설정 되지 않았기 때문.
아래와 같이 변경하여 시간대를 동일하게 설정하였고, 문제는 해결되었다.
모든 프로시저들을 다 바꾸어줘야한다는 번거로움이 있었지만,,^^
-- UTC 시간대를 KST 시간대로 변경 설정
date_from date:= CONVERT_TIMEZONE('KST', SYSDATE) - INTERVAL '7 days';
date_to date:= CONVERT_TIMEZONE('KST', SYSDATE);
그 외에도 데이터 insert 시간을 입력하는 컬럼의 값 등 시간을 기준으로 하는 내용의 경우,
전부 위와 같이 설정해서 맞춰주었다.
* 추가적으로 알게 된것은 sysdate와 current_date 차이
- current_date : 사용자 세션 시간
- sysdate : 데이터 서버가 위치해 있는 시간
'Data Engineering > DB' 카테고리의 다른 글
[Redshift] 연산 오류 | 자동 정수 변환 (0) | 2024.04.13 |
---|---|
[Redshift] 기존 테이블의 컬럼명 변경을 위한 방법 (0) | 2024.03.20 |
[BigQuery] Python, BigQuery 연동 후 Google Sheet에 저장 (0) | 2023.06.10 |
[BigQuery] Python, BigQuery, Google Sheet 연동 시 credential 에러 (0) | 2023.06.07 |
[GCP] CLOUD SQL - Ubuntu 내 Django 연동 (0) | 2023.02.10 |