在 BigQuery 程式碼研究室中使用 AI 代理程式準備資料

在 BigQuery 程式碼研究室中使用 AI 代理程式準備資料

程式碼研究室簡介

subject上次更新時間:4月 9, 2025
account_circle作者:Tim Bezold

1. 簡介

試想,如果您不必是程式設計專家,也能更快速、更有效率地準備資料進行分析,那該有多好!有了 BigQuery 資料準備功能,這一切都將成為現實。這項強大的功能可簡化資料攝入、轉換和清理作業,讓貴機構的所有資料專家都能進行資料準備作業。

準備好揭開產品資料中的秘密了嗎?

  • 具備 Google Cloud 控制台的基本知識
  • 對 SQL 有基本瞭解
  • 本影片將以時尚美容產業的實際範例,說明 BigQuery 資料準備工具如何清理原始資料,並將其轉換為可做為行動依據的商業智慧。
  • 如何執行及排定清理資料的資料準備作業

軟硬體需求

  • Google Cloud 帳戶和 Google Cloud 專案
  • 網路瀏覽器,例如 Chrome

2. 基本設定和需求

自助式環境設定

  1. 登入 Google Cloud 控制台,然後建立新專案或重複使用現有專案。如果您還沒有 Gmail 或 Google Workspace 帳戶,請務必建立帳戶

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • 「Project name」是這個專案參與者的顯示名稱。這是 Google API 不會使用的字元字串。您隨時可以更新。
  • 專案 ID 在所有 Google Cloud 專案中都是不重複的值,且無法變更 (設定後即無法變更)。Cloud 控制台會自動產生專屬字串,您通常不需要特別在意。在大多數程式碼研究室中,您都需要參照專案 ID (通常會以 PROJECT_ID 表示)。如果您不喜歡系統產生的 ID,可以隨機產生另一個 ID。或者,您也可以自行嘗試,看看是否可用。在這個步驟完成後就無法變更,且會在專案期間維持不變。
  • 提醒您,有些 API 會使用第三個值「專案編號」。如要進一步瞭解這三個值,請參閱說明文件
  1. 接下來,您需要在 Cloud 控制台中啟用帳單功能,才能使用 Cloud 資源/API。執行這個程式碼研究室不會產生太多費用,甚至可能完全不產生費用。如要關閉資源,避免在本教學課程結束後繼續產生費用,您可以刪除建立的資源或專案。Google Cloud 新使用者可申請 $300 美元的免費試用期

3. 事前準備

啟用 API

如要在 BigQuery 中使用 Gemini,請啟用 Gemini for Google Cloud API。通常由具備 serviceusage.services.enable IAM 權限的服務管理員或專案擁有者執行這個步驟。

  1. 如要啟用 Gemini for Google Cloud API,請前往 Google Cloud Marketplace 中的 Gemini for Google Cloud 頁面。前往 Gemini 版 Google Cloud
  2. 在專案選擇器中選取專案。
  3. 點選「Enable」(啟用)。頁面會更新,並顯示「已啟用」狀態。所有具備必要 IAM 權限的使用者,現在都能在所選 Google Cloud 專案中使用 Gemini in BigQuery。

設定角色和權限,以便進行資料準備作業

  1. 在「IAM 與管理」中選取「IAM」

4477412d79f29e0b.png

  1. 選取使用者,然後按一下鉛筆圖示,即可「編輯擁有者」

5eb558e04ad12362.png

如要使用 BigQuery 資料準備功能,您必須具備下列角色和權限:

4. 在 BigQuery Analytics Hub 中尋找並訂閱「bq data preparation demo」項目

本教學課程會使用 bq data preparation demo 資料集。這是我們要讀取的 BigQuery Analytics Hub 中連結的資料集。

資料準備作業絕不會寫回來源,因此我們會請您定義要寫入的目的資料表。我們在本練習中使用的資料表只有 1,000 列,以便降低成本,但資料準備作業會在 BigQuery 上執行,並隨著資料量增加而擴大規模。

如要尋找及訂閱已連結的資料集,請按照下列步驟操作:

  1. 存取 Analytics Hub:前往 Google Cloud 控制台,然後前往 BigQuery。
  2. 在 BigQuery 導覽選單的「治理」下方,選取「數據分析中心」。

6ddfac4dd863ca7b.png

  1. 搜尋項目:在 Analytics Hub UI 中,按一下「搜尋項目」
  2. 在搜尋列中輸入 bq data preparation demo,然後按下 Enter 鍵。

