實驗室 2:資料分析與多模態洞察

1. 簡介

找不到容器

在先前的實驗室中,您彙整了零碎的貨運記錄,並追蹤貨物應答器到紐約。不過,抵達記錄顯示,為避免海關偵測,貨櫃隨即改道。現在,追蹤結果顯示貨櫃位於里約熱內盧港,這個港口規模龐大,有數千個貨櫃。要在數千個貨櫃中找到正確的貨櫃並不容易。

在本實驗室中,您將使用 BigQuery 的內建 AI 功能「讀取」非結構化港口安全圖片,並偵測感應器資料中的熱異常,所有作業都使用標準 SQL。接著,您會將向量嵌入匯出至 AlloyDB,並執行向量搜尋,將片段遙測訊號與遺失的貨櫃相符。

學習內容

  • 使用 BigQuery AI 掃描港口安全影像,找出遭竊貨櫃
  • 使用 BigQuery AI 偵測熱異常,確認貨櫃遭竊而非放錯位置
  • 生成向量嵌入,並載入 AlloyDB 以進行即時搜尋
  • 比對零碎的遙測信號,使用向量搜尋找出遭竊的貨櫃
  • 使用對話式數據分析,以自然語言探索調查資料

軟硬體需求

  • 網路瀏覽器,例如 Chrome
  • 已啟用計費功能的 Google Cloud 雲端專案
  • 對 SQL 和 Google Cloud 控制台有基本瞭解

本程式碼研究室適合中階開發人員。

本程式碼研究室建立的資源費用應低於 $5 美元。

2. 事前準備

啟動 Cloud Shell

您將使用 Google Cloud Shell 下載程式碼、執行設定指令碼,以及部署應用程式。

  1. 在新的瀏覽器分頁中開啟 Cloud Shell:shell.cloud.google.com
  2. 連線後,請設定專案 ID 並確認環境:
gcloud config set project <<YOUR_PROJECT_ID>>
export PROJECT_ID=$(gcloud config get-value project)
export REGION=us-central1

您應會看見類似以下的訊息:

