はじめに
Databricks Assistantにデータエンジニアリングエージェント(Data Engineering Agent)が登場しました(Public Preview)。これはAssistantのエージェントモードで動作する、Lakeflow Spark宣言型パイプライン(SDP)専用の自律型パートナーです。
従来のAssistantチャットモードでもコード生成は可能でしたが、エージェントモードでは大きく異なります。
| チャットモード | エージェントモード | |
|---|---|---|
| コード生成 | プロンプトに対してコードを提示 | 計画を立案し、複数ファイルを自動生成 |
| テーブル探索 | ユーザーが自分で確認 | Unity Catalogを自律的に検索 |
| パイプライン実行 | ユーザーが手動で実行 | 承認を得た上でエージェントが実行 |
| エラー修正 | エラーメッセージを貼り付けて相談 | ログを自動で読み取り、修正して再実行 |
この記事では、どのワークスペースにも存在するsamples.tpchの受発注データを使い、プロンプトだけでメダリオンアーキテクチャのパイプラインを構築する手順をステップバイステップで紹介します。
Step 1: 環境を準備する
データエンジニアリングエージェントを使うには、ワークスペースで2つの設定を有効にする必要があります。
Partner-powered AI featuresの有効化
アカウント管理者がアカウントレベルとワークスペースレベルの両方でPartner-powered AI featuresを有効にします。
- アカウントコンソールの「設定」を開く
- 「AI/ML」セクションで「Partner-powered AI features」を有効にする
参考: Partner-powered AI features
Databricks Assistant Agent Modeの有効化
ワークスペース管理者がAgent Modeプレビューを有効にします。
- ワークスペースの「設定」→「プレビュー管理」を開く
- 「Databricks Assistant Agent Mode」を有効にする
出力先の確認
エージェントが生成するパイプラインの出力先として、書き込み権限のあるカタログとスキーマが必要です。この記事ではtakaakiyayoi_catalog.de_agentを使用する想定ですが、ご自身の環境に合わせて読み替えてください。
ソースデータとして使用するsamples.tpchには以下のテーブルがあります。
-
samples.tpch.orders─ 受注データ -
samples.tpch.customer─ 顧客データ -
samples.tpch.lineitem─ 受注明細データ -
samples.tpch.nation─ 国データ -
samples.tpch.region─ 地域データ -
samples.tpch.part─ 部品データ -
samples.tpch.supplier─ サプライヤーデータ -
samples.tpch.partsupp─ 部品サプライヤーデータ
Step 2: Lakeflow Pipelines Editorでエージェントモードを起動する
データエンジニアリングエージェントはLakeflow Pipelines Editorの中で動作します。
- 左側のナビゲーションから「Pipelines」を選択する
- 「Create pipeline」から新しいパイプラインを作成する(またはLakeflow Pipelines Editorで既存のパイプラインを開く)
- 画面右上の「Assistant」アイコンをクリックしてAssistantパネルを開く
- パネル右下のトグルで「Agent」を選択する
エージェントモードに切り替えると、アシスタントペインの表示が変わり、エージェントモードと表示されます。これでデータエンジニアリングエージェントを使う準備が整いました。
補足
アシスタントのエージェントモードは、開いている画面に応じて動作が変わります。Lakeflow Pipelines Editorではデータエンジニアリングエージェントとして振る舞い、ノートブックやSQLエディタではデータサイエンスエージェントとして振る舞います。
Step 3: エージェントにパイプラインの構築を依頼する
それでは、エージェントにメダリオンアーキテクチャのパイプラインを構築してもらいましょう。以下のプロンプトを入力します。
samples.tpchのorders、customer、lineitemテーブルを使って、受注分析用のメダリオンアーキテクチャパイプラインを構築して実行してください。Bronze層で生データを取り込み、Silver層でデータをクレンジング・結合し、Gold層で顧客別の受注サマリーを作成してください。
エージェントはまず計画を提示します。
計画では通常、以下のような内容が示されます。
-
Bronze層:
samples.tpch.orders、samples.tpch.customer、samples.tpch.lineitemをそのまま取り込むマテリアライズドビューまたはストリーミングテーブル - Silver層: テーブル間のJOIN、nullの除去、型の統一などのクレンジング処理
- Gold層: 顧客ごとの受注件数、合計金額、平均金額などの集計テーブル
この計画の内容を確認して、意図通りであればそのまま進めます。修正したい場合は日本語で指示を追加できます。
Step 4: 計画を承認してコード生成・実行を進める
計画に問題がなければ、エージェントがコードの生成に取り掛かります。エージェントがファイルを作成・編集したり、パイプラインを実行したりする際には、承認を求めるダイアログが表示、あるいは確認を求めるメッセージが表示されます。
承認オプションは以下の通りです。
- Allow: この1回のアクションのみ承認する
- Allow in this thread: このAssistant会話スレッド内のアクションをすべて承認する
- Always allow: 設定を変更するまで常に承認する(注意して使用)
初回は「Allow」で1つずつ確認しながら進めることをおすすめします。エージェントの動きに慣れてきたら「Allow in this thread」に切り替えると効率的です。
エージェントがファイルを作成すると、各ファイルのコードdiffが表示されます。
![Screenshot placeholder: エージェントがBronze層のSQLファイルを生成し、コードdiffが表示されている様子]
すべてのファイル生成が完了すると、エージェントはパイプラインの実行許可を求めます。「Allow」で承認するとパイプラインが実行されます。
Step 5: 生成されたパイプラインを確認する
パイプラインの実行が完了すると、Lakeflow Pipelines EditorのUIでデータフローのDAG(有向非巡回グラフ)が表示されます。
ここで、エージェントに生成されたデータの内容を確認してもらいましょう。
Gold層の顧客別受注サマリーテーブルのレコード件数と上位10件を表示してください
エージェントはデータセットにアクセスして結果を表示してくれます。生成されたコードの中身も確認しておくとよいでしょう。左側のファイルエクスプローラーから各ファイルを開けば、SQLまたはPythonのパイプラインコードを確認できます。
Step 6: データ品質ルールを追加する
メダリオンアーキテクチャでは、Silver層でのデータ品質チェックが重要です。Lakeflow SDPのExpectation機能を使ったデータ品質ルールの追加もエージェントに依頼できます。
Silver層のテーブルにデータ品質のExpectationを追加してください。注文金額が0以上であること、顧客キーがnullでないことをチェックしてください。
エージェントは既存のSilver層のコードにExpectationを追加し、変更内容をdiffで表示します。たとえばSQLの場合、以下のようなExpectationが追加されるはずです。
CONSTRAINT valid_total_price EXPECT (o_totalprice >= 0)
CONSTRAINT valid_customer_key EXPECT (c_custkey IS NOT NULL)
承認するとパイプラインが再実行され、データ品質チェックの結果がパイプラインUIに表示されます。
Step 7: エラーの診断と自動修正を試す
データエンジニアリングエージェントの真価は、エラー発生時の自律的な修正にあります。ここでは意図的にエラーを仕込んで、エージェントの修正能力を試してみましょう。
たとえば、Silver層のファイルを手動で編集し、存在しないカラム名をExpectationに追加します。
CONSTRAINT valid_amount EXPECT (non_existent_column > 0)
この状態でパイプラインを実行するとエラーが発生します。エージェントにエラーの修正を依頼しましょう。
このパイプラインのエラーを診断して修正してください
エージェントは以下の流れで自律的にエラーを解決します。
- パイプラインのエラーログを読み取る
- 原因を特定する(この場合は存在しないカラム名)
- 修正コードを生成してdiffを表示する
- 承認を得てパイプラインを再実行する
実際の開発では、スキーマの変更やデータソースの問題など、さまざまなエラーが発生します。エージェントに原因の診断を任せることで、トラブルシューティングにかかる時間を大幅に短縮できます。
Step 8: 既存パイプラインの全体像を把握する
データエンジニアリングエージェントは、新規のパイプライン構築だけでなく、既存パイプラインの理解にも活用できます。チームメンバーが作成したパイプラインの引き継ぎや、久しぶりに触るパイプラインの内容把握に便利です。
このパイプラインの各ステップを日本語で説明してください
エージェントはパイプラインのコードを読み取り、各テーブルの役割、変換ロジック、テーブル間の依存関係などを説明してくれます。
さらに、改善提案を求めることもできます。
このパイプラインのデータ品質を改善するためのExpectationを提案してください
エージェントはデータの内容を分析した上で、適切なExpectationを提案します。これはパイプラインのドキュメント作成やコードレビューの補助としても使えるテクニックです。
Tips
カスタム指示でエージェントの出力を制御する
チームのコーディング規約や命名ルールに従ったコードを生成させたい場合は、Assistantのカスタム指示を設定できます。
- テーブル名のプレフィックスルール(例:
bronze_、silver_、gold_) - 使用する言語(SQLまたはPython)の指定
- コメントの言語(日本語で書く、など)
カスタム指示の設定方法についてはDatabricks Assistantのカスタマイズを参照してください。
Agent Skillsとの連携
Databricks Assistantのエージェントモードでは、Agent Skillsを使ってドメイン固有の機能を追加できます。たとえば、社内のデータモデリング規約や、特定の業務ロジックをSkillとして定義しておくと、エージェントがそれを踏まえたコードを生成します。
データサイエンスエージェントとの使い分け
アシスタントのエージェントモードは、画面によって異なるエージェントが起動します。
| 画面 | 起動するエージェント | 主な用途 |
|---|---|---|
| Lakeflow Pipelines Editor | データエンジニアリングエージェント | パイプライン構築・修正・実行 |
| ノートブック / SQLエディタ | データサイエンスエージェント | データ探索・分析・可視化 |
パイプラインの構築はデータエンジニアリングエージェント、構築したテーブルの分析や可視化はデータサイエンスエージェント、という使い分けが効果的です。
まとめ
この記事では、Databricksのデータエンジニアリングエージェントを使って、samples.tpchのデータからメダリオンアーキテクチャのパイプラインをプロンプトだけで構築する手順を紹介しました。
データエンジニアリングエージェントによって変わるポイントは以下の通りです。
- パイプラインの初期構築が自然言語の指示だけで完了する
- エラーの診断と修正を自律的に実行してくれる
- 既存パイプラインの全体像把握やドキュメント代わりとしても使える
- データ品質ルールの提案を受けられる
現時点ではPublic Previewであり、以下の点に注意が必要です。
- エージェントはユーザーの権限に基づいて動作するため、アクセスできるデータはユーザー自身がアクセスできるものに限られる
- 生成されたコードは実行前に内容を確認することを推奨
- 本番環境での利用はPreviewの制約を理解した上で判断
データエンジニアリングエージェントはLakeflow SDPとの統合により、パイプライン開発のワークフロー全体をカバーしています。まずはsamplesのデータで動作を確認し、自社のデータへの適用を検討してみてください。
参考リンク
- データエンジニアリングエージェントを使用する(日本語)
- Lakeflow Spark宣言型パイプライン
- Lakeflow Pipelines Editor
- Partner-powered AI features
- Databricks Assistantのカスタマイズ
- データサイエンスエージェント
- サンプルデータセット














