dbt는 ELT를 쉽게 해주는 툴이다.
ETL을 하는 이유는 결국 ELT를 하기 위함이다.
이때 데이터 품질 검증이 중요해진다.
데이터 품질유지는 결국
비용/노력 감소와 생산성 증대의 지름길이 된다.
아래의 노력들을 통해 데이터 품질을 유지할 수 있다.
데이터 베이스를 좀 더 조직적이고 일관된 방법으로 디자인하려는 방법.
Primary Key
Composite Key
Foreign Key

Database Normalization의
1NF, 2NF, 3NF 등의 Normalization과 SCD Type들에 대해 배워보자
1NF를 만족 후 다음으로 Primary Key를 중심으로 의존결과를 알 수 있어야한다.
각각의 Pimary Key가 결합된 형

부분적인 의존도가 없어야함


데이터를 데이터 웨어하우스에 적재할 때에 히스토리를 유지하는 것이 중요하다.
이를 유지하게 해주는 것이 바로 SCD 타입개념!
하지만 일부 속성들은 시간을 두고 변하게 되기 때문에
이미 적재된 상태에서 변화된 속성을 어떻게 반영해야 되는지 알아보자.
한번 쓰고 나면 바꿀 이유가 없는 경우들을 SCD Type 0으로 지정한다.
예시) 회원 등록일, 제품 첫 구매일
데이터가 새로 생기면 덮어쓰면 되는 컬럼들
처음 레코드 생성시에는 존재하지 않았지만 나중에 생기면 채우는 경우
예시) 고객 연간 소득
특정 범주형 키에 대한 데이터가 새로운 레코드로 추가되어야 하는 경우
예시) 고객의 등급 변화
티어가 regular에서 vip로 변경될 때

SCD Type 2의 대안으로 tier를 예로 들자면
[이전tier] 컬럼, [현재 tier] 컬럼을 생성.
이렇게 되면 변경시간도 별도 컬럼으로 존재해야함
새로 업데이트 될 때 마다 컬럼이 추가 되므로 그렇게 깔끔한 방법은 아닌 듯.
특정 범주형 키에 대한 데이터를 새로운 Dimension 테이블에 저장하는 타입.
SCD Type 2의 변종이다.
예시) 별도의 테이블로 변경 내용을 저장.
일반적으로 사용되는 방법.