일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- hive beeline 설정
- 카카오 2020 코테
- code=0)
- 카카오 2020 코딩테스트
- hive beeline
- Failed to connect to localhost:10000
- mac hive 3
- hadoop safe mode
- mac hadoop
- 카카오 자물쇠와 열쇠
- Could not open client transport with JDBC Uri: jdbc:hive2://localhost:10000
- hadoop safe mode leave
- 기업 조사 빨리 하는 법
- 이더리움
- Resources are low on NN
- mac hive
- 자소서 빨리 쓰는 법
- is not allowed to impersonate hive (state=08S01
- mac hadoop 3
- mac hadoop 설치
- mac hadoop 설정
- 이더리움 #ethereum
- 자소서 빨리
- 백준 18428
- hive beeline 에러
- 자소서 너무 오래 걸림
- 도커 교과서
- hive beeline 실행
- Safe mode is ON
- 자소서 시간 줄이기
- Today
- Total
A seeker after truth
10주차: 데이터 파이프라인, Airflow (5) 본문
숙제 리뷰
ELT는 이미 있는 테이블들 조인해서 새로운 테이블, 정보 만드는 거라는데...?
5: DISTINCT 로만 중복 제거 처리한 UpdateSymbol_v2 는 이 페이지의 사진같은 문제를 유발할 수 있음. 날짜 기준 유니크 레코드여야 하는데 지금 안그런 상황. DISTINCT 들어간 쿼리문이 한 로우의 모든 컬럼 값을 선택하는 거라, 모든 컬럼의 값이 같아야만 중복 제거 처리를 해주기 때문.
만약 이 dag가 한 장이 끝난 다음장 때'만' 실행되면 그럴 일 없는데, 실수로라도 한 장이 안끝났는데 실행되면 중복 제거 제대로 안되는사태 생길 것. volume 값 등이 다를 것.
이의 해결 방법은 데웨서 제공해주는 업서트 방식 혹은 row number 기준 파티셔닝 윈도우 함수 시퀄문 사용.
RDB -> DW ELT 구현
이번에도 풀리프레쉬, 인크리멘탈 업뎃 방법으로 나눠 구현.
8: 이런 식으로 하는데 만약 마이시퀄에 레코드 많으면 "인서트 함수 호출"에 시간 다가기 때문에 퍼포먼스가 안나게 되는거
복사하려는 레코드 많으면 #1에 써있는 방법이 더 선호되고.
마이시퀄가 레드시프트가 각각 에스스리버킷 액세스하는 "보안"세팅필요. 이떄 클라우드 지식 필요해지는 거다.
우선 에어플로 실행한 뒤 마이시퀄&S3 세팅하기. 단 호스트 정보 등 바뀔 수 있으므로 프로그래머스스쿨 페이지 및 슬랙 확인 후 진행!
16: 2번으로 권한 설정 시 버킷 생성까지 가능하게 해주는... 그러나 액세스 키 어디 노출되거나 하면 단연 더 위험해지는 것.
첫번째 대그는 이미 만들어져 있는 것에 파라미터만 채우는 형태로 갈 것.
23: SqlToS3Operator는 시퀄기반으로 동작하는 대부분의 데베를 소스로 해서 거기에 특정 셀렉문 실행 후 결과로 받아 s3 특정 위치에 저장해주는 일을 한번에 해주는 것
강의자료 26쪽으로 넘어가기 전에, 어제 다 못했던 weather 새로운 키로 작동되는지, 기존 키로는 안되는지 확인 그리고 mysql-to-red.py 실행하는 거 한번 해보자~!
26: 인크리멘탈 방식 쓰려면 만족해야 하는 프로덕션 디비의 조건이 몇 가지 있다. ... 맨날 하던 이 칼럼들이 이거였어...?
레코드가 삭제안되면 앞의 조건들만으로 충분하나, 삭제가 되면 인크리멘탈 업뎃 할 수가 없다. 삭제된건 다 읽어오기 전에 모르니까. 어떤 게 삭제되는게 가능하다면 물리적으로 삭제하지 않고 이 deleted 컬럼 사용하는.
27: 여기 나오는 방식은 코드 구현 해보진 않고 방식만 설명. A 테이블은 소스이자 타겟테이블.
30: 코드 리뷰 MySQL_to_Redshift_v2.py 35번째 줄 쿼리문에 나오는.. 익숙한 이 문법. 장고 템플릿엔진 속 이 문법이 바로 jinja 라고 한다.. !!!!!!!!!!!!
41: 마이시퀄 투 레드시프트 코드작성할 때 별다른 대그/코드 작성하지 않고도 지원해주는 오퍼레이터 사용해 중간에 에스스리 끼고 서로 데이터 이동하는 일 많이 했다. 요새 그 어떤 데베/데웨든 간에 에어플로가 사실상 외부에서 내부로 데이터 갖고 오는 파이프라인 작성의 표준과 같아졌기 때문에 관련 기능/오퍼레이터 다량 지원중.
둘다 성공!
정리
42: 파이프라인이 너무 많으면 이걸 누가 작성한건지 기억할 수도 없는 등... 그럴수록 데이터 품질 관리 힘들어진다. 갈수록 중요해 지는 건 데이터 품질 관리에 대한 부분이다. 파이프라인의 오너가 누군지 기록해둬야 함. 계속 쓰는거 맞는지 확인해보고 안쓰면 삭제하는 등의 일이 필요하다.
'Data > 데엔 데브코스 TIL' 카테고리의 다른 글
13주차 Airflow 고급 3일차 (0) | 2024.01.05 |
---|---|
13주차 Airflow 고급 1,2일차 (0) | 2024.01.02 |
10주차: 데이터 파이프라인, Airflow (4) (0) | 2023.12.19 |
10주차: 데이터 파이프라인, Airflow (3) (0) | 2023.12.13 |
10주차: 데이터 파이프라인, Airflow (1, 2) (0) | 2023.12.12 |