arrow_back

使用 Gemini in BigQuery 開發程式碼

登录 加入
访问 700 多个实验和课程

使用 Gemini in BigQuery 開發程式碼

实验 1 小时 30 分钟 universal_currency_alt 1 积分 show_chart 入门级
info 此实验可能会提供 AI 工具来支持您学习。
访问 700 多个实验和课程

GSP1258

總覽

假設您是資料分析師,在 Data Beans 工作了幾個月,並與團隊成功完成了一些專案,而現在公司指派了第一項獨立專案給您。您開始要自行建立及撰寫更複雜的查詢,藉此取得更精闢的深入分析結果。雖然團隊中的每位成員都很樂於協助,但您需要開始展現獨立作業的能力。

您已瞭解 BigQuery 的 SQL 程式碼生成、說明和轉換功能,可協助您使用自然語言撰寫更複雜的查詢。此外,如果您在撰寫新查詢時遇到困難,也知道能使用 Gemini 檢查程式碼及進行偵錯,甚至取得問題解決建議。這些功能可助您獨立作業,甚至提高工作效率,但您還不確定要如何踏出第一步。

目標

本實驗室的內容包括:

  • 使用自然語言提示生成 SQL 查詢。
  • 使用 BigQuery 的程式碼說明功能。
  • 使用 BigQuery 的轉換功能修改 SQL 程式碼。
  • 在 BigQuery 中使用提示,要求 Gemini 檢查 SQL 程式碼並進行偵錯。
  • 要求 Gemini 提供建議來修正 SQL 程式碼問題。

最後,您將利用一段時間回答實驗室日誌中的問題,藉此回顧在本實驗室學到的內容,思考如何在您的資料、特定用途與工作流程中,運用程式碼生成、說明、轉換和建議功能。

設定和需求

瞭解以下事項後,再點選「Start Lab」按鈕

請詳閱以下操作說明。實驗室活動會計時,且中途無法暫停。點選「Start Lab」後就會開始計時,顯示可使用 Google Cloud 資源的時間。

您將在真正的雲端環境完成實作實驗室活動,而不是模擬或示範環境。為此,我們會提供新的暫時憑證,供您在實驗室活動期間登入及存取 Google Cloud。

為了順利完成這個實驗室,請先確認:

  • 可以使用標準的網際網路瀏覽器 (Chrome 瀏覽器為佳)。
注意事項:請使用無痕模式 (建議選項) 或私密瀏覽視窗執行此實驗室,這可以防止個人帳戶和學員帳戶之間的衝突,避免個人帳戶產生額外費用。
  • 是時候完成實驗室活動了!別忘了,活動一旦開始將無法暫停。
注意事項:務必使用實驗室專用的學員帳戶。如果使用其他 Google Cloud 帳戶,可能會產生額外費用。

如何開始研究室及登入 Google Cloud 控制台

  1. 點選「Start Lab」按鈕。如果實驗室會產生費用,畫面上會出現選擇付款方式的對話方塊。左側的「Lab Details」窗格會顯示下列項目:

    • 「Open Google Cloud console」按鈕
    • 剩餘時間
    • 必須在這個研究室中使用的臨時憑證
    • 完成這個實驗室所需的其他資訊 (如有)
  2. 點選「Open Google Cloud console」;如果使用 Chrome 瀏覽器,也能按一下滑鼠右鍵,選取「在無痕視窗中開啟連結」

    接著,實驗室會啟動相關資源,並開啟另一個分頁,顯示「登入」頁面。

    提示:您可以在不同的視窗中並排開啟分頁。

    注意:如果頁面中顯示「選擇帳戶」對話方塊,請點選「使用其他帳戶」
  3. 如有必要,請將下方的 Username 貼到「登入」對話方塊。

    {{{user_0.username | "Username"}}}

    您也可以在「Lab Details」窗格找到 Username。

  4. 點選「下一步」

  5. 複製下方的 Password,並貼到「歡迎使用」對話方塊。

    {{{user_0.password | "Password"}}}

    您也可以在「Lab Details」窗格找到 Password。

  6. 點選「下一步」

    重要事項:請務必使用實驗室提供的憑證,而非自己的 Google Cloud 帳戶憑證。 注意:如果使用自己的 Google Cloud 帳戶來進行這個實驗室,可能會產生額外費用。
  7. 按過後續的所有頁面:

    • 接受條款及細則。
    • 由於這是臨時帳戶,請勿新增救援選項或雙重驗證機制。
    • 請勿申請免費試用。

