[小ネタ]Fivetranのdbt Transformationで出力先のデータベースを変更する方法

2023.11.02

さがらです。

小ネタですが、Fivetranのdbt Transformationで出力先のデータベースを変更する方法についてまとめます。

Fivetranのdbt Transformationとは

dbtで開発した処理を、Fivetran上で実行できる機能です。

2023年11月2日時点では、dbtのコードを保持するGitHubなどのリモートリポジトリと連携することで対象のリポジトリのdbtのコードを読み取り、Fivetran上で実行することができます。Fivetranのデータロードが完了したことをトリガーにdbtの処理を実行できるのも便利な点ですね。

下記のブログでも手順をまとめていますので、こちらも参考になると幸いです。

  • スケジューリング設定をFivetran上の画面設定で行う方法

  • スケジューリング設定をdbtのコード上で定義して行う方法

背景

dbt Transformationの設定を行う際、デフォルトの設定のまま進めると、「Fivetranがロードするデータベース」と「dbt加工を行った結果を保持するデータベース」が同じデータベースになってしまいます。

Fivetran用のデータベースはただでさえ複数のコネクタが混在してスキーマが多くなりがちなのに、さらにdbtで加工した結果まで別スキーマに保持されたら、管理が大変になってしまいますよね。

そのため、「dbt Transformationの出力先を違うデータベースにしたい」という要望は多々あると感じています。

結論:設定の「Credentials」で「Use dedicated credentials」を選択しましょう

ということでいきなり結論なのですが、dbt Transformationの設定の際、「Credentials」で「Use dedicated credentials」を選択すればOKです!

デフォルトだと、「Use connector credentials」となっているのでこのままだとDestinationに設定されているデータベースがそのままdbtの出力先として使われてしまいます。

しかし、「Use dedicated credentials」を選択すると、改めて使用するウェアハウス、出力先のデータベース、使用するユーザーとロール、を設定することができます。

やってみた

Destinationの設定はsagara_fivetran_db、dbt Transformationの設定は「Use dedicated credentials」でsagara_dbt_demo_dbを選択します。

ちなみに、dbt Transformationでの出力先のスキーマは「Default Schema Name」から設定可能です。ここではproductionを指定しておきます。

注意点として、2023年11月2日時点では初回の設定時のみしか「Default Schema Name」を設定できず、以降は変更することができません。「Default Schema Name」を変更するためには、一度dbt Transformationの設定を削除する必要があり、Fivetranサポートに問い合わせが必要となります。

この状態で下図のTransformationを実行すると、無事にdbtで生成されるオブジェクトがsagara_dbt_demo_dbに出力されました!

最後に

簡単ですが、Fivetranのdbt Transformationで出力先のデータベースを変更する方法についてまとめてみました。

出力先のデータベースを変更したいことのほうが多いと思いますので、その際はぜひ試してみてください!