7e0cb82b80174cdc.png

  1. 訂閱商家資訊:在搜尋結果中選取 bq data preparation demo 商家資訊。
  2. 在商家資訊詳細資料頁面中,按一下「訂閱」按鈕。
  3. 查看任何確認對話方塊,並視需要更新專案/資料集。預設值應正確無誤。

2ef0ac1e3557f2f9.png

  1. 在 BigQuery 中存取資料集:成功訂閱後,清單中的資料集就會連結至您的 BigQuery 專案。

返回 BigQuery Studio

5. 探索資料並啟動資料準備作業

  1. 找出資料集和資料表:在「Explorer」面板中選取專案,然後找出 bq data preparation demo 清單中包含的資料集。選取 stg_product 資料表。
  2. 在資料準備中開啟:按一下資料表名稱旁的三個垂直點,然後選取 Open in Data Preparation

系統會在資料準備介面中開啟資料表,讓您開始轉換資料。

76ace3d4b5cfc2d0.png

如您在下方資料預覽中看到的,我們有幾項資料挑戰需要解決,包括:

  • 價格欄包含金額和幣別,因此難以進行分析。
  • 產品欄會混合產品名稱和類別 (以管道符號 | 分隔)。

f4d93aa59a56447a.png

Gemini 會立即分析資料,並建議您進行幾項轉換作業。在這個範例中,我們看到多項建議。在後續步驟中,我們會套用所需的設定。

fd4d14e4fa3c31c1.png

6. 處理價格欄

我們來處理「價格」欄。如先前所述,這項屬性包含貨幣和金額。我們的目標是將這些資料分割成兩個不同的資料欄:貨幣和金額

Gemini 針對「價格」欄提出了幾項最佳化建議。

  1. 找出類似下列內容的建議:

說明:「這個運算式會從指定欄位移除開頭的 ‘USD '」

REGEXP_REPLACE(Price,` `r'^USD\s',` `r'')
  1. 選取「預覽」

c9327cfbd32247d6.png

  1. 選取「套用」

接著,針對「Price」欄,讓我們將資料類型從 STRING 轉換為 NUMERIC

  1. 找出類似下列內容的建議:

說明:「將『Price』欄從字串類型轉換為 float64」

SAFE_CAST(Price AS float64)
  1. 選取「套用」。

您現在應該會在步驟清單中看到三個已套用的步驟。

d3359af47dce0c15.png

7. 處理產品欄

產品欄包含產品名稱和類別,兩者以管道符號 (|) 分隔。

我們可以再次使用自然語言,來探索 Gemini 的另一項強大功能。

清理產品名稱

  1. 選取產品項目的類別部分 (包含 | 字元) 並刪除。

5171d598a8cb3a75.png

Gemini 會聰明地辨識這類模式,並建議套用至整個資料欄的轉換作業。

  1. 選取「編輯」。

b36cac918b4f30e9.png

Gemini 的建議非常實用:它會移除「|」字元後面的所有內容,有效隔離產品名稱。

但這次我們不想覆寫原始資料。

  1. 在目標欄下拉式選單中,選取「建立新欄」。
  2. 將名稱設為 ProductName

bda19e0e5e536ccd.png

  1. 預覽變更內容,確認一切正常。
  2. 套用轉換。

擷取產品類別

我們會使用自然語言指示 Gemini 擷取「產品」欄中的垂直線 (|) 後面的字詞。這個擷取的值會覆寫至現有的「Product」欄。

  1. 按一下 Add Step 新增轉換步驟。

77944047e698494c.png

  1. 在下拉式選單中選取 Transformation
  2. 在自然語言提示欄位中輸入「在產品欄中擷取管道符號 (|) 後面的字詞」,然後按下 Enter 鍵即可產生 SQL。

82efc2447a3210bd.png

  1. 將「目標欄」保留為「產品」。
  2. 按一下 [套用]。

轉換作業應會產生下列結果。

d741c66d9e0e8e00.png

8. 彙整資料以豐富資料

您通常會想使用其他來源的資訊來豐富資料。在本例中,我們會將產品資料與第三方資料表中的擴充產品屬性 stg_extended_product 建立聯結。這個表格包含品牌和推出日期等詳細資料。

  1. 按一下 Add Step
  2. 選取「Join
  3. 瀏覽 stg_extended_product 資料表。

dca14451c3fbc7f0.png

Gemini in BigQuery 會自動為我們挑選 productid 彙整鍵,並驗證左側和右側的鍵名是否相同。