Google Cloud 控制台稍後會在這個分頁開啟。

注意:如要使用 Google Cloud 產品和服務,請點選「導覽選單」,或在「搜尋」欄位輸入服務或產品名稱。

工作 1:檢查 menu 和 order_item 資料表

在這項工作中,您會檢查 menu 和 order_item 資料表的結構定義。

重要事項:如果未檢查這些資料表的結構定義,就無法成功完成本實驗室的其他工作。

檢查 menu 資料表的結構定義

  1. 前往 Google Cloud 控制台的「導覽選單」,點選「BigQuery」

  2. 點選歡迎對話方塊中的「完成」

  3. 在「Explorer」面板中展開 專案。您會在清單底部看到 coffee_on_wheels 資料集。

  4. 展開「coffee_on_wheels」資料集,您會看到 menu 資料表。

  5. 點選「menu」資料表,您會看到 menu 結構定義。

  6. 檢查結構定義的詳細資料。

  7. 回答這個問題:

    哪些欄位的資料類型為 FLOAT?

檢查 order_item 資料表結構定義

  1. 點選「order_item」資料表,您會看到 order_item 結構定義。

  2. 檢查結構定義的詳細資料。

  3. 回答這個問題:

    哪些欄位的資料類型為 INTEGER?

工作 2:使用自然語言提示生成 SQL 查詢

在這項工作中,您會使用自然語言提示生成 SQL 查詢,找出菜單中總收益最高和最低的三個品項,以及這些品項的菜單 ID 和總收益。

  1. 點選 圖示,建立新的 SQL 查詢。新分頁會在 BigQuery Studio 中顯示。

  2. 點選 即可使用 SQL 生成工具,您會看到「透過 Gemini 生成 SQL」對話方塊。您可以在此視窗中輸入自然語言提示,生成新的 SQL 陳述式。

  3. 輸入下列提示。

    從 order_item 資料表找出總收益最高和最低的三個品項,顯示這些品項的菜單 ID 和總收益。
  4. 點選「產生」,您會看到 Gemini 建立的 SQL 陳述式,如下所示:

    ( SELECT menu_id, SUM(item_total) AS total_revenue FROM `{{{project_0.project_id|set at lab start}}}.coffee_on_wheels.order_item` GROUP BY 1 ORDER BY total_revenue DESC LIMIT 3 ) UNION ALL ( SELECT menu_id, SUM(item_total) AS total_revenue FROM `{{{project_0.project_id|set at lab start}}}.coffee_on_wheels.order_item` GROUP BY 1 ORDER BY total_revenue LIMIT 3 );
  5. 點選「插入」,生成的查詢會新增至「未命名的查詢」分頁。

說明查詢

  1. 選取查詢。

  2. 點選緊鄰查詢左側的 圖示。

  3. 點選「說明這項查詢」

  4. 您會看到 Gemini 對話方塊在 BigQuery Studio 的右側開啟。

  5. 點選「開始對話」,您會在對話視窗中,看到類似下方的查詢說明。

  6. 檢查說明。Gemini 會提供回覆摘要,如下所示:

    總結來說,此查詢可助您依據收益找出最熱門和最冷門的菜單品項,為業務決策提供寶貴的深入分析。
  7. 點選「執行」,結果顯示六個菜單品項,也就是銷量最高和最低的三個品項。

回顧時間

  1. 思考一下,根據您的資料和 BigQuery 用途,您要如何使用程式碼生成功能?
  2. 此外,又將如何使用程式碼說明功能?

點選「Check my progress」,確認目標已達成。 擷取收益最高和最低的三個菜單 ID。

工作 3:轉換查詢

您在前一項工作中建立的查詢很實用,但缺少了一些重要資訊。舉例來說,您不知道菜單品項名稱,且「total_revenue」欄的小數位數過多。

如要取得菜單品項名稱,您需要彙整 menu 和 order item 資料表。您也能設定「total_revenue」欄位的格式,只顯示到小數點後兩位。

