背景
- 仕事でdbtをバシバシ使っています*1
- データリネージやドキュメントの観点でdbtのSourcesもよく定義しています
- 手動で定義するのは大変なので、dbt-helperを使って自動でimportしていました
問題点
- 自社の環境でdbt-helperを使うと、1つのテーブルのimportにかなり時間がかかります
- 10分(!)ほど待つ必要がある
- 実装を見ると分かるのですが、dbt-helperでは対象データセット内のテーブルの一覧を取得してから、正規表現でマッチするものを最終的にimportします
- 自社の環境だと、1つのデータセット内にテーブルが大量にあるため、importに時間がかかっていました
- そもそもテーブル数が多いというのと、日付別テーブルがあるため
解決案
- dbt-helperは正規表現でimportの対象を指定できるのは便利ではありますが、自分の業務では一個一個やる場合が多かったので、その用途に合うツールを自作しました
- dbt-helperにprを送って、import対象を正規表現ではなく、単なる文字列でも指定できるようにすることも考えはしました
- が、別件で送っているprでauthorから反応が半年くらいなかったため、自分でさっと作ってしまいました
- あんまりツールがぽこぽこ生えるのはよくないかなーと思いつつ、業務で結構使うので背に腹は代えられず...
./dbt-source-importer --project my-project --dataset my_dataset --table my_table
でさっとimportできますfreshness
のdefaultの閾値を自社用に変えたテンプレートを指定したいケースなどは普通にありそうだなーと思うので、独自のテンプレートを指定することもできます
- Enjoy!!