如要在 AlloyDB for PostgreSQL 中更快編寫、微調及瞭解 SQL 查詢,可以使用 Gemini。Gemini 是Google Cloud中的 AI 輔助協作工具,可在 AlloyDB Studio 中完成下列工作:
瞭解 Gemini for Google Cloud 如何使用您的資料。
本文適用對象為熟悉 AlloyDB,且對 SQL 和資料分析有一定瞭解的資料庫管理員和資料工程師。如果您是 AlloyDB 新手,請參閱「AlloyDB 總覽」。
事前準備
選用:如要按照本文件中的範例操作,請使用下列結構定義建立
Singers資料表:CREATE TABLE Singers ( BirthDate TIMESTAMPTZ, SingerId BIGINT PRIMARY KEY, FirstName VARCHAR(1024), LastName VARCHAR(1024), SingerInfo BYTEA );建立
Singers資料表後,請按一下「重新整理」,更新資料庫結構定義。
如要停用 AlloyDB 中的 Gemini 功能,請重複這個步驟,然後取消選取要停用的 Gemini 功能。
必要角色和權限
如要搭配使用 Gemini 和 AlloyDB,您必須具備下列權限:
alloydb.clusters.getalloydb.databases.listalloydb.instances.executeSqlalloydb.instances.listalloydb.users.listcloudaicompanion.companions.generateCodecloudaicompanion.instances.generateCodeserviceusage.services.get或serviceusage.services.list
您可以透過 roles/alloydb.admin 角色取得這項權限。如果您不具備這個角色,請向組織管理員要求存取權。您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。
此外,請確認您具備用於驗證的資料庫資料庫層級權限。
使用自然語言提示詞生成 SQL 查詢
您可以向 Gemini 提供自然語言註解 (或提示),根據結構定義生成查詢。舉例來說,您可以提示 Gemini 生成 SQL,以回應下列提示:
- 「建立表格來追蹤顧客滿意度問卷調查結果。」
- 「在 Singers 資料表中新增名為 birthday 的日期欄。」
- 「有多少歌手是在 90 年代出生?」
如果結構定義有所變更 (例如新增資料表或資料欄),您必須先點選「重新整理」圖示 更新結構定義,才能使用 Gemini。
如要在 AlloyDB 中使用 Gemini 輔助功能生成 SQL,請按照下列步驟操作:
在 Google Cloud 控制台中,開啟「AlloyDB」AlloyDB頁面。
從清單中選取叢集。
在導覽選單中,點選「AlloyDB」AlloyDB。
選取資料庫和使用者,然後輸入使用者密碼。
按一下「Authenticate」(驗證)。「Explorer」窗格會顯示資料庫中的物件清單。
如要查詢資料庫,請按一下「New SQL editor tab」(新增 SQL 編輯器分頁) 圖示 。確認已啟用 SQL 生成功能。
如要生成 SQL,請在查詢編輯器中輸入註解,開頭為
--,後面接著單行註解,然後按下 Return 鍵。舉例來說,如果輸入提示
-- add a row to table singers並按下 Return 鍵,Gemini 會生成類似下列的 SQL:INSERT INTO Singers (SingerId, FirstName, LastName, BirthDate) VALUES (1, Alex, 'M.', '1977-10-16');繼續使用
Singers資料表的範例,如果輸入提示-- show all singers born in the 70s,Gemini 會生成類似下列的 SQL:SELECT * FROM Singers WHERE Singers.BirthDate BETWEEN '1970-01-01' AND '1979-12-31'查看 SQL 建議,然後採取下列任一動作:
- 如要查看接受 Gemini 生成 SQL 的選項,請將滑鼠游標懸停在查詢上。系統會顯示下列選項:
- 接受:如要接受建議的查詢,請按下
Tab,然後點選「執行」。 - 接受字詞:如要接受部分建議查詢,請按下
Control+Right arrow鍵 (macOS 則為Command+Right arrow鍵),然後點按「執行」。
- 接受:如要接受建議的查詢,請按下
- 如要編輯原始 SQL,請按下
Tab,編輯 SQL,然後按一下「Run」(執行)。 - 如要關閉建議,請按下
Esc鍵或繼續輸入。
- 如要查看接受 Gemini 生成 SQL 的選項,請將滑鼠游標懸停在查詢上。系統會顯示下列選項:
「幫我寫程式碼」的工具
如要使用「幫我寫程式碼」工具,請按照下列步驟操作:
在 Google Cloud 控制台中,開啟「AlloyDB」AlloyDB頁面。
從清單中選取叢集。
在導覽選單中,點選「AlloyDB」AlloyDB。
選取資料庫和使用者,然後輸入使用者密碼。
按一下「Authenticate」(驗證)。「Explorer」窗格會顯示資料庫中的物件清單。
如要查詢資料庫,請按一下 「New tab」(新增分頁)。
按一下查詢編輯器旁的「pen_spark 幫我寫程式碼」。
在「幫我寫程式碼」視窗中輸入提示詞。例如,
add a row to table singers,然後點選「生成」。Gemini 會生成類似下列內容的 SQL:
INSERT INTO Singers (SingerId, FirstName, LastName, BirthDate) VALUES (1, Alex, 'M.', '1977-10-16');查看生成的 SQL,然後採取下列任一動作:
- 如要接受 Gemini 生成的 SQL,請按一下「Insert」(插入),將陳述式插入查詢編輯器。然後點選「執行」,執行建議的 SQL。
- 如要問問 Gemini 生成新查詢,請按一下「編輯」。修改提示後,按一下「更新」。接著,您可以決定接受新產生的陳述式,或關閉建議。
- 如要關閉建議,請關閉「幫我寫程式碼」視窗。
在查詢編輯器中說明 SQL 陳述式
您可以輸入自然語言查詢,要求系統說明 SQL 查詢。這類說明可協助您瞭解複雜或冗長查詢的語法、基礎結構定義和業務情境。
在 Google Cloud 控制台中,開啟「AlloyDB」AlloyDB頁面。
從清單中選取叢集。
在導覽選單中,點選「AlloyDB」AlloyDB。
選取資料庫和使用者,然後輸入使用者密碼。
按一下「Authenticate」(驗證)。「Explorer」窗格會顯示資料庫中的物件清單。
如要查詢資料庫,請按一下 「New tab」(新增分頁)。
在查詢編輯器貼上查詢。
反白選取要讓 Gemini 說明的查詢,然後按一下 astrophotography_mode「Explain this selected query」(說明所選查詢)。
SQL 說明會顯示在 Gemini Cloud Assist 窗格。
使用 Gemini 修正查詢中的錯誤
Gemini 提供擴充功能,可協助您修正 AlloyDB 查詢中的錯誤,不必離開查詢編輯器。
Gemini 的 AI 輔助功能已整合至查詢編輯器,可提供下列優點:
- 使用查詢編輯器,逐行比較原始查詢與建議變更的新查詢。
- 醒目顯示原始查詢中可能導致問題的部分,並以自然語言提供變更摘要。
- 參考與查詢相關的確切錯誤訊息和結構定義資訊,提供準確、相關的修正建議。
- 不必仰賴第三方一般用途 LLM,這類模型可能無法提供精細的協助,也可能讓資料暴露於潛在的安全風險中。
- 更快速有效率地排解常見問題,例如語法、結構定義和執行階段錯誤。
所需權限
開始前,請確認您具備下列權限:
- 「必要權限」一節所述的權限。
- Gemini for Google Cloud API 權限:
cloudaicompanion.googleapis.com/instances.generateCode。
使用 Gemini 修正查詢
如要使用 Gemini 的功能修正查詢中的特定錯誤,請完成下列步驟:
在 Google Cloud 控制台,開啟「AlloyDB for PostgreSQL」頁面。
從清單中選取叢集。
在導覽選單中,點選「AlloyDB Studio」。
選取資料庫和使用者,然後輸入使用者密碼。
按一下「Authenticate」(驗證)。「Explorer」窗格會顯示資料庫中的物件清單。
在工作列中,按一下 settings_suggestion「Gemini」Gemini,查看 AlloyDB 中的 Gemini 功能。
如要查詢資料庫,請按一下 「New tab」(新增分頁)。
在查詢編輯器中,輸入可能不正確或不完整的查詢。
按一下「執行」。
如果查詢有問題,「Results」(結果) 分頁會傳回錯誤。
按一下「修正」。
在查詢視窗中,分頁會開啟差異編輯器,逐行比較現有查詢與建議變更。查詢編輯器也會提供建議編輯內容的摘要。
查看建議的查詢變更,並視需要更新。
如要接受變更並執行新查詢,請按一下「Accept and run」(接受並執行)。
限制
- 這項功能只能在Google Cloud 控制台的 AlloyDB Studio 查詢編輯器中使用。
- 目前適用 Gemini 脈絡窗口限制。