프로그래머스 152

dbt 소개 및 설치

강의 dbt "DBT"(Data Build Tool)은 ELT용 오픈소스 입니다. 데이터 웨어하우스 지원 : Redshift, Snowflake, Bigquery, Spark 클라우드 버전 존재 : dbt Cloud dbt 구성 컴포넌트 models 테이블을 티어로 관리 : CTAS, Lineage 트래킹 Table, View, CTE tests snapshots "Fact 테이블"은 분석의 초점이 되는 양적 정보를 포함하는 중앙 테이블 입니다. "Dimension 테이블"은 Fact 테이블에 대한 상세 정보를 제공하는 테이블 입니다. 사용 목적 데이터 변경 사항 이해 및 롤백 가능 데이터간 리니지 확인 가능 데이터 품질 테스트 및 에러 보고 Fact 테이블 증분 로드 (Incremental Update..

Database Normalization

강의 Database Normalization "Database Normalization"는 데이터베이스를 조직적이고 일관된 방법으로 디자인하는 방법 입니다. Primary Key Composite Key Foreign Key 단계별 종류 1NF(First Normal Form) 중복을 제거 atomicity 만족 2NF(Second Normal Form) 1NF 만족 Primary Key 중심 의존결과 확인 가능 부분적인 의존도 제거 3NF(Third Normal Form) 2NF 만족 전이적 부분 종속성 제거 Slowly Changing Dimensions SCD Type 0 : 갱신하지 않고 처음 그대로 고정 SCD Type 1 : 생성 후에 작성하여 고정 SCD Type 2 : 생성 및 작성 후에..

Dynamic Dags

강의 Dynamic Dags "Dynamic Dags"는 템플릿과 YAML을 기반으로 만들 수 있습니다. 비슷한 DAG를 매뉴얼하게 개발하는 것을 방지할 수 있습니다. # config_appl.yml dag_id: 'APPL' schedule: '@daily' catchup: False symbol: 'APPL' # config_googl.yml dag_id: 'GOOG' schedule: '@weekly' symbol: 'GOOG' # generator.py from jinja2 import Environment, FileSystemLoader import yaml import os file_dir = os.path.dirname(os.path.abspath(__file__)) env = Environ..

Dag Dependencies

강의 Dag 실행 방법 주기적 실행 : Schedule로 지정 Dag에 의한 트리거 Explicit Trigger : TriggerDagOperator Reactive Trigger : ExternalTaskSensor 조건에 따른 분기 : BranchPythonOperator 불필요한 태스크 처리 : LatestOnlyOperator Trigger Rules "Trigger Rules"는 Upstream 태스크의 성공 혹은 실패 상황에 따라 이어질 태스크의 실행 여부를 결정하는 파라미터 입니다. all_success all_failed all_done one_success none_failed none_failed_min_one_success TriggerDagOperator from airflow.o..