0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

dbt Clickhouseのsnapshotにおいて、Delete部分が反映されない件

Posted at

ISSUE

ETLツール(dbt)においてsnapshotと呼ばれる機能があります。

弊社環境においてInsertおよびUpdateはうまく反映されるのに
なぜかDELETEがスナップショットに反映されない場合がありましたので共有します。

TL;DR

1,DELETE反映する際は、invalidate_hard_deletes=True を付与すること。
 
2.Snapshotに定義するunique_key列はNULLキーを許容しましょう。

テーブル作成用
CREATE TABLE dwh_dev.test
	(
-	uuid UUID,            --NULLを許容しない
+	uuid Nullable(UUID),  --NULLを許容する  
	uuid2 Nullable(String),
	value Nullable(String),
	update_date timestamp
	)
ENGINE = MergeTree
ORDER BY tuple()
スナップショット用
{% snapshot test1 %}

{{
  config(
    target_schema='snapshots',
    unique_key='uuid',                   -- NULLキーを許容するカラムを指定すること。
    strategy='timestamp',
    invalidate_hard_deletes=True,        -- ソース元のDELETEを反映する際は指定する。
    updated_at='upd'
  )
}}

select * from {{ source('dwh_dev','test1') }}

{% endsnapshot %}

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?