주니어 데이터 엔지니어 우솨's 개발일지

데이터 엔지니어링 43일차 TIL 본문

데브코스

데이터 엔지니어링 43일차 TIL

우솨 2024. 6. 5. 19:04

학습내용

Airflow
delete from
- sql transaction을 존중
truncate
- sql transaction을 존중하지 않고 전부 삭제

Admin - Connections
: 백엔드의 호스트 이름, 포트넘버 등을 저장 



Admin - Variables
: API Key, Value 등을 저장




Xcom이란?
: 태스크(Operator)들간에 데이터를 주고 받기 위한 방식
- 보통 한 Operator의 리턴값을 다른 Operator에서 읽어가는 형태가 된다.
- 이 값들은 Airflow 메타 데이터 DB에 저장이 되기에 큰데이터를 주고 받는데에는 사용이 불가능하다.
   - 보통 큰 데이터는 S3등에 로드하고 그 위치를 넘기는 것이 일반적이다.

cp -r
: cp는 복사하는 기능, -r은 서브폴더까지 모두 복사하라는 옵션
ls -tl
: ls는 폴더 내 파일들을 리스트로 보여줌, -tl은 읽기,쓰기 등의 기능도 같이 보여주는 옵션

PostgresHook의 Autocommit 파라미터
- Default 값은 False이다
- 이 경우 Begin은 아무런 영향이 없다(no-operation)
- commit이나 end를 해주어야 영향이 감

DAG에서 task를 어느정도로 분리하는 것이 좋을까?
- task를 많이 만들면 전체 DAG이 실행되는데 오래 걸리고 스케줄러에 부하가 간다.
- task를 너무 적게 만들면 모듈화가 안되고 실패시 재실행하는 시간이 오래 걸린다.
- 오래 걸리는 DAG이라는 실패시 재실행이 쉽게 다수의 task로 나누는 것이 좋다.
=>task의 수를 너무 늘리지는 않되 재실행 이슈 발생시 시간을 줄일 수 있는 방법을 생각해서 적절하게 나누어야한다.

Airflow의 Variable관리 vs 코드 관리- 장점 : 코드 푸시의 필요성이 없다.
- 단점 : 관리나 테스트가 안되어서 사고로 이어질 가능성이 있다.

도커내 파워셀 접속
docker exec -it <도커이름> sh >> 일반으로 접속
docker exec --user root -it <도커이름> sh >>root계정으로 접속