본문 바로가기

Airflow

[TIL] 10주차_Day45: 데이터 파이프라인, Airflow (5) 💡Today I Learned 데이터 파이프라인과 Airflow에 대한 다섯 번째 수업을 진행했습니다. Production DB to Data Warehouse DAG, Backfill 실습 1. Review - start_date, execution_date, DAG의 첫 실행 날짜 1. start_date: DAG가 읽어와야 할 데이터의 시점 (ex: 매일 1번 실행되는 DAG의 start_date = 2021/02/05이라면 DAG의 첫 실행 날짜 = 2021/02/06) → 5일의 데이터 읽고싶음 = 5일에 쌓인 모든 데이터를 6일에 실행해서 읽어와야 함 2. execution_date: DAG가 처음 읽어와야하는 데이터의 날짜, 따라서 DAG 실행동안 변경되지 x, 각 task가 실행될 때 사용.. 더보기
[TIL] 10주차_Day43: 데이터 파이프라인, Airflow (3) 💡Today I Learned 데이터 파이프라인과 Airflow에 대한 세 번째 수업을 진행했습니다. DAG 작성 실습 1. Airflow 예제 프로그램 살펴보기 - PythonOperator : 태스크 실행 (내부에 dag와 task 지정) : python_callable = [파이썬으로 짠 task_함수명 지정] → PythonOperator의 entry 함수 : params = {딕셔너리 형태} → task 함수(즉, entry 함수)에 공통으로 적용되는 파라미터, task함수로 전달하고 싶은 인자들 - Airflow Decorators 사용하기 from airflow.decorators import task @task def print_hello(): print("hello!") return "h.. 더보기
[TIL] 10주차_Day42: 데이터 파이프라인, Airflow (2) 💡Today I Learned 데이터 파이프라인과 Airflow에 대한 두 번째 수업을 진행했습니다. Airflow 설치 및 실습 1. 트랜잭션 이해하기 - 테이블 업데이트 (Full Refresh vs. Incremental Update) TRUNCATE: 조건 x, 테이블의 모든 레코드 삭제, SQL 트랜잭션 무시 DELETE FROM: 조건에 맞는 레코드 삭제, SQL 트랜잭션 준수 - 트랜잭션이란? : BEGIN ~ COMMIT/END or ROLLBACK auto commit = True: 기본적으로 모든 SQL 문이 물리적인 테이블 공간에 바로 커밋됨, BEGIN~END로 바꿀 수 있음 auto commit = False: 모든 operation이 자동으로 커밋되지 않음, 모두 staging .. 더보기
[TIL] 10주차_Day41: 데이터 파이프라인, Airflow (1) 💡Today I Learned 데이터 파이프라인과 Airflow에 대한 첫 번째 수업을 진행했습니다. Airflow 설치 및 실습 1. 데이터 파이프라인(=ETL) 소개 - 데이터 웨어하우스 구성 1️⃣데이터 소스(프로덕션 DB, 트랜잭션 데이터, 유저 데이터, 콜 데이터, 세일즈 데이터, ...) → 다수의 ETL → 2️⃣Airflow+데이터 웨어하우스 (요약 테이블 만들기 = ELT = 데이터 분석) → 3️⃣대시보드 - ETL : ETL = Extract(데이터 소스로부터 Data Dump ex: 파일 다운로드, API 호출) + Transform(원하는 형태로 변환, 추출) + Load(데이터 웨어하우스에 테이블 형태 등으로 적재) : DAG = Directed Acyclic Graph (루프 .. 더보기
[TIL] 6주차_Day25: 데이터 웨어하우스와 SQL과 데이터분석 (5) 💡Today I Learned 데이터 웨어하우스와 SQL, 데이터분석에 대한 다섯 번째 수업을 진행했습니다. SQL advanced 문법 실습 1. 트랜잭션 : atomic하게 실행돼야하는 SQL을 묶어서 하나의 작업처럼 처리 : 동시에 실행 or 롤백돼야 함 (작업 처리의 단위) : BEGIN - 트랜잭션 - END (혹은) BEGIN - 트랜잭션 - COMMIT : ROLLBACK - begin 전의 상태로 돌아감 (트랜잭션 중 하나라도 실패하면 begin 이전으로 롤백) - commit mode autocommit = True: 모든 레코드의 수정/삭제/추가 작업이 기본적으로 바로 db에 쓰여짐 (자동으로 커밋됨) / 특정 작업 트랜잭션 구성하고싶을 경우 BEGIN~END(COMMIT)/ROLLBA.. 더보기
[TIL] 6주차_Day24: 데이터 웨어하우스와 SQL과 데이터분석 (4) 💡Today I Learned 데이터 웨어하우스와 SQL, 데이터분석에 대한 네 번째 수업을 진행했습니다. Join을 이용한 실습 1. JOIN : 두 개 이상의 테이블들을 공통 필드로 merge, 합쳐진 새로운 레코드들이 만들어짐 1) INNER JOIN - 두 테이블의 교집합 레코드 2) FULL JOIN - 합집합 레코드 3) LEFT/RIGHT JOIN - JOIN 연산자 기준 왼/오 테이블은 모두 포함 (매칭되지 않는 필드는 null) 4) SELF JOIN - 자기 자신 테이블을 merge 5) CROSS JOIN - 가능한 모든 레코드 들의 조합 *) JOIN시 고려할 점 : 중복 레코드 x : 기본키의 유일성이 보장됨 2. BOOLEAN - flag is True != flag is not.. 더보기
[TIL] 6주차_Day23: 데이터 웨어하우스와 SQL과 데이터분석 (3) 💡Today I Learned 데이터 웨어하우스와 SQL, 데이터분석에 대한 세 번째 수업을 진행했습니다. group by, aggregate 함수, ctas, cte 서브 쿼리 실습 1. GROUP BY, AGGREGATE : 테이블의 레코드를 그룹핑해 그룹별로 정보를 계산 1) 그룹핑을 할 필드 결정 (하나 이상 가능) 2) GROUP BY 함수로 지정 3) 그룹별로 집계함수 계산 (COUNT, SUM, AVG, MIN, MAX, LISTAGG, ...) ex) 가장 많이 사용된 채널 (기준 a) 세션 수 b) 유니크한 사용자 수) SELECT channel, COUNT(1) AS session_count, COUNT(DISTINCT userId) AS user_count, FROM raw_data... 더보기
[TIL] 6주차_Day22: 데이터 웨어하우스와 SQL과 데이터분석 (2) 💡Today I Learned 데이터 웨어하우스와 SQL, 데이터분석에 대한 두 번째 수업을 진행했습니다. Redshift, SQL에 대한 개념과 SQL 문법을 이용한 Redshift에서의 쿼리 실습 1. Redshift 론치 데모 - Launch하고자 하는 지역 확인 → 'Seoul'에 있는 AWS region에서 Redshift launch - 외부에서 (실습_코랩 환경)에서 Redshift로 접근 가능하게 해야함 (원래 보안 설정 = 같은 aws 네트워크 안에 있는 서버에서만 접근 가능함) 2. 웹 서비스 사용자/세션 정보 - 사용자 ID: 보통 웹서비스에서는 등록된 사용자마다 부여하는 유일한 ID - 세션 ID: 세션마다 부여되는 ID (세선 = 사용자의 방문을 논리적인 단위로 나눈 것) → 하나.. 더보기
반응형