ssung_데이터 엔지니어링/11주차_Airflow 고급 4

Airflow 고급_(5)

DBT Seeds 많은 Diension 테이블은 크기가 작고 많이 변하지 않음 이를 파일 형태로 데이터 웨어하우스에 로드하는 방법 (Seeds는 작은 파일의 데이터를 가리키고 이는 주로 csv파일) root 폴더에서 dbt seed를 실행하여 빌드 DBT Sources Staging 테이블 생성 시 입력 테이블이 자주 바뀔 때 즉, models의 .sql 파일들을 일일이 찾아 바꿔주어야 하는 경우 이 번거로움을 해결하기 위해 Sources를 사용 입력 테이블에 별칭 (Alias)을 주고 별칭을 staging 테이블에서 사용 기본적으로 처음 입력이 되는 ETL 테이블을 대상으로 함 별칭을 제공 최신 레코드 체크 기능 제공 테이블 이름에 별칭 (Alias)를 부여 ETL 단의 소스 테이블이 바뀌어도 뒤에 영..

Airflow_고급(4)

Data Normalization 데이터베이스를 조금 더 조직적이고 일관화 된 방법으로 디자인하려는 방법 데이터베이스의 정합성을 쉽게 유지하고 레코드들을 수정/적재/삭제를 용이하게 함 Normalization에 사용되는 개념 Primary Key Composite Key Foreign Key 1NF (Frist Normal Form) - 중복된 키를 제거하고 atomicity 한 것이 목표 한 셀에는 하나의 값만 있어야 함 (atomicity) Primary 키가 있어야 함 중복된 키나 레코드 값이 없어야 함 2NF (Second Normal Form) 1NF를 만족해야 함 다음으로 Primary 키를 중심으로 의존결과를 알 수 있어야 함 부분적인 의존도가 없어야 함 즉, 모든 부가 속성들을 Primar..

Airflow 고급_(3)

Dag Dependencies Dag 실행 방법 주기적 실행 : schedule로 지정 다른 Dag에 의해 트리거 Explicit Trigger : Dag A가 분명하게 Dag B를 트리거 (TriggerDagRunOperator) Reactive Trigger : Dag B가 Dag A가 끝나기를 대기 (ExternalTaskSensor) 상황에 따라 다른 테스크 실행 방식 BranchPythonOperator : 조건에 따라 다른 테스크로 분기 LatestOnlyOperator : 과거 데이터 Backfill 시에는 불필요한 테스크 처리 앞 단의 테스크들의 상황에 따라 실패해도 후위의 테스크가 동작해야하는 경우가 있을 수 있음 Explicit trigger TriggerDagRunOperator Da..

Airflow 고급_(1), (2)

Airflow 실행환경 관리방안 기타 환경설정 값들 (Variables, Connections 등등)을 어떻게 관리하고 배포하는가? 주로 docker-compose.yml(yaml) 파일의 아래 부분에 정의 (환경변수가 아니라 별도 credentials 전용 Secrets 백엔드라는 것을 사용하기도 함) enviroment: &airflow-common-env AIRFLOW_VAR_DATA_DIR: /opt/airflow/data AIRFLOW_CONN_TEST_ID: test_connection Airflow 이미지를 통해 어디까지 관리하고 무엇을 docker-compose.yml에서 관리할지 생각 회사마다 조금씩 다름 Airflow 자체 이미지를 만들고 거기에 넣을 경우 환경변수를 자체 이미지에 넣고..

728x90