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

Airflow 고급_(5)

ssungcohol 2024. 1. 5. 17:04

DBT Seeds

  • 많은 Diension 테이블은 크기가 작고 많이 변하지 않음
  • 이를 파일 형태로 데이터 웨어하우스에 로드하는 방법
    (Seeds는 작은 파일의 데이터를 가리키고 이는 주로 csv파일)
  • root 폴더에서 dbt seed를 실행하여 빌드

DBT Sources

  • Staging 테이블 생성 시 입력 테이블이 자주 바뀔 때 즉, models의 .sql 파일들을 일일이 찾아 바꿔주어야 하는 경우
  • 이 번거로움을 해결하기 위해 Sources를 사용
  • 입력 테이블에 별칭 (Alias)을 주고 별칭을 staging 테이블에서 사용
  • 기본적으로 처음 입력이 되는 ETL 테이블을 대상으로 함
    • 별칭을 제공
    • 최신 레코드 체크 기능 제공
  • 테이블 이름에 별칭 (Alias)를 부여
    • ETL 단의 소스 테이블이 바뀌어도 뒤에 영향을 주지 않음
    • 추상화를 통한 변경처리를 용이하게 함
    • 별칭은 source 이름과 새 테이블 이름의 두 가지로 구성

DBT Snapshots

  • Dimension 테이블은 성격에 따라 변경이 자주 생길 가능성이 큼
  • dbt에서는 테이블의 변화를 계속적으로 기록하여 과거 어느 시점이건 다시 돌아가 테이블의 내용을 볼 수 있는 기능
    • 테이블 문제 발생 시 과거 데이터로 롤백 가능
    • 디버깅이 쉬워짐
  • snapshot 처리 방법
    • snapshots 폴더에 환경설정
    • snapshots을 하려면 데이터 소스가 일정 조건을 만족해야 함
       - primary key 존재 필요
       - 레코드 변경시간 (timestamp)필요 (updated_at, modified_at 등등..)
    • 변경 감지 기준
       - primary key 기준으로 변경시간이 현재 DW에 있는 시간보다 미래인 경우
    • Snapshots 테이블에는 총 4개의 타임스탬프 존재
       - dbt_scd_id, dbt_updated_at, valid_from, valid_to

데이터 카탈로그

  • 데이터 자산 메타 정보 중앙 저장소
  • 데이터 거버넌스의 첫 걸음
    • 많은 회사에서 데이터 카탈로그를 데이터 거버넌스 툴로 사용하거나 데이터 카탈로그 위에 커스텀 기능을 구현
  • 데이터 카탈로그의 중요한 기능
    • (반)자동화된 메타 데이터 수집
    • 데이터 보안 (보통의 경우 메타 데이터만 읽어오는 경우가 많음)
  • 데이터 거버넌스 관점에서 데이터 카탈로그의 중요성
    • 가지고 있는 데이터 자산에 대한 통합 뷰 제공
    • 생산성 증대 : 설문이나 데이터 티켓의 감소로 확인
    • 위험 감소 : 잘못된 결정과 개인정보 등의 전파 방지
    • 인프라 비용 감소 : 불필요한 정보의 생성 방지와 안 쓰이는 데이터셋 삭제
    • 데이터 티켓 감소
    • 데이터 변경으로 인한 이슈 감소
       - 컬럼 레벨의 리니지와 CI/CD 프로세스 연동
728x90

'ssung_데이터 엔지니어링 > 11주차_Airflow 고급' 카테고리의 다른 글

Airflow_고급(4)  (1) 2024.01.04
Airflow 고급_(3)  (0) 2024.01.03
Airflow 고급_(1), (2)  (2) 2024.01.03