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 |