일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- MSA
- grafana
- RAG
- 설치
- Redshift
- spark
- jmx-exporter
- 오블완
- aiagent
- javascript
- amazonlinux
- vectorDB
- milvus
- ubuntu
- hadoop
- Dag
- sparkstreaming
- Streamlit
- 루프백주소
- dockercompose
- airflow설치
- prometheus
- pySpark
- metadabatase
- airflow
- BigQuery
- docker
- SQL
- kafka
- Python
- Today
- Total
목록Data Engineering (14)
데이터 노트

사용할 Airflow 버전 : 2.6.0실행 환경 : Mac 설치1. docker-compose.yaml 파일 다운로드curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.6.0/docker-compose.yaml' 포함된 내용은 엄청 길어서 그 중 확인이 필요한 서비스 목록 및 내용만 확인해보았다.airflow-scheduler : 모든 task와 DAG를 모니터링airflow-webserver : 에어플로우 웹 서버. http://localhost:8080airflow-worker : 스케줄러로부터 부여된 테스크들을 실행하기 위한 워커airflow-init : 서비스 이니셜라이제이션postgres(DB) : 데이터 베이스redis : 스케줄러에서..
단순 계산이긴 한데, 자꾸 오류가 나서내가 기존 데이터를 잘못 묶었나..혹은 레드시프트는 연산할 때 뭐가 다른 건가 계속 찾아봤다. 복잡하게 데이터를 짠 것도 아닌데 시간이 걸려서 스트레스 였지만..^^원인은 실수인 결과값을 자동으로 정수 처리해 주는 것 때문에 원하는 결과가 나오지 않는 것이었다. -- 최종 연산을 위한 쿼리SELECT (sum(a) / count(b)) * 100 FROM ...sum(a)의 값은 14 , count(b)의 값은 205 였고,0.06829... * 100의 값이 6.829 ... 로 나와야하는데 계속 0이 출력됐다. ROUND 처리 다 해줬으나 그게 답이 아니었음 결과론적으론 실수형으로 변환해주고, ROUND로 원하는 자릿수까지 설정해서원하는 값을 얻었다.(ROUND ..
데이터를 이관하는 과정에서 프로시저를 자동화 했는데,로직이 잘못 되었었는지 같은 데이터가 중복으로 삽입되어 있었다. 이를 삭제하기 위한 쿼리를 기록해본다. 일반적으로 고유한 값을 가지는 id로만 데이터를 구분하여 삭제하는 쿼리 예시는 많이 있었는데,내가 겪은 케이스의 경우 id 값이 유일하지 않았다. 그래서 유일해야하는 id값과 컬럼 중 데이터 값이 유일하게 달랐던 데이터 삽입 시간 created_datetime을 기준으로 구분했다.DELETE FROM table1WHERE (id, created_datetime) IN ( SELECT id, created_datetime FROM ( SELECT id, created_datetime ,ROW_NUMBER() OVER (PART..
Redshift 상에 구축한 프로시저를 자동화하기 위해 Airflow에 DAG, Task를 생성하였으나,제대로 작동되지 않고 데이터가 들어가지 않았다. 그런데 Airflow 상에서는 제대로 task가 실행되었다고 뜨고,별도의 오류가 없어서 다같이 트러블슈팅을 하였다. 결과론적으로는 시간대 설정의 문제였다.airflow 상에서는 한국 시간대 KST로 설정하여 프로시저가 작동하도록 설정해두었는데,redshift 상에서는 프로시저에서 기간 값 설정을 위해 Declare 문에서 선언한 변수의 시간을 current_date로 설정한 것이 문제였다.-- 기존 프로시저 내 설정DECLARE date_from date:= (current_date -7)::date; date_to date:= (current_da..

Redshift는 Postgresql을 기반으로 하여 만들어진 데이터베이스라고 하지만,작업을 하다보면 일부 다른 부분들이 있다. Redshift에서는 기존에 이미 생성된 테이블의 컬럼의 경우,이름을 변경하거나 데이터타입을 변경하는 작업의 경우 불가하다. 그런데 오늘 작업 중 기존의 컬럼명을 변경해야하는 케이스가 있었는데,조금 번거롭지만 아래와 같이 진행하면 된다. 1. 변경하고자 하는 이름의 새로운 컬럼 추가.2. 기존 컬럼에서 새로 추가된 컬럼으로 데이터 복사.3. 기존 컬럼 삭제. 쿼리로 작성해보자.-- 1. 새로운 컬럼 추가ALTER TABLE [테이블명]ADD COLUMN [새로운 컬럼명] [데이터 타입];-- 2. 데이터 복사 UPDATE [테이블명]SET [새로운 컬럼명] = [기존 컬럼명];..