Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- UI for kafka
- CDC
- kafka
- k9s
- mysql
- ksql
- 모바일
- freshness
- Materializations
- polars
- proerty
- airflow
- DBT
- docker
- Python
- spark
- 카프카
- query history
- 윈도우
- numpartitions
- 쿠버네티스
- 도커
- bar cahrt
- dbt_project
- spring boot
- 파이썬
- 크롤링
- Java
- 동적 차트
- KubernetesPodOperator
Archives
- Today
- Total
데이터 엔지니어 이것저것
dbt Materializations 본문
728x90
dbt_project.yml 에서 models 부분에 +materialized 값들이 있다.
이는 dbt 실행 후 생성할 결과물을 설정하는 값이다.
5가지 타입으로 결과물을 저장할 수 있다.
- table
- view
- incremental
- ephemeral
- materialized view
view : view를 다시 생성
장점 : 추가 데이터가 저장되지 않으며, 항상 최신의 데이터가 보임
단점 : 변환을 수행하거나, 다른 뷰 위의 뷰는 속도가 느리다
- 일반적인 모델의 경우 뷰로 시작을 하고, 성능 이슈가 생길때 다른 옵션을 사용
- 중요 변환작업이 없을 경우 사용하기 좋음
table : table 다시 생성
장점 : 쿼리 속도가 빠르다
단점 : 복잡한 변환 작업을 수행할 경우, 테이블 생성에 시간이 오래 걸린다, 신규 데이터의 새 레코드가 추가가 안된다.
- BI 에서 쿼리하는 경우 테이블로 생성하여 속도 향상
- 많은 모델에서 참조 될 경우 테이블 구체화
incremental : 마지막 실행된 이후 테이블에 레코드 삽입 또는 업데이트
장점 : 새로운 기록에만 대응함으로, 빌드 시간을 대폭 단축
단점 : 추가 구성이 필요
- 이벤트 스타일의 데이터에 가장 적합
- 속도가 너무 느려지면 해당 기능 사용, 처음부터 시작하기엔 추천하지않음
ephemeral : 메모리에만 존재하며 참조 테이블로 다른 쿼리와 함께 사용하기 위함
장점 : 관리하기 쉽고, 이해하기 쉽게 만든다
단점 : 과도한 사용시 디버깅이 어려워 진다
- 초기에 수행되는 가벼운 변환에 사용 추천
- 1~2개에서만 사용되는 모델
- 직접 쿼리할 필요가 없을 경우
materialized view : 구체화된 뷰를 생성하고 유지, 관리
옵션
- apply (default) : 가능하면 기존 DB 개체를 업데이트하려고 시도
- 만약 전체 새로 고침이 필요할경우 alter 대신 전체 새로고침이 수행
- continue : 객체가 최신상태라면 경고를 하며 실행
- fail : 변경 사항이 감지되면 실행이 강제로 실패
장점 : 테이블의 쿼리 성능과 뷰의 데이터 최신성을 결합
단점 : 복잡하기 때문에 사용 가능한 옵션이 적음, 일부 미지원
728x90
'오픈소스 > dbt' 카테고리의 다른 글
dbt docs (0) | 2023.11.19 |
---|---|
dbt packages (0) | 2023.11.19 |
dbt macros (0) | 2023.11.15 |
dbt_project.yml (0) | 2023.11.15 |
dbt test (0) | 2023.11.14 |