본문 바로가기

프로그래머스데브코스

[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] 8주차_Day35: 데이터 웨어하우스 관리, 고급 SQL, BI 대시보드 (5) 💡Today I Learned 데이터 웨어하우스, SQL, BI 대시보드에 대한 다섯 번째 수업을 진행했습니다. Superset 이용한 대시보드 실습 1. 다양한 시각화 툴 - 시각화 툴이란 : 대시보드 or BI(Business Intelligence) : KPI(Key Performance Indicator), 백엔드 관계형 DB/데이터 웨어하우스의 데이터 기반으로 계산/분석/표시 : 데이터 퀄리티가 중요 → ELT를 통한 summary 테이블을 사용하는 것이 일반적 (by. 데이터 분석가) : 의사결정권자들의 데이터 기반 결정을 위함 *) Citizen Data Analyst: 현업 종사자들(데이터 인력이 아닌)이 대시보드를 직접 만들고 KPI를 정의, 팀에 필요한 작업을 중앙 데이터 팀을 통하지 .. 더보기
[TIL] 8주차_Day34: 데이터 웨어하우스 관리, 고급 SQL, BI 대시보드 (4) 💡Today I Learned 데이터 웨어하우스, SQL, BI 대시보드에 대한 네 번째 수업을 진행했습니다. Snowflake 실습 1. Snowflake - Snowflake 특징 : 가변비용 모델임 → 컴퓨팅 인프라 & 스토리지가 별도로 설정 : 노드 수를 조정할 필요 x (Scale out), distkey 등의 최적화 필요 x : 데이터 클라우드 이기도 o : 자체 스토리지 이외에도 클라우드 스토리지를 외부 테이블로 사용 가능 : 멀티 클라우드 지원 : 다른 지역의 Snowflake DB 간의 데이터 공유 (cross-region) : Semi-structured data (JSON 네이티브하게 지원 o) ... → Redshift보다 강력함 : 한 organization(조직) > 안에 여러 .. 더보기
[TIL] 8주차_Day33: 데이터 웨어하우스 관리, 고급 SQL, BI 대시보드 (3) 💡Today I Learned 데이터 웨어하우스, SQL, BI 대시보드에 대한 세 번째 수업을 진행했습니다. Redshift 스냅샷, Spectrum, SageMaker을 이용한 ML 실습 1. Redshift의 권한/보안 - IAM Role : AWS 리소스 관련 권한 설정 서비스 : 역할(Role) 혹은 그룹(Group) 별로 스키마별 접근 권한을 주는 것이 일반적 : 사용자 집합 = 그룹, 테이블 집합 = 스키마 : 역할(계승 o → 포함관계, 상속 느낌), 그룹(계승 x) GRANT [권한 옵션] ON SCHEMA [스키마 이름] TO GROUP [그룹 이름]; GRANT [권한 옵션] ON ALL TABLES IN SCHEMA [스키마 이름] TO GROUP [그룹 이름]; : 컬럼 레벨의 .. 더보기
[TIL] 8주차_Day32: 데이터 웨어하우스 관리, 고급 SQL, BI 대시보드 (2) 💡Today I Learned 데이터 웨어하우스, SQL, BI 대시보드에 대한 두 번째 수업을 진행했습니다. Redshift (Trial) 설치, Redshift 초기 설정 (스키마, 그룹, 유저), Redshift COPY 명령으로 테이블에 레코드 적재하기 관련 실습 진행 1. Redshift의 특징 - Overall : AWS에서 지원하는 데이터 웨어하우스 서비스 : OLAP(Analytical) → 응답속도가 빠르지 x, 프로덕션 DB로는 사용불가 : 컬럼 기반 스토리지 → 레코드(row)가 아닌 컬럼(속성)별로 저장함, 컬럼별 압축이 가능, 컬럼 추가/삭제가 빠름 : 벌크 업데이트 → 레코드가 들어있는 파일을 S3(AWS 스토리지)로 복사 후 COPY 커맨드로 Redshift에 일괄 복사 : .. 더보기
반응형