dbt snapshotのHard deletesの挙動を確認する
7561 ワード
概要
dbt snapshotのhard deletesってどんな感じで振る舞うんだろうってのを確かめている記事です
通常のsnapshot
データの準備
create or replace table lake.member
as
select
member_id,
age
from
(
select "hoge" as member_id, 12 age union all
select "fuga" as member_id, 10 age
)
snapshotをとる
{% snapshot member %}
{{
config(
target_schema="snapshots",
unique_key="member_id",
strategy="check",
check_cols=[
"age"
]
)
}}
select
member_id,
age
from lake.member
{% endsnapshot %}
データを消す
create or replace table lake.member
as
select
member_id,
age
from
(
select "fuga" as member_id, 10 age
)
再度snapshotをとる
変わらない
hard deleted
データの準備
create or replace table lake.member
as
select
member_id,
age
from
(
select "hoge" as member_id, 12 age union all
select "fuga" as member_id, 10 age
)
snapshotをとる
{% snapshot member %}
{{
config(
target_schema="snapshots",
unique_key="member_id",
strategy="check",
check_cols=[
"age"
],
invalidate_hard_deletes=True,
)
}}
select
member_id,
age
from lake.member
{% endsnapshot %}
データを消す
create or replace table lake.member
as
select
member_id,
age
from
(
select "fuga" as member_id, 10 age
)
再度snapshotをとる
dbt_valid_to
にタイムスタンプが入るんですねー
なるほど
Author And Source
この問題について(dbt snapshotのHard deletesの挙動を確認する), 我々は、より多くの情報をここで見つけました https://zenn.dev/tenajima/articles/209694b892ef6d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Collection and Share based on the CC protocol