[新機能]dbt Cloudで生成AIを用いた開発が行える「dbt Copilot」が一般提供となりました

[新機能]dbt Cloudで生成AIを用いた開発が行える「dbt Copilot」が一般提供となりました

Clock Icon2025.03.25

さがらです。

先日、dbt Copilotが一般提供となりました!dbt Cloud Enterpriseで利用できます。

https://docs.getdbt.com/docs/dbt-versions/dbt-cloud-release-notes#march-2025

https://docs.getdbt.com/docs/cloud/dbt-copilot

実際にdbt Copilotを試してみたので、本記事でその内容をまとめてみます。

dbt Copilotの仕様

以下は公式DocのHow dbt Copilot worksから引用して翻訳した情報ですが、dbt Copilotはこのような仕様となっています。

  • dbt Cloud IDE を通じて dbt Copilot にアクセスし、ドキュメント、テスト、セマンティックモデルを生成したり、Visual Editor(ベータ版)で自然言語プロンプトを使用してSQLコードを生成したりできます。
  • dbt Copilot はメタデータ(カラム名、モデルSQL、ドキュメントなど)を収集しますが、行レベルのウェアハウスデータにはアクセスしません。
    • つまり、各レコードの値まで見たコード生成は不可能
  • メタデータとユーザープロンプトは、処理のためにAPI呼び出しを通じてAIプロバイダー(この場合はOpenAI)に送信されます。
  • AI生成コンテンツはdbt Cloudに返され、ユーザーがレビュー、編集、保存できます。
  • dbt CopilotはAIモデルのトレーニングにウェアハウス上の実データを使用しません。
  • 使用データを除き、機密データはdbt Labsのシステムに永続的に保存されません。
  • ユーザーがクエリに挿入した個人情報や機密データを含むクライアントデータは、OpenAIによって30日以内に削除されます。
  • dbt Copilotはベストプラクティススタイルガイドを使用して、チーム間の一貫性を確保します。

より詳細は、以下のよくある質問がまとめられた公式Docも参考になると思います。

https://docs.getdbt.com/docs/cloud/dbt-copilot-faqs

dbt Copilotの有効化

まず、dbt Copilotを有効化します。

https://docs.getdbt.com/docs/cloud/enable-dbt-copilot

Account settingsを開いて、SettingsからEnable account access to dbt Copilot featuresを有効化します。その後、右上のSaveを押して保存すればOKです。

2025-03-25_06h13_13

dbt Copilotを試してみた~yaml生成編~

まず、既存のModelからドキュメント・テスト・Semantic Model等のyaml生成を行うことを試してみます。

dbt Copilotを有効化すると、右側にdbt Copilotというボタンが表示されるため、これを押すとどのyamlを生成するかを選ぶことが出来ます。

2025-03-25_06h18_32

Documentation

まず、Documentationを生成する機能を試してみます。

前提として、対象のモデルcustomers.sqlについて事前にschema.ymlは作成済で、下図のような内容です。

2025-03-25_06h23_04

この上で、customers.sqlの編集画面で、Documentationを押してみます。

2025-03-25_06h20_07

すると、編集画面がcustomers.sqlを定義しているschema.ymlファイルに遷移し、下図のように定義していなかったカラムのDescriptionが自動で追加されました!

2025-03-25_06h24_58

Generic Tests

次に、Generic Testsを生成する機能を試してみます。

前提として、対象のモデルcustomers.sqlについて事前にschema.ymlは作成済で、下図のような内容です。

2025-03-25_06h23_04

この上で、customers.sqlの編集画面で、Generic Testsを押してみます。

2025-03-25_06h29_44

すると、編集画面がcustomers.sqlを定義しているschema.ymlファイルに遷移し、下図のように定義していなかったカラムが追加されて、first_namelast_nameに関してはnot_nullが追加されました!

ただ、1行目に謎のnullが追加されたことは気になりました…

2025-03-25_06h34_18

Semantic Model

次に、Semantic Modelを生成する機能を試してみます。

前提として、対象のモデルcustomers.sqlについて事前にschema.ymlは作成済ですが、下図のようにSemantic Modelは定義していない状態です。

2025-03-25_06h23_04

この上で、customers.sqlの編集画面で、Semantic Modelを押してみます。

2025-03-25_06h37_42

すると、新しいファイルsem_customers.ymlが新しいフォルダsemantic_modelsと共に生成され、下図のように出力されました!

2025-03-25_06h39_37

dbt Copilotを試してみた~SQL生成編~

次に、dbt CopilotのSQL生成機能を試してみます。

新しいSQLの生成

まず、新しいSQLを作成することを試してみます。

新しいファイルを作成し、Cmd+B (Mac) または Ctrl+B (Windows) を押して、編集用のプロンプトウィンドウを開きます。

2025-03-25_06h47_57

表示されたプロンプトウィンドウの中で、「stg_customersとstg_ordersをJOINして分析するためのMART層のモデルを生成して」と聞いてみます。

2025-03-25_06h49_43

すると、下図のように新しいSQLが生成されました!

2025-03-25_06h50_23

既存のSQLの修正

次に、既存のSQLを修正してみます。

既に記述済のモデルファイルから、Copilotで編集を行いたい箇所をマウスオーバーして、Cmd+B (Mac) または Ctrl+B (Windows) を押して、編集用のプロンプトウィンドウを開きます。

2025-03-25_06h52_59

表示されたプロンプトウィンドウの中で、「これらのカラムを全て日本語のカラムに変更して」と聞いてみます。

2025-03-25_06h54_12

すると、修正前が背景赤、修正後が背景緑の形でクエリが修正されました!

2025-03-25_06h55_17

しかし、このままだとSnowflakeでは日本語カラム名は"で囲っていないとエラーになりますし、名前に関するカラム名がという表記になってしまっています。

そのため、一度この結果をAcceptした上でもう一度プロンプトウィンドウを開き、「・日本語カラム名は”で囲って ・名前に関するカラムはユーザー_姓またはユーザー_名という表記にして」と伝えてみます。

2025-03-25_07h02_37

すると、意図に沿った形に修正されました!

2025-03-25_07h03_19

最後に

dbt Copilotが一般提供となったので試してみました。

これまでyamlなど手書きで書くのはなかなか辛いところがあったので、この機能があると非常に楽になると感じました。SQLの生成機能も、ベースとなるSQLを作成したり、今回試したように日本語カラムに変更する際にとても役立ちそうです。

dbt Cloud Enterpriseをご利用の方は、ぜひ試してみてください!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.