注意:請確認說明欄位顯示「Join by productid」。如果包含其他彙整鍵,請覆寫說明欄位為「Join by productid'」,然後選取說明欄位中的產生按鈕,以以下條件重新產生彙整運算式 L

productid

= R.

productid4d6dbfea28772f34.png

  1. 視需要選取「預覽」,即可預覽結果。
  2. 按一下 [Apply]

清理延伸屬性

雖然彙整成功,但需要清理擴充屬性資料。LaunchDate 欄的日期格式不一致,而 Brand 欄則含有部分遺漏的值。

我們先從 LaunchDate 欄開始著手。

f9b570d7c2d3a98d.png

建立任何轉換作業前,請先查看 Gemini 的建議。

  1. 按一下「LaunchDate欄名稱。您應該會看到一些類似下圖的建議。

62b6e6027a46ba75.png

  1. 如果您看到含有下列 SQL 的最佳化建議,請套用最佳化建議,並略過後續步驟。
COALESCE(SAFE.PARSE_DATE('%Y-%m-%d',
LaunchDate),SAFE.PARSE_DATE('%Y/%m/%d', LaunchDate))
  1. 如果沒有看到與上述 SQL 相符的最佳化建議,請按一下 Add Step
  2. 選取 Transformation
  3. 在 SQL 欄位中輸入以下內容:
COALESCE(SAFE.PARSE_DATE('%Y-%m-%d',
LaunchDate),SAFE.PARSE_DATE('%Y/%m/%d', LaunchDate))
  1. Target Columns 設為 LaunchDate
  2. 按一下 [Apply]

LaunchDate 欄現在採用一致的日期格式。

ccf34aa05754a834.png

9. 新增目的地資料表

資料集現在已完成清理,可以載入至資料倉儲中的維度表。

  1. 按一下 [ADD STEP]
  2. 選取 Destination
  3. 填入必要參數:資料集:bq_data_preparation_demo 資料表:DimProduct
  4. 按一下 [Save]

79fdc3666a3a21b9.png

我們現在已使用「資料」和「結構定義」分頁。除了這些功能之外,BigQuery 資料準備工具還提供「圖表」檢視畫面,以視覺化方式顯示管道中的轉換步驟序列。

95e64d8152228f7b.png

10. 獎勵 A:處理「製造商」欄並建立錯誤表

我們也發現「Manufacturer」欄中有空白值。針對這些記錄,我們想實施資料品質檢查,並將這些記錄移至錯誤表格,以利進一步審查。

建立錯誤表格

  1. 按一下 stg_product data preparation 標題旁的 More 按鈕。
  2. 在「Setting部分下方,選取「Error Table
  3. 勾選 Enable error table 方塊,然後按照下列步驟設定:
  • 資料集:選取 bq_data_preparation_demo
  • 表格:輸入 err_dataprep
  • 在「Define duration for keeping errors下方,選取「30 days (default)
  1. 按一下 [Save]

adb5722f05c1b205.png

設定「製造商」欄的驗證機制

  1. 選取「製造商」欄。
  2. Gemini 很可能已找出相關轉換。找出只保留「Manufacturer」欄位非空白的資料列的最佳化建議。其中的 SQL 會類似於以下內容:
Manufacturer IS NOT NULL

2. 按一下這項建議的「編輯」按鈕,查看相關資訊。

4749b551a03d8193.png

  1. 勾選「驗證失敗的資料列移至錯誤表格」選項 (如果未勾選)
  2. 按一下 [Apply]

您隨時可以點選「已套用步驟」按鈕,查看、修改或刪除已套用的轉換。

15df6caacbdd6a69.png

清理多餘的 ProductID_1 欄

我們現在可以刪除 ProductID_1 欄,因為這個欄重複了已彙整資料表中的 ProductID。

  1. 前往「Schema分頁
  2. 按一下 ProductID_1 欄旁的 3 點圖示。
  3. 按一下 Drop

我們現在可以執行資料準備工作,並驗證整個管道。當您對結果感到滿意時,就可以安排工作自動執行。

  1. 離開資料準備檢視畫面前,請先儲存準備作業。您應該會在 stg_product data preparation 標題旁看到 Save 按鈕。按一下按鈕即可儲存。

11. 清理環境

  • 刪除 stg_product data preparation
  • 刪除 bq data preparation demo 資料集

12. 恭喜

恭喜您完成程式碼研究室!

涵蓋內容

  • 設定資料準備作業
  • 開啟資料表並瀏覽資料準備作業
  • 使用數值和單位描述符資料分割資料欄
  • 標準化日期格式
  • 執行資料準備作業