invalidate_hard_deletes

invalidate_hard_deletes (레거시)

쿼리를 스냅샷할 때 하드 삭제된 레코드를 무효화하는 기능을 켜는 레거시 옵트인 설정이에요. 이건 레거시 설정이므로, 대신 hard_deletes 설정을 사용하는 걸 권장해요.

출처: dbt 공식 문서

본문

이 설정은 레거시 설정이에요. — 대신 hard_deletes 설정을 사용해요.

dbt 릴리스 트랙과 dbt 1.9 이상에서 hard_deletes 설정이 invalidate_hard_deletes 설정을 대체해, 소스에서 삭제된 행을 처리하는 방식을 더 세밀하게 제어할 수 있게 해요.

새 스냅샷에는 invalidate_hard_deletes=true 대신 hard_deletes='invalidate'로 설정하세요. 기존 스냅샷에는 이 설정을 활성화하기 전에 기존 테이블의 업데이트를 미리 준비해 두세요.

(dbt v1.9 이상에 적용돼요.)

snapshots/.yml

snapshots:
  - name: snapshot
    relation: source('my_source', 'my_table')
    config:
      strategy: timestamp
      invalidate_hard_deletes: true | false

dbt_project.yml

snapshots:
  <resource-path>:
    +strategy: timestamp
    +invalidate_hard_deletes: true

설명

쿼리를 스냅샷할 때 하드 삭제된 레코드를 무효화하는 기능을 켜는 옵트인 설정이에요.

기본값

기본적으로 이 기능은 비활성화돼 있어요.

예시

(dbt v1.9 이상에 적용돼요.)

snapshots/orders.yml

snapshots:
  - name: orders_snapshot
    relation: source('jaffle_shop', 'orders')
    config:
      schema: snapshots
      database: analytics
      unique_key: id
      strategy: timestamp
      updated_at: updated_at
      invalidate_hard_deletes: true

더 알아보기 (Learn more)