在這項工作中,您會使用 Gemini 的轉換功能撰寫提示,解決這些問題。

彙整 menu 和 order item 資料表,即可取得菜單品項名稱

  1. 點選 圖示,建立新的 SQL 查詢。新分頁會在 BigQuery Studio 中顯示。

  2. 點選 即可使用 SQL 生成工具,您會看到「透過 Gemini 生成 SQL」對話方塊。您可以在此視窗中輸入自然語言提示,生成新的 SQL 陳述式。

  3. 輸入下列提示。

    結合 menu 資料表與 order item 資料表、傳回 menu_id 和 item_name,並按照 total_revenue 顯示總收益最高和最低的三個品項。
  4. 點選「產生」,您會看到 Gemini 建立的 SQL 陳述式,如下所示:

    ( SELECT t1.menu_id, t1.item_name, SUM(t2.item_total) AS total_revenue FROM `{{{project_0.project_id|set at lab start}}}.coffee_on_wheels.menu` AS t1 INNER JOIN `{{{project_0.project_id|set at lab start}}}.coffee_on_wheels.order_item` AS t2 ON t1.menu_id = t2.menu_id GROUP BY 1, 2 ORDER BY total_revenue DESC LIMIT 3 ) UNION ALL ( SELECT t1.menu_id, t1.item_name, SUM(t2.item_total) AS total_revenue FROM `{{{project_0.project_id|set at lab start}}}.coffee_on_wheels.menu` AS t1 INNER JOIN `{{{project_0.project_id|set at lab start}}}.coffee_on_wheels.order_item` AS t2 ON t1.menu_id = t2.menu_id GROUP BY 1, 2 ORDER BY total_revenue LIMIT 3 );
  5. 點選「插入」,生成的查詢會新增至「未命名的查詢」分頁。

說明查詢

  1. 選取查詢。

  2. 點選緊鄰查詢左側的 圖示。

  3. 點選「說明這項查詢」,您會看到 Gemini 對話視窗中顯示說明和摘要,如下所示:

    此查詢能從咖啡店的菜單中,輕鬆快速地找出最熱門和最冷門的品項,為商家的庫存管理、定價和品項調整提供寶貴的決策依據。
  4. 查看說明的詳細內容。

  5. 點選「執行」,結果顯示六個菜單品項,也就是銷量最高和最低的三個品項。不過,這次您不只會看到「menu_id」和「total_revenue」欄位,也會看到這兩欄之間多了「item_name」欄位。

  6. 回答下列問題:

    • 哪個品項的收益最高?
    • 哪個品項的收益最低?

點選「Check my progress」,確認目標已達成。 結合 menu 和 order item 資料表,即可擷取菜單品項名稱。

轉換查詢來移除多餘的小數位數

  1. 選取查詢。

  2. 點選 即可使用 SQL 生成工具。

  3. 點選「轉換」,您會看到「透過 Gemini 轉換 SQL」彈出式視窗。

  4. 輸入下列提示。

    設定總收益欄的格式,只顯示到小數點後兩位。
  5. 點選「產生」,您會看到生成的新查詢。

    注意:BigQuery 會以顏色區分程式碼的差異,換掉的行會以紅色背景顯示,根據提示修改而成的新行則會以綠色背景顯示。
  6. 點選「插入」,您會在「未命名的查詢」分頁中看到新查詢。

    ( SELECT t1.menu_id, t1.item_name, ROUND(SUM(t2.item_total), 2) AS total_revenue FROM `{{{project_0.project_id|set at lab start}}}.coffee_on_wheels.menu` AS t1 INNER JOIN `{{{project_0.project_id|set at lab start}}}.coffee_on_wheels.order_item` AS t2 ON t1.menu_id = t2.menu_id GROUP BY 1, 2 ORDER BY total_revenue DESC LIMIT 3 ) UNION ALL ( SELECT t1.menu_id, t1.item_name, ROUND(SUM(t2.item_total), 2) AS total_revenue FROM `{{{project_0.project_id|set at lab start}}}.coffee_on_wheels.menu` AS t1 INNER JOIN `{{{project_0.project_id|set at lab start}}}.coffee_on_wheels.order_item` AS t2 ON t1.menu_id = t2.menu_id GROUP BY 1, 2 ORDER BY total_revenue LIMIT 3 );
  7. 點選「執行」,您會看到這次查詢結果與先前非常類似,但現在總收益欄位只會顯示到小數點後兩位。

