本文說明如何使用 Google Cloud 控制台和用戶端程式庫,設定及查詢 Spanner 圖表。以下主題可協助您瞭解如何:
如要瞭解 Spanner 定價詳細資料,請參閱 Spanner 定價。
如要試用程式碼研究室,請參閱「開始使用 Spanner Graph」。
事前準備
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- 系統應會自動啟用 Spanner API。如果沒有,請手動啟用: 啟用 Spanner API
-
如要取得建立執行個體和資料庫所需的權限,請要求管理員為您授予專案的 Cloud Spanner 管理員 (
roles/spanner.admin
) 身分與存取權管理角色。 -
如要取得查詢 Spanner 圖表所需的權限 (如果未獲授 Cloud Spanner 管理員角色),請要求管理員授予您專案的 Cloud Spanner 資料庫讀取者 (
roles/spanner.databaseReader
) IAM 角色。 前往 Google Cloud 控制台的「Spanner」頁面。
選取或建立 Google Cloud 專案 (如果尚未建立)。
執行下列其中一個步驟:
如果您先前未建立 Spanner 執行個體,請在「Welcome to Spanner」(歡迎使用 Spanner) 頁面上,按一下「Create a provisioned instance」(建立已佈建的執行個體)。
如果您已建立 Spanner 執行個體,請在「Instances」(執行個體) 頁面中,按一下「Create instance」(建立執行個體)。
在「選取版本」頁面中,選取「Enterprise Plus」或「Enterprise」。
Spanner Graph 僅適用於 Enterprise 版或 Enterprise Plus 版。如要比較不同版本,請按一下「比較版本」。詳情請參閱 Spanner 版本總覽。
按一下「繼續」。
在「Instance name」(執行個體名稱) 中輸入執行個體名稱,例如
test-instance
。在「Instance ID」(執行個體 ID) 中保留或變更執行個體 ID。執行個體 ID 預設為執行個體名稱,但您可以變更。執行個體名稱和執行個體 ID 可以相同,也可以不同。
按一下「繼續」。
在「選擇設定」中,執行下列操作:
請選取「區域」。
在「選取設定」中,選取區域。您選取的區域是執行個體的儲存和複製位置。
按一下「繼續」。
在「設定運算能力」中,執行下列操作:
在「選取單位」中,選取「處理單元 (PU)」。
在「選擇調整資源配置模式」中,保留選取的「手動分配」,並在「數量」中保留 1000 個處理單元。
點選「建立」。 Google Cloud 控制台會顯示您所建立執行個體的「總覽」頁面。
- 前往 Google Cloud 控制台的「Spanner Instances」(Spanner 執行個體) 頁面。
按一下您建立的執行個體,例如
Test Instance
。在「總覽」中,按一下執行個體名稱下方的「建立資料庫」。
在「Database name」(資料庫名稱) 中輸入資料庫名稱。例如:
example-db
。在「選取資料庫方言」中,選擇 Google 標準 SQL。 PostgreSQL 方言不支援 Spanner Graph。您目前的資料庫建立頁面如下所示:
複製下列結構定義,並貼到「DDL Templates」編輯器分頁中。 結構定義包含兩個節點資料表定義 (
Person
和Account
),以及兩個邊緣資料表定義 (PersonOwnAccount
和AccountTransferAccount
)。Spanner Graph 會使用關聯式資料表定義圖形,因此您會在結構定義中看到關聯式資料表和圖形陳述式。如要進一步瞭解 Spanner Graph 結構定義,請參閱「Spanner Graph 結構定義總覽」。CREATE TABLE Person ( id INT64 NOT NULL, name STRING(MAX), birthday TIMESTAMP, country STRING(MAX), city STRING(MAX), ) PRIMARY KEY (id); CREATE TABLE Account ( id INT64 NOT NULL, create_time TIMESTAMP, is_blocked BOOL, nick_name STRING(MAX), ) PRIMARY KEY (id); CREATE TABLE PersonOwnAccount ( id INT64 NOT NULL, account_id INT64 NOT NULL, create_time TIMESTAMP, FOREIGN KEY (account_id) REFERENCES Account (id) ) PRIMARY KEY (id, account_id), INTERLEAVE IN PARENT Person ON DELETE CASCADE; CREATE TABLE AccountTransferAccount ( id INT64 NOT NULL, to_id INT64 NOT NULL, amount FLOAT64, create_time TIMESTAMP NOT NULL, order_number STRING(MAX), FOREIGN KEY (to_id) REFERENCES Account (id) ) PRIMARY KEY (id, to_id, create_time), INTERLEAVE IN PARENT Account ON DELETE CASCADE; CREATE OR REPLACE PROPERTY GRAPH FinGraph NODE TABLES (Account, Person) EDGE TABLES ( PersonOwnAccount SOURCE KEY (id) REFERENCES Person (id) DESTINATION KEY (account_id) REFERENCES Account (id) LABEL Owns, AccountTransferAccount SOURCE KEY (id) REFERENCES Account (id) DESTINATION KEY (to_id) REFERENCES Account (id) LABEL Transfers );
請勿在「顯示加密選項」中進行任何變更。
按一下「建立」。 Google Cloud 控制台會顯示您所建立資料庫的「總覽」頁面。
在「Spanner Studio」頁面中,按一下
「新增分頁」或使用編輯器分頁。複製下列圖形資料插入陳述式,並貼到節點和邊緣。
INSERT INTO Account (id, create_time, is_blocked, nick_name) VALUES (7,"2020-01-10 06:22:20.222",false,"Vacation Fund"), (16,"2020-01-27 17:55:09.206",true,"Vacation Fund"), (20,"2020-02-18 05:44:20.655",false,"Rainy Day Fund"); INSERT INTO Person (id, name, birthday, country, city) VALUES (1,"Alex","1991-12-21 00:00:00","Australia","Adelaide"), (2,"Dana","1980-10-31 00:00:00","Czech_Republic","Moravia"), (3,"Lee","1986-12-07 00:00:00","India","Kollam"); INSERT INTO AccountTransferAccount (id, to_id, amount, create_time, order_number) VALUES (7,16,300,"2020-08-29 15:28:58.647","304330008004315"), (7,16,100,"2020-10-04 16:55:05.342","304120005529714"), (16,20,300,"2020-09-25 02:36:14.926","103650009791820"), (20,7,500,"2020-10-04 16:55:05.342","304120005529714"), (20,16,200,"2020-10-17 03:59:40.247","302290001255747"); INSERT INTO PersonOwnAccount (id, account_id, create_time) VALUES (1,7,"2020-01-10 06:22:20.222"), (2,20,"2020-01-27 17:55:09.206"), (3,16,"2020-02-18 05:44:20.655");
按一下「執行」。執行完成後,「結果」分頁會顯示已插入 3 個資料列。
在資料庫的「總覽」頁面中,按一下導覽選單中的「Spanner Studio」。
在「Spanner Studio」頁面中,按一下
「新增分頁」或使用編輯器分頁。在查詢編輯器中輸入下列查詢。這項查詢會找出 Dana 匯款的對象,以及匯款金額。
GRAPH FinGraph MATCH (from_person:Person {name: "Dana"})-[:Owns]-> (from_account:Account)-[transfer:Transfers]-> (to_account:Account)<-[:Owns]-(to_person:Person) RETURN from_person.name AS from_account_owner, from_account.id AS from_account_id, to_person.name AS to_account_owner, to_account.id AS to_account_id, transfer.amount AS amount
按一下「執行」。
「結果」分頁會顯示從 Dana 到
Account {id:20}
的下列路徑:- 傳送至小艾擁有的「
Account {id:7}
」。 轉移給李擁有的「
Account {id:16}
」。
- 傳送至小艾擁有的「
前往 Google Cloud 控制台的「Spanner Instances」(Spanner 執行個體) 頁面。
按一下要刪除資料庫的執行個體名稱,例如「Test Instance」。
按一下要刪除的資料庫名稱,例如 example-db。
在「Database details」(資料庫詳細資料) 頁面,按一下「Delete database」(刪除資料庫)。
輸入資料庫名稱,然後按一下「刪除」,確認要刪除資料庫。
前往 Google Cloud 控制台的「Spanner Instances」(Spanner 執行個體) 頁面。
按一下要刪除的執行個體名稱,例如「Test Instance」。
按一下 [Delete instance] (刪除執行個體)。
輸入執行個體名稱,然後按一下「刪除」,確認要刪除執行個體。
- 如要進一步瞭解 Spanner Graph,請參閱codelab。
- 瞭解 Spanner Graph 結構定義。
- 建立、更新或捨棄 Spanner 圖表結構定義。
- 插入、更新或刪除 Spanner Graph 資料。
- Spanner Graph 查詢總覽。
- 遷移至 Spanner Graph。
建立執行個體
首次使用 Spanner 時,必須建立執行個體,這是 Spanner 資料庫會使用的資源分配單位。本節說明如何使用 Google Cloud 控制台建立執行個體。
使用 Spanner Graph 結構定義建立資料庫
本節說明如何使用 Google Cloud 主控台和用戶端程式庫,建立具有 Spanner Graph 結構定義的資料庫。
主控台
用戶端程式庫
Python
Java
Go
C++
插入圖表資料
本節說明如何使用 Google Cloud 主控台和用戶端程式庫 將資料插入 Spanner 圖表。
主控台
用戶端程式庫
Python
Java
Go
C++
下圖顯示插頁中的人員、帳戶、帳戶擁有權和帳戶轉移:
執行圖形查詢
本節說明如何使用 Google Cloud 控制台或用戶端程式庫,執行 Spanner 圖表結構定義查詢。
主控台
用戶端程式庫
Python
Java
Go
C++
清除所用資源
「後續步驟」中的許多範例都會使用您在本文件中設定的資源。如要繼續使用這些範例操作 Spanner 圖表,請暫時不要執行這些清除步驟。本節說明如何使用 Google Cloud 控制台清除資源。
否則,為避免系統向您的 Cloud 帳單帳戶收取額外費用,請刪除您在設定期間建立的資料庫和執行個體。刪除執行個體時,也會自動刪除您在其中建立的所有資料庫。