dbt Seeds란,
- dimension 테이블들을 csv 파일로 읽기 쉽게 만들어서 DW로 로드하는 방법.
- seeds라는 폴더 밑에 적당한 .csv 파일로 생성.
- dbt seed 실행 시, 스키마 밑에 기본으로 지정된 csv 파일 이름으로 테이블이 생성되고 레코드는 csv 내용으로 채워짐.
- 예) date.csv -> CREATE TABLE date ...
dbt Sources란,
- Staging 테이블을 만들 때, models 밑에 다양한 .sql 파일들이 있고, DW의 테이블을 refer함.
- 만약 참고하는 DW의 테이블들의 이름이 변경이 될 수 있기에, 이를 관리해 주어야 함.
- raw data 테이블을 바로 사용하지 않고 별칭을 주어 해당 별칭으로 참고함. (원래 이름 : 별칭으로 맵핑된 파일 존재.)
- 처음 입력되는 ETL 테이블을 대상으로 함.
- sources.yml 파일에 원본 이름과 별칭에 대한 메타 데이터를 저장함.
version: 2
sources:
- 이를 Jinja template으로, ```raw_data.user_metadata```를 ```{{ source ("jaeho", "metadata") }}```로 사용 가능.
> Sources Freshness.
- ```dbt source freshness``` 명령으로 수행.
- yml 파일에 datestamp와 freshness 필드 추가.
- 데이터가 최신성을 만족하는지 체크할 수 있음.
> dbt snapshot이란,
- dimension 테이블은 변경이 자주 될 수 있기에 이를 history로 저장해야 함.
- SCD type 2.
- 변경 시, dbt_valid_from과 dbt_valid_to와 같은 히스토리 칼럼을 갖는 레코드 추가 및 변경됨.
- snapshots 폴더에서 환경설정.
- 대상이 되는 테이블 당 하나의 .sql 파일로 편집.
- ```dbt snapshot```으로 실행.
> dbt tests란,
- 데이터 품질을 테스트하는 방법.
- 내장 일반 테스트 (generic): unique, not null 등의 테스트 가능. models 폴더 내에 존재. (models/schema.yml)
- 커스텀 테스트 (singular): SELECT 결과가 있으면 실패로 간주. tests 폴더 내에 존재. (tests/dim_user_metadata.yml)
- ```dbt test```로 실행.
- ```dbt test --select dim_user_metadata```처럼 특정 테스트만 가능.
> dbt documentation.
- 기본 철학: 문서와 소스 코드를 최대한 가깝게 배치하자.
- 기존의 .yml 파일에 문서화 추가.
- 경량 웹 서버로 제공.
- ```dbt docs generate```로 문서 생성.
> dbt Expectations.
- dbt 확장판으로 설치 및 별도의 등록으로 사용 가능.
## 2. Data Catalog
<hr>
대부분의 IT 기업에서 사용하는 메인 데이터 거버넌스 툴.
> 데이터 카탈로그.
- 데이터 자산-메타 정보 중앙 저장소.
- 대부분 메타 정보만 읽어서 분석에 활용.
- 데이터 거버넌스의 첫걸음.
- (반)자동화된 메타 데이터 수집, 데이터 보안 등의 장점이 존재함.
- 데이터를 갖는 회사라면 무조건 사용하기를 권장.
- 효율적인 데이터 자산 관리 프레임웤.
- 비즈니스/데이터 dictionary vs. tag.
- 데이터 오너(비즈니스, 테크니컬)
- 표준화된 문서 템플릿
> 데이터 자산의 종류.
- 테이블. (데이터베이스)
- 대시보드.
- 문서/메시지. (슬랙, 깃헙, ..)
- ML feature.
- 데이터 파이프라인.
- 사용자 (HR 시스템)
> 데이터 카탈로그 주요 기능
- 주요 데이터 플랫폼 지원.
- 비즈니스 용어집 지원.
- 협업 기능 지원.
- 데이터 리니지.
- 데이터 모니터링, 감사, 트레이싱.
- 강력한 검색 기능 (통합 검색, NLP 검색).
- 데이터 추천 기능.
> 주요 데이터 플랫폼 지원.
- DW, DL : Redshift, Snowflake, BigQuery
- BI : Looker, Tableau, Redash, Power BI, Superset
- ELT : dbt, Spark, Hive
- ETL : Airflow
- NoSQL and others : Cassandra, csv, ...
- Users : LDAP, ...
> 비즈니스 용어집(Glossary).
- 권한이 있는 사람만 용어 정의 가능.
- 비즈니스 용어(예, KPIs 내에는 revenue라는 term이 존재) 정의 및 관리.
> 협업 기능 지원.
- 비즈니스 용어에 비해 좀더 비공식적인 분류 방법인 tag 지원.
- 문서화 표준 제공.
> 데이터 리니지.
- Dataset to Dataset.
- input -> Data Pipeline -> output. (airflow)
- Dashboad to Chart.
- Chart to Dataset.
- Job to Dataflow.
> 데이터 카탈로그의 중요성.
- 우리가 갖고 있는 데이터 자산에 대한 통합 뷰 제공.
- 데이터 활용에 용이함.
- 데이터 변경으로 인한 이슈 감소.
> 데이터 카탈로그 제품.
- Traditional, Open Source(Data Hub), Modern(Atlan)의 세 종류로 구분 가능.