回顧時間

  1. Clouds of Coffee Delight 這個品項創造了多少總收益?

  2. 思考一下,根據您的資料和 BigQuery 用途,您要如何使用程式碼生成功能?

點選「Check my progress」,確認目標已達成。 設定總收益欄的格式,只顯示到小數點後兩位。

工作 4:程式碼檢查、偵錯及建議

搭配使用 Gemini 與 BigQuery 時,也能運用程式碼檢查及偵錯功能。如果發生錯誤,您可以要求 Gemini 提供建議來修正程式碼並排解錯誤。

情境

您的團隊成員撰寫了下列 SQL 程式碼:

SELECT oi.menu_id, m.item_name, SUM(oi.item_total) AS total_revenue FROM `{{{project_0.project_id|set at lab start}}}.coffee_on_wheels.order_item` AS oi INNER JOIN `{{{project_0.project_id|set at lab start}}}.menu` AS m ON oi.menu_id = m.menu_id WHERE m.item_size = 'Small' GROUP BY 1, 2 ORDER BY total_revenue DESC LIMIT 10;

這些程式碼的目標是從 coffee_on_wheels 資料集擷取總收益前十名的小型品項,並顯示 menu_iditem_nametotal_revenue 欄位。

不過,您的團隊成員在執行這段 SQL 程式碼時,收到下列錯誤訊息:

找不到 資料集:在位置 US 中找不到

團隊成員無法解決此問題。

您需要使用 Gemini 和 coffee_on_wheels 資料集,解決這段 SQL 程式碼的問題。

檢查程式碼

  1. 點選 圖示,建立新的 SQL 查詢。

  2. 輸入下列查詢。

    SELECT oi.menu_id, m.item_name, SUM(oi.item_total) AS total_revenue FROM `{{{project_0.project_id|set at lab start}}}.coffee_on_wheels.order_item` AS oi INNER JOIN `{{{project_0.project_id|set at lab start}}}.menu` AS m ON oi.menu_id = m.menu_id WHERE m.item_size = 'Small' GROUP BY 1, 2 ORDER BY total_revenue DESC LIMIT 10;
  3. 點選「執行」,您會看到查詢執行失敗,並顯示下列錯誤訊息:

    找不到 資料集:在位置 US 中找不到

運用 Gemini 對程式碼進行偵錯,並排解錯誤

  1. 開啟 BigQuery 中的 Gemini Chat 視窗。

  2. 在對話視窗中輸入下列問題。

    為什麼我在執行此查詢後,會收到「找不到 :在位置 US 中找不到 」的錯誤訊息?
  3. 按下 SHIFT + ENTER 鍵或 Mac 的 SHIFT + return 鍵,在對話視窗中建立新行。

  4. 選取並複製查詢。

  5. 將查詢貼到您剛才輸入的問題後方。

  6. 按下 SHIFT + ENTER 鍵或 Mac 的 SHIFT + return 鍵,在對話視窗中建立新行。

  7. 輸入下列句子:

    請建議新的程式碼來解決所有問題。
  8. 點選 圖示,您會收到 Gemini 的回覆。

  9. 查看回覆中的建議。

    根據這些建議,您判斷問題最可能的原因是,查詢中針對 menu 資料表的 INNER JOIN 陳述式,並未正確指定 coffee_on_wheels 資料集名稱。

    Gemini 在建議中提供了可行的解決方案,包括修正後的查詢,如下所示:

    SELECT oi.menu_id, m.item_name, SUM(oi.item_total) AS total_revenue FROM `{{{project_0.project_id|set at lab start}}}.coffee_on_wheels.order_item` AS oi INNER JOIN `{{{project_0.project_id|set at lab start}}}.coffee_on_wheels.menu` AS m ON oi.menu_id = m.menu_id WHERE m.item_size = 'Small' GROUP BY 1, 2 ORDER BY total_revenue DESC LIMIT 10;
  10. 複製修正後的查詢。

  11. 點選 圖示,開啟新的「未命名的查詢」分頁。

  12. 在新的「未命名的查詢」分頁中,貼上修正後的查詢。

  13. 點選「執行」,查詢結果會顯示菜單中總收益最高的 10 個小型品項,以及這些品項的名稱和總收益。

