1. 概要
これまでの 4 つのパートで構築した大規模なアーキテクチャを振り返ってみましょう。
パート 1: BigQuery Knowledge Catalog を使用して、フローズン ヨーグルトのレシピの未加工の PDF を構造化されたリレーショナル テーブルに変換しました。
パート 2: BigQuery ウェアハウスを AlloyDB に直接連携させる、ゼロ ETL トランザクション ブリッジを構築しました。
パート 3: Agent Development Kit と MCP ツールボックスを使用して、マルチエージェント アプリケーション(FroyoOS)をオーケストレートしました。
パート 4: 2 トラックの評価パイプラインを構築することで、エージェントが本番環境で安全であることを証明しました。
当社のオペレーションは完璧に機能しています。しかし、このシステムが生成する大量のデータを理解する必要があるデベロッパーやビジネス アナリストはどうでしょうか。
本日は、アナリティクスの未来について説明します。まず、コードエディタ Antigravity IDE で Google Cloud Data Agent Kit を使用し、次に Google Cloud コンソールに移動して、BigQuery Conversational Analytics を使用してデータを可視化します。
さっそく使ってみましょう。
学習内容
Agentic Data Cloud シリーズの最後の Codelab では、アーキテクチャのすべての要素を組み合わせて、実用的なビジネス分析情報を提供します。学習内容:
- IDE ファーストの分析: ANTIGRAVITY IDE と Google Cloud Data Agent Kit をインストールして構成し、開発環境から直接アーキテクチャにクエリを実行する方法。
- 会話型 BigQuery: BigQuery データ エージェントを作成、構成、指示して、自然言語を使用して複雑な SQL タスクと予測を自動化する方法。
- データの民主化: エージェントを企業に公開し、組織全体のアナリストやビジネス ユーザーがアクセスできるようにする方法。
- 分析情報の可視化: エージェントの会話分析をデータポータルにシームレスに統合して、予測に対応した動的なダッシュボードを作成する方法。
- Agentic Data Cloud エコシステム: パート 1 の未加工の非構造化データから、パート 5 のエグゼクティブ向けダッシュボードまで、エンドツーエンドのアーキテクチャの価値を明確に伝える方法。
要件
2. 始める前に
プロジェクトを作成する
- Google Cloud コンソールのプロジェクト選択ページで、Google Cloud プロジェクトを選択または作成します。
- Cloud プロジェクトに対して課金が有効になっていることを確認します。詳しくは、プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。
- Google Cloud 上で動作するコマンドライン環境の Cloud Shell を使用します。Google Cloud コンソールの上部にある [Cloud Shell をアクティブにする] をクリックします。
![[Cloud Shell をアクティブにする] ボタンの画像](https://codelabs.developers.google.com/static/data-agents-in-agy-and-bq/img/91567e2f55467574.png?hl=ja)
- Cloud Shell に接続したら、次のコマンドを使用して、すでに認証済みであることと、プロジェクトがプロジェクト ID に設定されていることを確認します。
gcloud auth list
- Cloud Shell で次のコマンドを実行して、gcloud コマンドがプロジェクトを認識していることを確認します。
gcloud config list project
- 認証を行う場合
gcloud auth login
- プロジェクトが設定されていない場合は、次のコマンドを使用して設定します。
export PROJECT_ID=<YOUR_PROJECT_ID>
gcloud config set project <YOUR_PROJECT_ID>
- 必要な API を有効にする: 次のコマンドを実行して、必要な API をすべて有効にします。
gcloud services enable \
alloydb.googleapis.com \
bigquery.googleapis.com \
run.googleapis.com \
cloudbuild.googleapis.com \
artifactregistry.googleapis.com \
iam.googleapis.com \
secretmanager.googleapis.com \
compute.googleapis.com \
servicenetworking.googleapis.com \
aiplatform.googleapis.com
データセットを作成してテーブルにデータを入力する(パート 1 を行っていない場合のみ)
Cloud Shell で、次のコマンドを実行します。
- まず、Cloud Shell ターミナルから次のコマンドを実行して、BigQuery データセットを作成します。
bq mk --location us-central1 --dataset froyo_data
- 次に、以下のコマンドを 1 つずつ実行して、GitHub リポジトリから 8 つのデータファイル(CSV ファイル)を作業ディレクトリにダウンロードします。
wget https://raw.githubusercontent.com/AbiramiSukumaran/raw-data-to-gold/refs/heads/main/data/froyo_data.allergen.csv
- 次のコマンドを 1 つずつ実行して、新しく作成したデータセットのデータを使用してこれらのテーブルを作成します。
bq load --autodetect --source_format=CSV --skip_leading_rows=1 --allow_quoted_newlines --quote="" froyo_data.allergen ./froyo_data.allergen.csv allergen_name:STRING
bq load --autodetect --source_format=CSV --skip_leading_rows=1 --allow_quoted_newlines --quote="" froyo_data.consistsof ./froyo_data.consistsof.csv product_id:STRING,ingredient_id:STRING
bq load --autodetect --source_format=CSV --skip_leading_rows=1 --allow_quoted_newlines --quote="" froyo_data.containsallergen ./froyo_data.containsallergen.csv ingredient_id:STRING,allergen_name:STRING
bq load --autodetect --source_format=CSV --skip_leading_rows=1 --allow_quoted_newlines --quote="" froyo_data.froyo_data_materialized ./froyo_data.froyo_data_materialized.csv allergen:STRING,containsallergen:STRING,ingredient:STRING,product:STRING,suppliedby:STRING,supplier:STRING,ref:STRING,md5_hash:STRING
bq load --autodetect --source_format=CSV --skip_leading_rows=1 --allow_quoted_newlines --quote="" froyo_data.ingredient ./froyo_data.ingredient.csv ingredient_id:STRING,ingredient_name:STRING,purity:STRING,moisture_content:STRING,ph_range:STRING,specific_gravity_range:STRING
bq load --autodetect --source_format=CSV --skip_leading_rows=1 --allow_quoted_newlines --quote="" froyo_data.product ./froyo_data.product.csv product_id:STRING,product_name:STRING,category:STRING,stability:STRING
bq load --autodetect --source_format=CSV --skip_leading_rows=1 --allow_quoted_newlines --quote="" froyo_data.suppliedby ./froyo_data.suppliedby.csv ingredient_id:STRING,supplier_id:STRING
bq load --autodetect --source_format=CSV --skip_leading_rows=1 --allow_quoted_newlines --quote="" froyo_data.supplier ./froyo_data.supplier.csv supplier_id:STRING,supplier_name:STRING,production_site_id:STRING,facility_grade:STRING
3. データ ウェアハウスの拡張
非構造化データから作成した BigQuery テーブルを覚えていますか?
意味のある分析を行うには、過去の取引データが必要です。BigQuery の froyo_data データセットに、数年間のフランチャイズ運営をシミュレートする 3 つの新しいテーブルを作成します。
- froyo_data.orders: 過去の注文ヘッダー(日付、店舗 ID、合計)
- froyo_data.order_items: アイテムの詳細(数量、価格)
- froyo_data.customer_allergen_data: ロイヤル カスタマーの既知のアレルギーを追跡する CRM テーブル
分析ユースケースの準備として、これらの販売および顧客関連のテーブルをそのデータセットに追加しましょう。
- Google Cloud コンソールから Cloud Shell ターミナルに移動します。
- ワークスペースのルートフォルダ、または froyo-data プロジェクトのルートフォルダ(このシリーズの過去数回で使用したもの)に移動します。
- 次のコマンドを 1 つずつ実行して、3 つの過去のデータファイル(CSV ファイル)を作業ディレクトリにダウンロードします。
wget https://raw.githubusercontent.com/AbiramiSukumaran/froyo-data/main/customer_allergen_data.csv
wget https://raw.githubusercontent.com/AbiramiSukumaran/froyo-data/main/order_items.csv
wget https://raw.githubusercontent.com/AbiramiSukumaran/froyo-data/main/orders.csv
- これらのファイルが作業ディレクトリのルートに表示されたら、ターミナルに切り替えて Cloud Shell ターミナルに移動します。
- Cloud Shell ターミナルで、これらの 3 つのファイルがあるディレクトリに移動します。
- BigQuery に、このシリーズのパート 1 で作成した「froyo_data」という名前のデータセットがあることを確認します(ない場合は、戻ってデータセットとテーブルを作成します)。
- Cloud Shell ターミナルから次のコマンドを実行します。
bq load \
--autodetect \
--source_format=CSV \
--skip_leading_rows=1 \
--allow_quoted_newlines \
--quote="" \
froyo_data.orders \
./orders.csv
bq load \
--autodetect \
--source_format=CSV \
--skip_leading_rows=1 \
--allow_quoted_newlines \
--quote="" \
froyo_data.order_items \
./order_items.csv
bq load \
--autodetect \
--source_format=CSV \
--skip_leading_rows=1 \
--allow_quoted_newlines \
--quote="" \
froyo_data.customer_allergen_data \
./customer_allergen_data.csv
これにより、froyo_data データセットに 3 つのテーブルが追加されます。
4. デベロッパー エクスペリエンス - 「Data Agent Kit」の導入
従来、デベロッパーがデータを分析したり、複雑な ML クエリを作成したりするには、IDE、データベース コンソール、ドキュメントの間でコンテキストを常に切り替える必要がありました。
アプリを開いても、新しくリリースされた Google Cloud Data Agent Kit 拡張機能を使用すると、IDE がデータ パワーハウスになります。Google Cloud Data Agent Kit 拡張機能は、エディタ内で Google Cloud データサービスと緊密に統合されているため、コンテキストを切り替えることなく、BigQuery、Cloud SQL、Cloud Storage などとやり取りできます。
前提条件
- Node.js(最新の推奨バージョン)
- gcloud CLI をインストールします。
- Google Cloud アカウントでログインします。
gcloud auth login
- アプリケーションのデフォルト認証情報(ADC)にログインします。
gcloud auth application-default login
Antigravity IDE
Antigravity IDE は、AI 時代向けに設計された Google の次世代のエージェント ファースト開発環境です。大規模なマルチモーダル コンテキスト ウィンドウと自律型ツールの使用をエディタに直接ネイティブに統合することで、デベロッパーはコードを離れることなく、クラウド リソースをオーケストレートし、複雑なデータ パイプラインをオーケストレートできます。
Antigravity IDE の設定
- Google Antigravity のダウンロード ページから Antigravity IDE をダウンロードしてインストールします。
- インストールして起動する: インストーラを実行し、Antigravity IDE を開きます。
- [Continue with Google] をクリックし、Gmail アカウントを選択して承認します。
- 初期構成を行います。注: これらの設定は後からいつでも [設定] で変更できます。
- ローカルマシンに新しい空のフォルダ(
agentic-data-labsなど)を作成し、[Open Folder] を選択して IDE で開きます。これが Codelab のローカル ワークスペースとして機能します。

右側にエージェント ペイン、左側にプロジェクト エクスプローラ、中央に開発用のスペースが表示されます。
Data Agent Kit 拡張機能をインストールする
Google Cloud Data Agent Kit 拡張機能は、エディタ内で Google Cloud データサービスと緊密に統合されているため、コンテキストを切り替えることなく、BigQuery、Cloud SQL、Cloud Storage などとやり取りできます。
- Antigravity IDE で、画面左端のアクティビティ バーにある拡張機能アイコン(4 つの正方形のアイコン)をクリックします。
- [拡張機能] ペインの上部にある検索バーに「
Google Cloud Data Agent Kit」と入力します。 googlecloudtoolsが公開している Google Cloud Data Agent Kit という名前の拡張機能を見つけます。- [Install] ボタンをクリックします。
- 「Do you trust publisher ‘googlecloudtools' and their extensions?」というプロンプトが表示されることがあります。[Trust Publishers & Install] をクリックして続行します。

インストールが完了すると、Antigravity IDE の左端にあるアクティビティ バーに新しい Google Cloud Data Agent Kit アイコンが表示されます。
- 「Google Cloud Data Agent Kit へようこそ」というタイトルのオンボーディング ページが自動的に開きます。Cloud アカウントにログインしていない場合は、プロンプトに沿ってアクセスを許可します。
- [構成の概要] セクションで、プロジェクト フィールドを見つけます。プルダウンをクリックして、Google Cloud プロジェクトを選択します。リージョンを us-central1 に設定します。[Configure MCP Servers] を選択します。
- プロジェクトの
GEMINI.mdという名前の新しいファイルに、次の内容を貼り付けます(<<YOUR_PROJECT_ID>> は実際の値に置き換えてください)。
## 1. Project Context
- **Project ID**: <<YOUR_PROJECT_ID>>
- **Domain**: This project is centralized around "Froyo", a brand of frozen yogurt offering multiple flavors.
- **Data**: All froyo, customer, order related information is processed and stored in BigQuery `froyo_data` dataset.
## 2. Execution & Data Processing Rules
- **CRITICAL RULE - Structured Specs**: The semantic and structured information extracted from the PDFs is available in a BigQuery dataset named `froyo_data`.
- **CRITICAL RULE - Customer Data**: Existing Froyo customer data resides in BigQuery in the tables `customers_allergen_data`.
- ** CRITICAL RULE - Sales Data**: Sales data is present in tables `orders` and `order_items`.
- ** CRITICAL RULE - General: When you are referencing a dataset, ensure you are using it with the dataset ID (`froyo_data`) . For example, to query orders table in this dataset you should use `froyo_data.orders`.
- **CRITICAL RULE - Allergen & Ingredient Mapping**: Never join `consistsof` directly to `containsallergen` on `ingredient_id`. The `consistsof` table often contains ingredient names (e.g. `Midnight Base 204`) while `containsallergen` maps CAS/code IDs (e.g. `9412-78-0`). Always bridge them through `froyo_data.ingredient` (`ON c.ingredient_id = i.ingredient_name OR c.ingredient_id = i.ingredient_id`) to accurately detect allergens.
これで、IDE に直接組み込まれた高性能な AI エージェントが、コードの記述、SQL の生成、アーキテクチャの分析を行う準備が整いました。
ここで、興味深い分析の課題が生じます。過去の販売データと、パート 1 で PDF から抽出した複雑な推定アレルゲン データを関連付けることはできるでしょうか?
5. IDE エージェントを介したインテリジェンスの推論
IDE エージェントに面倒な作業を任せましょう。ANTIGRAVITY IDE 内で Agent Data Kit のチャット ウィンドウを開き、次のプロンプトを入力します。
Does Midnight Swirl contain any allergen?
一連の権限を求められるので、必要に応じて許可します。
最後に、分析の終了時に回答を取得します。

おめでとうございます!Midnight Swirl に大豆が含まれていることが正しく特定されています。
今度は、もう少し複雑な質問をしてみましょう。Antigravity IDE で次のプロンプトを送信します。
I want to see the top 5 most popular products purchased by
customers who have a registered 'Dairy' allergy.
回答:

そのまま続行できます。次のようなプロンプトを試してみましょう。
Forecast the sales volume of our top non-dairy products
for the next 30 days based on historical data.
Agent Data Kit を使用すると、BQML 構文を調べることなく、正確な CREATE MODEL コードと ML.FORECAST コードをエディタに挿入できます。ANTIGRAVITY IDE を離れることなく、BigQuery 環境に対して直接実行できます。
これはすごい!
6. BigQuery の会話型分析
デベロッパーは IDE を好みますが、ビジネス ユーザーやエグゼクティブは Cloud コンソールを使用します。SQL を見たいのではなく、答えが欲しいだけです。
では始めましょう。
- 必要なロールを自分に付与する
プロジェクトの IAM ページに移動し、自分自身に Gemini データ分析 Data Agent Owner のロールを付与します。

このロールにより、プロジェクト内のすべてのデータ エージェントを作成、編集、共有、削除する権限が付与されます。
- 必要な API を有効にします。
Google Cloud コンソールの BigQuery に移動します。サイドバー ナビゲーション メニューまたはページ上部の検索メニューを使用して、[BigQuery] > [エージェント] に移動します。
[Data Analytics API with Gemini] を有効にします。

Gemini in BigQuery API と Gemini for Google Cloud API の両方を有効にします。

新しいエージェント ページが表示されます。

- エージェント情報を構成する
エージェント名: Froyo Agent
エージェントの説明: フローズン ヨーグルトの商品、アレルゲン、原材料、レシピ、顧客、注文、販売に関する質問に回答します。

- [ナレッジソース] セクションに移動し、データセットから以下のテーブルをすべて選択します。

a. 上の画像にあるテーブルを追加し、[ソースを追加] をクリックします。
b. 各ソースの右側にある [カスタマイズ] ボタンをクリックします。次のフォームが表示されます。

c. テーブルの説明で [承認] をクリックします。
d. 各フィールドの説明についても [Accept] をクリックします。

e. [更新] をクリックします。
ソース内のすべてのテーブルに対してこの操作を繰り返す必要があります。
- 指示を構成する
Antigravity IDE GEMINI.md で使用したのと同じ手順をここに記述します。
1. Project Context
Project ID: <<YOUR_PROJECT_ID>>
Domain: This project is centralized around "Froyo", a brand of frozen yogurt offering multiple flavors.
Data: All froyo, customer, order related information is processed and stored in BigQuery froyo_data dataset. Use all the tables and data in the dataset for querying for user questions.
Context: Use Data Agent Kit skills wherever possible.
2. Execution & Data Processing Rules
CRITICAL RULE - Structured Specs: The semantic and structured information extracted from the PDFs is available in a BigQuery dataset named froyo_data.
CRITICAL RULE - Customer Data: Existing Froyo customer data resides in BigQuery in the tables customers_allergen_data. When you are referencing a dataset, ensure you are using it with the dataset ID (froyo_data) . For example, to query orders table in this dataset you should use froyo_data.orders.
- エージェントを保存します。
7. データとチャットしましょう。
- 右側のプレビュー セクションでテストします。

質問する:
Does midnight swirl contain any allergen?

レスポンスは次のとおりです。

次に、複雑な質問をしてみましょう。
I want to see the top 5 most popular products purchased by
customers who have a registered 'Dairy' allergy.
回答:


では、詳細な分析情報を得るためのプロンプトを試してみましょう。
Forecast the sales volume of our top non-dairy products
for the next 30 days based on historical data.
使用されたクエリ、テーブルの結果、グラフが表示されます。



いつも YouTube をご利用いただきありがとうございます。グラフや分析情報との相性も良好でした。プロダクトに関する究極の質問の時間です。
8. 究極のテスト
質問する:
What will be the top most selling product of 2026


最後の分析情報を見てみましょう。BigQuery データ エージェントは、単に数字を提示するだけでなく、売上予測を在庫や原材料のサプライ チェーンに明示的に関連付けてくれました。これは、パート 1 で煩雑な PDF から抽出したデータそのものです。
9. エージェントを企業に公開する
プレビュー エージェントの上部にある [公開] ボタンをクリックします。

Froyo Agent の構築、構成、テストが完了したので、次はビジネスの他の部門にリリースします。
エージェント構成ページの右上にある [Publish] ボタンをクリックします。
公開すると、エージェントは、あなたと共有ユーザーが利用できるよう、3 つの強力なエンタープライズ チャネルですぐに利用できるようになります。
- BigQuery: データ アナリストは、エージェント ハブから直接、または BigQuery Studio SQL ワークスペース内から、このエージェントとチャットできるようになりました。
- Conversational Analytics API: 開発者は REST API を介してこのエージェントにアクセスし、これらの会話分析を独自のカスタム内部ウェブ アプリケーションに統合できます。
- データポータル: 経営幹部は、このエージェントとやり取りして、データポータル内で直接、動的な会話型ダッシュボードを作成できます。
私たちは、データをサイロから取り出し、必要な人の手元に、まさに彼らが作業している場所に直接届けることに成功しました。
公開した BigQuery エージェントの上部にある [共有] ボタンのプルダウンをクリックし、リストから [データポータルのエージェントへのリンクをコピー] オプションを選択します。

そのリンクをブラウザに貼り付けて Enter キーを押します。エージェントとのやり取りへのアクセスに関するアラートを確認します。

新しく公開されたエージェントを使用して、データポータルからインタラクティブな会話や可視化を開始できます。また、この情報を必要とするリーダーシップや他のチームも同様に利用できます。
10. クリーンアップ
このラボが完了したら、作成した BigQuery エージェントのすべてのユーザーの権限を忘れずに削除してください。
11. 完了
これで、Agentic Data Cloud が構築されました。
単純な chatbot を作成しただけではありません。この 5 つのセッションを通じて、完全で最新の評価済みエンタープライズ AI システムをゼロから構築しました。「ダークデータ」からリアルタイムのトランザクション インテリジェンス、そして最終的には会話型のビジネス予測へと移行しました。
12. 全体像
このシリーズで達成したことを振り返ってみましょう。単にシンプルな chatbot を構築しただけではありません。Google は、完全で最新の Agentic Data Cloud を構築しました。
パート 1: Knowledge Catalog を使用して PDF を構造化リレーショナル テーブルに変換し、ダークデータを活用できるようにしました。
パート 2: 分析ウェアハウスを AlloyDB トランザクション データベースに直接連携することで、データサイロを解消しました。
パート 3: MCP プロトコルを介して安全なデータベース ツールをシームレスに実行するマルチエージェント OS を構築することで、ユーザーを支援しました。
パート 4: 厳格な評価パイプラインを実装してハルシネーションとジェイルブレイクを検出し、安全性を確保しました。
パート 5: ANTIGRAVITY IDE と BigQuery の会話型分析を使用した分析情報の民主化。
これがエンタープライズ ソフトウェアの未来です。AI エージェントは、もはや LLM のラッパーではありません。これは、統合データ プラットフォーム上で動作する、完全に統合され、評価された、安全なオーケストレーション エンジンです。