Your active configuration is: [cloudshell-####]
Updated property [core/project]

複製存放區

將程式碼研究室存放區複製到 Cloud Shell 殼層環境:

cd ~/
git clone --filter=blob:none --no-checkout https://github.com/GoogleCloudPlatform/devrel-demos.git
cd ~/devrel-demos
git sparse-checkout init --cone
git sparse-checkout set codelabs/bigquery-alloydb-insights
git checkout main
cd codelabs/bigquery-alloydb-insights/

啟用 API

在 Cloud Shell 中執行下列指令,啟用本實驗室的所有必要 API:

gcloud services enable \
  aiplatform.googleapis.com \
  bigquery.googleapis.com \
  bigqueryconnection.googleapis.com \
  alloydb.googleapis.com

執行成功後,您應該會看到類似以下的訊息:

Operation "operations/..." finished successfully.

3. 設定環境

您必須先設定本實驗室的基礎架構,才能分析圖片和遙測資料。您將執行兩項指令碼:一項會在背景啟動 AlloyDB 佈建作業,另一項則會建立您需要的所有 BigQuery 資源。

步驟 1:啟動 AlloyDB 部署作業 (背景)

AlloyDB 叢集佈建作業約需 10 分鐘,因此請先啟動這項作業,讓它在背景執行,同時處理 BigQuery 相關部分。指令碼會自動將有效專案設定記錄到本機 .env 檔案,即使 Cloud Shell 終端機關閉或重新啟動,設定也會儲存。

chmod +x scripts/setup_alloydb.sh
nohup ./scripts/setup_alloydb.sh > /dev/null 2>&1 &
echo "AlloyDB deployment started in background (PID: $!)"

步驟 2:執行設定指令碼

這項指令碼會建立 BigQuery 資料集、Cloud 資源連結、IAM 授權、GCS bucket,並載入您將在本實驗室中分析的所有感應器資料。此外,系統也會讀取並驗證儲存在 .env 檔案中的環境變數。

chmod +x scripts/setup_lab.sh
./scripts/setup_lab.sh

指令碼大約需要一分鐘才能執行完畢。完成後,您會看到所有建立項目的摘要。

📝 環境重設注意事項:如果 Cloud Shell 工作階段在實驗室期間逾時或重新啟動,請執行下列指令,立即還原終端機變數:

source scripts/setenv.sh

步驟 3:啟動 Cloud Shell 編輯器

您目前使用的是 Cloud Shell 終端機。現在請切換至完整的 Cloud Shell 編輯器,這個編輯器提供類似 VS Code 的工作區,並整合了 BigQuery 支援。

  1. 在畫面底部的 Cloud Shell 終端機窗格中,點選「開啟編輯器」按鈕,啟動 Cloud Shell 編輯器工作區。

開啟 Cloud Shell 編輯器

步驟 4:安裝 Data Agent Kit 擴充功能

Google Cloud Data Agent Kit 擴充功能可直接在編輯器中與 Google Cloud 資料服務深度整合,讓您與 BigQuery、AlloyDB、Cloud Storage 等服務互動時,不必切換環境。

  1. 在 Cloud Shell 編輯器中,按一下畫面最左側活動列中的「擴充功能」圖示 (看起來像四個正方形)。
  2. 在「擴充功能」窗格頂端的搜尋列中,輸入 googlecloudtools.datacloud
  3. 找出 Google Cloud 發布的「Google Cloud Data Agent Kit」擴充功能。
  4. 按一下「Install」按鈕。
  5. 系統會顯示提示,詢問「您是否信任發布者『googlecloudtools』及其擴充功能?」。按一下「信任發布者並安裝」繼續操作。

安裝 Data Agent Kit 擴充功能

步驟 5:驗證及設定擴充功能

安裝完成後,請將擴充功能連結至 Google Cloud 專案。

  1. 系統應會自動開啟名為「Google Cloud Data Agent Kit Onboarding」的入門頁面。按一下「登入 Google Cloud」。按照瀏覽器提示允許存取。
  2. 系統會顯示「設定進行中」強制回應。擴充功能會自動檢查 Google Cloud CLI 等必要依附元件。
  3. 在「設定摘要」部分,找到專案欄位。按一下下拉式選單,然後選取 Google Cloud 專案。將區域設為 us-central1
  4. 等待設定檢查完成。看到「設定完成!」後,請按一下「設定 MCP 伺服器」

設定擴充功能

  1. 在 MCP 設定下方選取 BigQuery 和 AlloyDB,然後按一下「開始使用」

步驟 6:探索設定選項

設定完成後,系統會將您導向至「開始使用 Google Cloud Data Agent Kit」資訊主頁。

  1. 在「設定與配置」下方,按一下「開始使用」
  2. 系統會開啟「資料代理程式設定」面板。請瀏覽下列分頁:
    • 專案和區域:確認所選專案 ID,並檢查是否已啟用必要 API (Cloud Storage API、BigQuery API、Catalog API 和 AlloyDB API)。
    • BigQuery:設定 BigQuery 查詢的預設位置。請使用 us-central1 區域。
    • 設定 MCP 伺服器:查看已啟用的 MCP 伺服器 (BigQuery、Notebooks、AlloyDB 等),讓 AI 代理安全地與您的資料互動。
    • 技能:探索預先建構的技能,為代理提供專門功能,處理複雜的資料工作。

資料代理程式設定面板

步驟 7:使用 BigQuery 驗證

對公開資料集執行快速查詢,確認一切運作正常。

  1. 在左側的「Data Agent Kit」窗格中,展開「BigQuery」部分,然後按一下「New Query」,開啟新的查詢編輯器分頁。
  2. 按下 Ctrl+S 鍵 (Windows/Linux) 或 Cmd+S 鍵 (macOS) 儲存檔案,並將檔案命名為 bigquery。這個分頁將用於所有 BigQuery 作業。
  3. 按一下「Query Settings」(查詢設定),並啟用 bigquery.sql 分頁,選取「BigQuery」做為「Data Source」(資料來源),然後按一下「Save」(儲存)

開啟查詢設定

  1. 針對公開資料集執行下列查詢:
SELECT
  term,
  MIN(rank) AS peak_rank,
  ROUND(AVG(score)) AS avg_score
FROM `bigquery-public-data.google_trends.top_terms`
WHERE refresh_date = DATE_SUB(CURRENT_DATE(), INTERVAL 2 DAY)
GROUP BY term
ORDER BY peak_rank ASC
LIMIT 10;
  1. 您應該會看到過去幾天內,前 10 大熱門 Google 搜尋字詞。如果顯示結果,表示擴充功能已連線並可供使用。

驗證 BigQuery 查詢結果

現在,請對設定指令碼剛建立的實驗室資料執行查詢。將現有查詢替換為以下查詢:

SELECT * FROM `lost_cargo_dataset.telemetry_data` LIMIT 5;

您應該會看到含有 shipment_idtelemetry_string 欄的遙測記錄項目。您將在本實驗室中分析這些資料。

本節重點:您已在背景啟動 AlloyDB 部署作業、執行設定指令碼,並透過 Data Agent Kit 擴充功能設定 Cloud Shell 編輯器。

4. 掃描安全影片片段

調查團隊已從里約熱內盧港口取得監視器畫面,顯示一排排的貨櫃。從實驗室 1 中,您知道目標容器是 red。現在您需要找出「哪個」紅色容器。

您將建立物件資料表,讓 BigQuery「查看」Cloud Storage 中的安全影像,然後使用 AI.GENERATE 函式提示 Gemini 從每張圖片擷取結構化資料。

步驟 1:建立物件資料表

物件資料表是特殊的 BigQuery 資料表,可做為 Cloud Storage 中儲存的非結構化檔案 (圖片、PDF、音訊) 的索引。這項功能不會將檔案複製到 BigQuery,而是建立可查詢的參照,讓 AI 函式「看到」這些檔案。

在編輯器的 bigquery.sql 分頁中,執行下列陳述式,建立指向專案 bucket 中連接埠安全圖片的物件資料表:

SET @@location = 'us-central1';

EXECUTE IMMEDIATE CONCAT("""
  CREATE OR REPLACE EXTERNAL TABLE `lost_cargo_dataset.port_security_images`
  WITH CONNECTION `us-central1.lost_cargo_conn`
  OPTIONS (
    object_metadata = 'SIMPLE',
    uris = ['gs://""", @@project_id, """-lab2/images/*']
  );
""");

快速瞭解 BigQuery 現在可以看到的內容:

SELECT uri, content_type FROM `lost_cargo_dataset.port_security_images` LIMIT 5;

每一列代表 Cloud Storage 中的一個圖片檔案。BigQuery 現在可以直接將這些圖片傳遞至 AI 模型。

步驟 2:分析安全圖片

現在使用 BigQuery 的 AI.GENERATE 函式分析每張安全影像。這項單一 SQL 查詢會提示 Gemini 檢查每張圖片,並傳回結構化資料:

SELECT
  uri,
  AI.GENERATE(
    (
      'Examine this port security image. Identify any shipping container IDs visible on the container and provide a one-word color of the container.',
      ref
    ),
    output_schema => 'detected_container_id STRING, color STRING'
  ).* EXCEPT (full_response, status)
FROM `lost_cargo_dataset.port_security_images`;

步驟 3:找出目標容器

檢查結果。找出「color」欄顯示「紅色」 (或某種紅色變體) 的列,並記下「detected_container_id」。這就是目標:MV-CAPYBARA-003

步驟 4:驗證視覺比對結果

如要在不離開編輯器的情況下查看實際分析的圖片,請按照下列步驟操作:

  1. 按一下左側「Data Agent Kit」窗格中的「Cloud Storage」
  2. 展開 bucket (YOUR_PROJECT_ID-lab2/images/),然後按一下與紅色容器對應的圖片檔案,直接在編輯器中查看。

Cloud Storage 圖片預覽

本節重點:您建立了物件資料表,讓 BigQuery 能夠存取港口安全圖片,然後使用 AI.GENERATE 從每張圖片中擷取結構化貨櫃資料。紅色貨櫃已識別為 MV-CAPYBARA-003

5. 確認失竊

您已確認遺失的容器為 MV-CAPYBARA-003,但該容器是遭竊還是只是放錯地方?資訊清單記錄指出,這個特定貨櫃停放在環境感應器 SENS-99 旁。如果竊賊在移動貨櫃前,刻意停用貨櫃的內建冷凍裝置,SENS-99 可能會記錄到突然的排熱尖峰。

我們來使用異常偵測功能,證明容器遭到竄改。

  1. 首先,請查看歷史基準。這些是過去幾小時內 SENS-99 的正常讀數:
SELECT * FROM `lost_cargo_dataset.thermal_history`
ORDER BY reading_time DESC
LIMIT 50;

請注意,溫度會維持在華氏 75 到 78 度之間。這是正常情況。

  1. 現在,請查看同一感應器目前批次的讀數:
SELECT * FROM `lost_cargo_dataset.thermal_current`
ORDER BY thermal_reading DESC
LIMIT 50;

您是否看到頂端附近的 148.4°F 讀數?其他一切正常。如果出現這種尖峰,表示冷藏裝置故障或有人蓄意干擾。讓我們一起來看看。

  1. 執行異常偵測。BigQuery 的 AI.DETECT_ANOMALIES 會使用預先訓練的 TimesFM 基礎模型分析時間序列模式,並自動標記離群值,完全不需要模型訓練:
SELECT *
FROM AI.DETECT_ANOMALIES(
  TABLE `lost_cargo_dataset.thermal_history`,
  TABLE `lost_cargo_dataset.thermal_current`,
  data_col => 'thermal_reading',
  timestamp_col => 'reading_time',
  id_cols => ['sensor_id']
)
WHERE is_anomaly = TRUE;
  1. 檢查結果。148.4°F 的讀數應會標示為異常,且異常機率很高,確認容器區域附近發生異常狀況。

本節重點:您使用 BigQuery 的 AI.DETECT_ANOMALIES 函式,運用預先訓練的 TimesFM 模型。只要執行單一 SQL 查詢,即可自動找出離群值,並隔離異常竄改事件,不必編寫任何複雜的機器學習程式碼,也不必從頭訓練模型。

6. 準備追蹤系統

該貨櫃已確認遭竊,且不在里約熱內盧。車隊中的每個貨櫃都會廣播遙測信號:感應器讀數、GPS 片段和狀態記錄。如果遭竊容器的信標仍在傳輸,您可以比對已知簽章來尋找。

BigQuery 非常適合您目前執行的分析工作,但要即時找出貨櫃,需要低延遲的作業查詢。AlloyDB 是與 PostgreSQL 相容的全代管資料庫,專為這類用途而生,可快速執行向量搜尋查詢,適用於即時追蹤系統。您會將遙測嵌入內容載入 AlloyDB,並用來比對信號。

您稍早啟動的 AlloyDB 叢集現在應該已準備就緒。讓我們直接從編輯器設定叢集。

步驟 1:從編輯器連線至 AlloyDB

您不必切換至 Cloud Console,直接使用 Data Agent Kit 擴充功能即可連線至 AlloyDB。

  1. 在左側「BigQuery」區段下方的「Data Agent Kit」窗格中,按一下「New Query」,開啟新的查詢編輯器分頁。
  2. 按下 Ctrl+S 鍵 (Windows/Linux) 或 Cmd+S 鍵 (macOS) 儲存檔案,並將檔案命名為 alloydb。這個分頁將用於所有 AlloyDB 查詢。
  3. 按一下齒輪圖示,開啟「查詢設定」模式。

開啟 AlloyDB 的查詢設定

  1. 在「查詢設定」模式中,選取「資料來源」下方的「資料庫」
  2. 在「資料庫」下方,選取「AlloyDB」
  3. 填寫「資源選取」詳細資料:
    • 專案 ID:輸入 Google Cloud 專案 ID。
    • 叢集:選取 lost-cargo-cluster
    • 「執行個體」:選取 lost-cargo-instance
    • 「資料庫」:選取 postgres
  4. 按一下 [儲存]

查詢設定 AlloyDB 模式

步驟 2:啟用向量擴充功能並建立資料表

連線至 AlloyDB 後,您需要啟用必要的 AI 擴充功能,並建立接收內嵌遙測資料的資料表。

  1. 在現用 .sql 分頁中貼上下列指令,啟用必要擴充功能:
CREATE EXTENSION IF NOT EXISTS vector;
CREATE EXTENSION IF NOT EXISTS google_ml_integration CASCADE;
  1. 醒目顯示文字,然後按一下編輯器右上方的「執行查詢」按鈕 (播放圖示)。
  2. 查看畫面底部的「查詢結果」終端機面板,應該會顯示 Statement executed successfully

AlloyDB 建立擴充功能

  1. 接著,將編輯器中的文字替換為下列陳述式,建立遙測資料表:
CREATE TABLE IF NOT EXISTS vessel_telemetry (
    entry_id SERIAL PRIMARY KEY,
    shipment_id VARCHAR(50),
    telemetry_string TEXT,
    embedding_vector vector(768)
);
  1. 執行這項查詢,就像上次一樣。確認底部面板是否顯示執行成功。

vector(768) 類型來自您剛啟用的 pgvector 擴充功能。768 個維度與 Google 的 text-embedding-005 模型輸出內容相符,您將在 BigQuery 中使用該模型生成嵌入。

本節重點:您已直接從 Cloud Shell 編輯器連線至 AlloyDB,並啟用 pgvectorgoogle_ml_integration 擴充功能,以及建立目標資料表。AlloyDB 現在已準備就緒,可做為即時遙測資料比對的作業後端。

7. 建構搜尋索引

現在您需要將遙測資料匯入 AlloyDB,才能進行即時信標比對。原始遙測記錄雜亂無章,長度也不固定,不適合用於相似度搜尋。您將使用 BigQuery 的 AI 函式,透過 Gemini 摘要說明每則記錄,並將每則摘要轉換為 768 維度的向量嵌入。接著,您會將經過擴增的資料匯出至 Cloud Storage,並匯入 AlloyDB。

步驟 1:在 BigQuery 中生成嵌入

將編輯器分頁切換回 bigquery.sql (仍連結至 BigQuery)。

現在,請執行下列查詢,使用 Gemini 摘要說明每筆遙測記錄,並生成向量嵌入:

CREATE OR REPLACE TABLE `lost_cargo_dataset.telemetry_embeddings_export` AS
WITH summarized_telemetry AS (
  SELECT
    shipment_id,
    telemetry_string,
    AI.GENERATE(
      CONCAT('Summarize this telemetry log for vector search: ', telemetry_string)
    ).result AS summary
  FROM `lost_cargo_dataset.telemetry_data`
),
telemetry_embeddings AS (
  SELECT
    shipment_id,
    telemetry_string,
    AI.EMBED(summary, endpoint => 'text-embedding-005').result AS embedding
  FROM summarized_telemetry
)
SELECT
  shipment_id,
  telemetry_string,
  TO_JSON_STRING(embedding) AS embedding_vector
FROM telemetry_embeddings;

步驟 2:預覽強化資料

匯出前,請先查看您建立的內容。這項查詢會顯示貨運 ID,以及每個摘要和嵌入內容的前 80 個字元:

SELECT
  shipment_id,
  SUBSTR(telemetry_string, 1, 80) AS telemetry_preview,
  SUBSTR(embedding_vector, 1, 80) AS embedding_preview
FROM `lost_cargo_dataset.telemetry_embeddings_export`
LIMIT 5;

現在每列都包含貨運 ID、原始遙測記錄和 768 維度的嵌入向量。這是您要推送至 AlloyDB 的資料。

步驟 3:將嵌入內容匯出至 Cloud Storage

使用 BigQuery 的 EXPORT DATA 陳述式,將嵌入資料表寫入實驗室的 GCS bucket,做為 CSV 檔案。

EXECUTE IMMEDIATE CONCAT("""
  EXPORT DATA OPTIONS (
    uri = 'gs://""", @@project_id, """-lab2/data/embeddings_export/*.csv',
    format = 'CSV',
    overwrite = true,
    header = false
  ) AS
  SELECT
    shipment_id,
    telemetry_string,
    embedding_vector
  FROM `lost_cargo_dataset.telemetry_embeddings_export`;
""");

步驟 4:從 Cloud Storage 匯入 AlloyDB

  1. 在 Cloud Shell 編輯器中,按一下畫面底部的「Terminal」分頁標籤,開啟終端機工作階段。
  2. 執行下列指令,載入環境並將 CSV 檔案直接匯入 AlloyDB 的 vessel_telemetry 資料表:
source devrel-demos/codelabs/bigquery-alloydb-insights/scripts/setenv.sh

gcloud alloydb clusters import lost-cargo-cluster \
  --region=$REGION \
  --gcs-uri="gs://${PROJECT_ID}-lab2/data/embeddings_export/000000000000.csv" \
  --database=postgres \
  --user=postgres \
  --table=vessel_telemetry \
  --columns=shipment_id,telemetry_string,embedding_vector \
  --csv

終端機分頁顯示 gcloud alloydb clusters import 指令

本節重點:您已使用 BigQuery 的 AI 函式匯總及嵌入遙測資料,將結果匯出至 Cloud Storage 做為 CSV 檔案,然後使用 gcloud 將結果匯入 AlloyDB。現在,營運追蹤資料庫已載入完畢,可供使用。

8. 比對 Beacon 信號

雪梨附近的外勤團隊攔截到片段的遙測信號。部分記錄如下:

「冷藏裝置離線。手動覆寫。」

如果這是從遭竊的容器傳送,即使信號不完整,AlloyDB 的向量搜尋功能也應能比對。這正是 AlloyDB 擅長的即時作業查詢。

步驟 1:驗證匯入的資料

將編輯器分頁切換回 alloydb.sql (仍連線至 AlloyDB)。

執行下列指令,確認遙測資料是否已順利載入:

SELECT shipment_id, LEFT(telemetry_string, 80) AS telemetry_preview
FROM vessel_telemetry
LIMIT 10;

您應該會看到含有 shipment_id 值和遙測文字的資料列。這些是車隊的遙測簽章,現在已可進行即時比對。

步驟 2:搜尋遺失的容器

現在,請使用 AlloyDB 的 google_ml_integration 擴充功能,透過攔截的信號片段搜尋相符項目:

SELECT
    shipment_id,
    telemetry_string,
    1 - (embedding_vector <=> embedding('text-embedding-005', 'Refrigeration unit offline. Manual override.')::vector) AS search_relevance_score
FROM vessel_telemetry
ORDER BY embedding_vector <=> embedding('text-embedding-005', 'Refrigeration unit offline. Manual override.')::vector
LIMIT 5;

AlloyDB 的 google_ml_integration 擴充功能提供的 embedding() 函式會直接從 SQL 呼叫 Agent Platform,以內嵌方式產生向量嵌入。<=> 運算子會計算兩個向量之間的餘弦距離 (越接近 0,兩個向量就越相同)。我們從 1 減去餘弦距離,將結果表示為相關分數,分數越高越好。

步驟 3:確認比對結果

檢查結果。最相關的結果應為 MV-CAPYBARA-003,且相關性分數最高。

這與您在調查的每個步驟中追蹤的容器相同:

  • 📷 監視器畫面顯示該船在夜間離開里約熱內盧港。
  • 🌡️ 熱異常偵測確認冷藏設備遭到刻意停用。
  • 📡 信標信號比對剛才在雪梨附近精確找出遙測簽章。

三條獨立的證據線索、三種不同的 Google Cloud AI 功能,以及一個遭竊的貨櫃。

🎯 案件已結案:MV-CAPYBARA-003 已在雪梨附近找到!

偵探 Bugdroid 在雪梨碼頭與水豚擊掌,背景是標示為「已找到」的 MV-CAPYBARA-003 貨櫃

章節回顧:您已使用 AlloyDB 內建的 AI 整合功能,在單一 SQL 查詢中生成搜尋嵌入,並執行餘弦相似度搜尋。信號比對結果確認了遭竊貨櫃的位置,因此調查完成。

9. 探索證據

現在您已透過多模態圖片分析和向量搜尋功能找出容器,可以直接在編輯器中使用 Conversational Analytics,以自然語言探索調查資料,完全不需編寫任何 SQL。

步驟 1:在 Knowledge Catalog 中找出資料

資料代理程式套件內含通用搜尋功能,可讓您在 Google Cloud 環境中尋找及探索資料資產。

  1. 在左側的「Data Agent Kit」面板中,展開「Catalog」部分。
  2. 按一下「通用搜尋」
  3. 在搜尋列中輸入 telemetry_data
  4. 按一下搜尋結果中的 telemetry_data 資料表 (位於 lost_cargo_dataset 下方)。

在目錄中搜尋 telemetry_data 資料表

步驟 2:啟動對話式數據分析

點選搜尋結果會開啟資料檢視器分頁,您可以在其中預覽原始資料、查看結構定義,以及檢查資料品質。

  1. 左側窗格會顯示 BigQuery 資料集和資料表。按一下「即時通訊」按鈕,開啟新的即時通訊視窗。

按一下「即時通訊」按鈕

步驟 3:以自然語言提問

系統會開啟新的「歡迎使用對話式數據分析!」即時通訊分頁。代理程式會取得表格結構和內容的相關資訊。

  1. 在即時通訊視窗中輸入:「Show me the telemetry status and log for the Capybara shipment.」
  2. 按下 Enter 鍵。

代理程式會將您的問題翻譯成 BigQuery SQL,執行查詢並傳回結果,包括資料表和洞察結果,總結發現。您可以根據問題的複雜程度,在「思考型」 (深入分析,速度較慢) 和「快速型」 (快速回覆) 模式之間切換。由於這些是 AI 生成的回覆,您的結果可能與下方的螢幕截圖略有不同。

對話式數據分析結果和洞察資料

步驟 4:提出後續問題

代理程式會記住對話脈絡。請嘗試提出後續問題:

  • 「遙測資料中有多少筆不重複的出貨記錄?」
  • 「目前機群中有多少其他貨運處於『緊急』狀態?」

本節重點:您已使用 Knowledge Catalog 的通用搜尋功能找出資料集,並啟動對話式數據分析功能,以自然語言查詢調查資料。AI 代理程式將您的問題翻譯成 SQL,並提供與您發現結果一致的洞察資訊。

10. 清除

如要避免系統持續向您的 Google Cloud 帳戶收費,請刪除在本實驗室中建立的資源。您可以在 Cloud Shell 編輯器 (您使用 Data Agent Kit 的位置) 內的整合式終端機中執行這些指令,清理環境。

首先,載入環境變數:

source scripts/setenv.sh
  1. 刪除 BigQuery 資源 (僅限不繼續進行實驗室 3 的情況):

如果打算繼續進行實驗室 3,請略過這個步驟!實驗室 3 會使用相同的 BigQuery 資料集和連結,進行資源圖表分析。

如要刪除 BigQuery 資料集和連結,請按照下列步驟操作:

# Drop the dataset
bq rm -r -f $PROJECT_ID:lost_cargo_dataset

# Delete the connections
bq rm --connection --location=us-central1 $PROJECT_ID.us-central1.lost_cargo_conn
bq rm --connection --location=us-central1 $PROJECT_ID.us-central1.lost_cargo_alloydb_conn
  1. 刪除 Cloud Storage bucket:
gcloud storage rm --recursive gs://${PROJECT_ID}-lab2
  1. 刪除 AlloyDB 執行個體和叢集

實驗室 3 不會使用 AlloyDB,因此現在可以放心拆除。

gcloud alloydb instances delete lost-cargo-instance \
  --region=$REGION \
  --cluster=lost-cargo-cluster \
  --quiet

gcloud alloydb clusters delete lost-cargo-cluster \
  --region=$REGION \
  --force \
  --quiet
  1. 刪除本機環境設定

最後,請從工作區中清理本機環境設定檔:

rm -f .env

11. 恭喜!

您已順利完成實驗室 2:資料分析與多模態洞察!您從數千個貨櫃的港口追蹤到確認的竊盜事件和確切位置。

你的成就

  1. 掃描影像:您使用 BigQuery 的 AI.GENERATE 分析港口安全影像,並在深紅色中找出 MV-CAPYBARA-003 貨櫃。
  2. 確認竊盜行為:您查看熱感應器資料,發現可疑的 148.4°F 尖峰,並使用 AI.DETECT_ANOMALIES 證明這是蓄意竄改。
  3. 準備追蹤系統:您已使用 pgvectorgoogle_ml_integration 設定 AlloyDB,以便即時比對信標。
  4. 建立搜尋索引:您在 BigQuery 中使用 AI.GENERATEAI.EMBED 建立嵌入內容,然後將其匯出至 Cloud Storage 並匯入 AlloyDB。
  5. 比對信標信號:您使用 AlloyDB 的向量搜尋功能比對片段遙測信號,在雪梨附近找到遭竊的貨櫃。
  6. 探索證據:您直接在編輯器中使用對話式數據分析,以自然語言查詢調查資料。

找到容器!

後續步驟

您已找出容器所在位置,現在需要找出容器背後的擁有者

實驗室 3:資料消耗與代理工作流程中,您將建構物流網路的屬性圖,以便對應空殼公司之間的關係、使用對話式數據分析與圖表對話,並搜尋知識目錄,找出復原貨櫃所需的安全通關代碼。