這項結果已非常接近團隊成員的需求,但修正後的查詢依然有一點小問題。請注意,「total_revenue」欄位有過多的小數位數。您可以按照下列步驟,要求 Gemini 修正此問題。

將「total_revenue」欄位設為最多到小數點後兩位

  1. 在 Gemini 對話視窗中輸入下列提示。

    我需要修正此查詢。
  2. 按下 SHIFT + ENTER 鍵或 Mac 的 SHIFT + return 鍵,在對話視窗中建立新行。

  3. 選取並複製查詢。

  4. 將查詢貼到第一部分提示的後方。

  5. 按下 SHIFT + ENTER 鍵或 Mac 的 SHIFT + return 鍵,在對話視窗中建立新行。

  6. 在提示結尾加入下列文字。

    重構程式碼,讓結果中「total_revenue」欄位的值四捨五入到小數點後兩位。
  7. 確認提示是否如下列所示:

    我需要修正此查詢。SELECT oi.menu_id, m.item_name, SUM(oi.item_total) AS total_revenue FROM `.coffee_on_wheels.order_item` AS oi INNER JOIN `.coffee_on_wheels.menu` AS m ON oi.menu_id = m.menu_id WHERE m.item_size = 'Small' GROUP BY 1, 2 ORDER BY total_revenue DESC LIMIT 10; 重構程式碼,讓結果中「total_revenue」欄位的值四捨五入到小數點後兩位。
  8. 點選 圖示,您會看到下方的 Gemini 回覆。

    SELECT oi.menu_id, m.item_name, ROUND(SUM(oi.item_total), 2) AS total_revenue -- Round to 2 decimal places FROM `{{{project_0.project_id|set at lab start}}}.coffee_on_wheels.order_item` AS oi INNER JOIN `{{{project_0.project_id|set at lab start}}}.coffee_on_wheels.menu` AS m ON oi.menu_id = m.menu_id WHERE m.item_size = 'Small' GROUP BY 1, 2 ORDER BY total_revenue DESC LIMIT 10;

    以及類似下方的說明:

    如要將「total_revenue」欄位的值限制在小數點後兩位,可以在 BigQuery 使用 ROUND() 函式。ROUND(SUM(oi.item_total), 2):查詢的此部分會使用 ROUND() 函式,將「oi.item_total」的值四捨五入到小數點後兩位。ROUND() 函式中的 2 表示要保留的小數位數。
  9. 複製重構後的程式碼。

  10. 點選 圖示,開啟新的「未命名的查詢」分頁。

  11. 在新的「未命名的查詢」分頁中,貼上重構後的查詢。

  12. 點選「執行」,查詢結果會顯示菜單中總收益最高的 10 個小型品項,以及這些品項的名稱和總收益。

您確認結果符合預期,並將查詢回傳給團隊成員。對方非常感謝您的協助。

回顧時間

  1. 回答這個問題:「收益第 5 高的品項名稱為何?創造了多少收益?」

  2. 思考一下,根據您的資料和用途,您要如何使用程式碼檢查及建議功能,修正難以解決的程式碼問題?

點選「Check my progress」,確認目標已達成。 修正錯誤,並擷取收益最高的前 10 個小型品項。

恭喜!

您使用自然語言提示生成了 SQL 查詢,並透過程式碼說明功能瞭解您不熟悉的查詢。您也成功使用 Gemini 協助檢查程式碼及進行偵錯,還透過 Gemini 的建議功能來改良甚至修正程式碼。您更加熟悉如何在有/無程式碼時,透過 Gemini in BigQuery 撰寫查詢,甚至還瞭解如何排解查詢問題。您對 BigQuery 的掌握程度日益增加,並能使用 Gemini 拓展您的知識與技巧。

後續步驟/瞭解詳情

Google Cloud 教育訓練與認證

協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。

使用手冊上次更新日期:2024 年 11 月 6 日

實驗室上次測試日期:2024 年 11 月 6 日

Copyright 2025 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

请使用无痕模式或无痕式浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。