במאמר הזה מוסבר איך להגדיר מסד נתונים של Spanner Graph ולהריץ עליו שאילתות כדי ליצור מודלים של קשרים מורכבים בין נתונים, לאחסן אותם ולנתח אותם באמצעות Google Cloud המסוף וספריות לקוח.
הנושאים הבאים יעזרו לכם להבין איך:
למידע על פרטי התמחור של Spanner, אפשר לעיין במאמר בנושא תמחור של Spanner.
כדי לנסות codelab, אפשר לעיין במאמר תחילת העבודה עם Spanner Graph.
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify 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.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- מפעילים את Spanner API:
מעבר להפעלת Spanner API
-
כדי לקבל את ההרשאות שנדרשות ליצירת מכונות ומסדי נתונים, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד אדמין של Cloud Spanner (
roles/spanner.admin) בפרויקט.
-
כדי לקבל את ההרשאות שנדרשות לשאילתת גרפים של Spanner אם לא הוקצה לכם התפקיד 'אדמין של Cloud Spanner', צריך לבקש מהאדמין להקצות לכם את התפקיד Cloud Spanner Database Reader (
roles/spanner.databaseReader) ב-IAM בפרויקט.
יצירת מופע Spanner
בפעם הראשונה שמשתמשים ב-Spanner, צריך ליצור מופע, שמוקצים לו משאבים למסדי נתונים של Spanner. בקטע הזה מוסבר איך ליצור מכונה באמצעות מסוף Google Cloud .
נכנסים לדף Spanner במסוף Google Cloud .
בוחרים פרויקט קיים או יוצרים פרויקט חדש. Google Cloud
מבצעים אחת מהפעולות הבאות:
אם עוד לא יצרתם מופע Spanner, בדף ברוכים הבאים ל-Spanner, לוחצים על יצירת מופע עם הקצאת משאבים.
אם יצרתם מופע Spanner, בדף Instances לוחצים על Create instance.
בדף בחירת מהדורה, בוחרים באפשרות Enterprise Plus או Enterprise.
Spanner Graph זמין רק במהדורת Enterprise או במהדורת Enterprise Plus. כדי להשוות בין המהדורות השונות, לוחצים על השוואה בין מהדורות. מידע נוסף זמין במאמר סקירה כללית על מהדורות Spanner.
לוחצים על Continue.
בשדה Instance name, מזינים שם למכונה, לדוגמה,
test-instance.בשדה Instance ID (מזהה המופע), משאירים את מזהה המופע או משנים אותו. מזהה המכונה (instance ID) זהה לשם המכונה כברירת מחדל, אבל אפשר לשנות אותו. השם והמזהה של המכונה יכולים להיות זהים או שונים.
לוחצים על Continue.
בקטע Choose a configuration (בחירת הגדרה), מבצעים את הפעולות הבאות:
משאירים את האפשרות אזורי מסומנת.
בקטע Select a configuration (בחירת הגדרה), בוחרים אזור. Spanner מאחסן את המופעים שלכם ומשכפל אותם באזור שתבחרו.
לוחצים על Continue.
בקטע Configure compute capacity (הגדרת קיבולת מחשוב), מבצעים את הפעולות הבאות:
בקטע בחירת יחידה, בוחרים באפשרות יחידות עיבוד (PU).
בקטע Choose a scaling mode (בחירת מצב שינוי גודל), משאירים את האפשרות Manual allocation (הקצאה ידנית) מסומנת, ובקטע Quantity (כמות), משאירים את הערך 1,000 יחידות עיבוד.
לוחצים על יצירה. במסוף Google Cloud מוצג הדף Overview של המופע שיצרתם.
יצירת מסד נתונים של גרף באמצעות סכימה
בקטע הזה מוסבר איך ליצור מסד נתונים של Spanner Graph באמצעות סכימת Spanner Graph. אפשר להשתמש ב Google Cloud מסוף או בספריות לקוח.
המסוף
נכנסים לדף Spanner Instances במסוף Google Cloud .
לוחצים על המופע שיצרתם, לדוגמה,
Test Instance.בדף סקירה כללית, מתחת לשם המופע, לוחצים על יצירת מסד נתונים.
בשדה שם מסד הנתונים, מזינים שם למסד הנתונים. לדוגמה,
example-db.בקטע Select database dialect (בחירת ניב מסד הנתונים), בוחרים באפשרות Google Standard SQL (SQL סטנדרטי של Google). התכונה Spanner Graph לא זמינה בניב PostgreSQL.
מזינים את הסכימה הבאה בכרטיסיית העריכה 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 );משאירים את הגדרות ברירת המחדל בהצגת אפשרויות ההצפנה.
לוחצים על Create (יצירה). במסוף Google Cloud מוצג הדף Overview (סקירה כללית) של מסד הנתונים שיצרתם.
ספריות לקוח
Python
Java
המשך
C++
הוספת נתוני תרשים
אחרי שיוצרים את מסד הנתונים, אפשר להוסיף לו נתונים. בקטע הזה נסביר איך להוסיף נתונים לתרשים באמצעות המסוף לממשק גרפי, או באמצעות ספריות הלקוח באופן פרוגרמטי. Google Cloud
המסוף
בדף Spanner Studio, לוחצים על New tab או משתמשים בכרטיסיית העריכה.
מעתיקים את הצהרות ההוספה של נתוני התרשים הבאות ומדביקים אותן בצמתים ובקשתות.
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");לוחצים על Run. כשההרצה מסתיימת, בכרטיסייה תוצאות מוצגות 3 שורות שהוכנסו.
ספריות לקוח
Python
Java
המשך
C++
בתרשים הבא מוצגים האנשים, החשבונות, הבעלות על החשבונות והעברות החשבונות מההוספות:
הרצת שאילתת גרף
אחרי שמזינים נתונים לגרף, אפשר להריץ עליו שאילתות כדי למצוא דפוסים וקשרים. בקטע הזה נסביר איך להריץ שאילתות באמצעותGoogle Cloud המסוף לממשק גרפי, או באופן פרוגרמטי באמצעות ספריות לקוח.
המסוף
בדף סקירה כללית של מסד הנתונים, לוחצים על Spanner Studio בתפריט הניווט.
בדף Spanner Studio, לוחצים על New tab או משתמשים בכרטיסיית העריכה.
מזינים את השאילתה הבאה בעורך השאילתות. השאילתה מאתרת את כל מי שדנה העבירה לו כסף, ואת סכום ההעברות.
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לוחצים על Run.
בכרטיסייה תוצאות מוצגים הנתיבים הבאים של דנה, שהיא הבעלים של מספר חשבון 20:
- אל
Account {id:7}בבעלות אלכס. אל
Account {id:16}בבעלות של Lee.
- אל
ספריות לקוח
Python
Java
המשך
C++
הסרת המשאבים
בקטע הזה מוסבר איך לנקות את המשאבים שיצרתם כדי שלא תחויבו בחשבון לחיוב ב-Cloud. אם אתם מתכננים לעיין בדוגמאות נוספות של Spanner Graph בקטע מה השלב הבא, אל תבצעו את השלבים האלה עדיין. מחיקת מופע של Spanner תגרום גם למחיקה של כל מסדי הנתונים במופע הזה.
מחיקת מסד הנתונים
במסוף Google Cloud , עוברים אל Spanner Instances.
לוחצים על שם המכונה, לדוגמה, Test Instance.
לוחצים על השם של מסד הנתונים, לדוגמה, example-db.
בדף פרטי מסד הנתונים, לוחצים על מחיקת מסד הנתונים.
מאשרים שרוצים למחוק את מסד הנתונים על ידי הזנת השם שלו ולחיצה על מחיקה.
מחיקת המכונה
נכנסים לדף Spanner Instances במסוף Google Cloud .
לוחצים על השם של המכונה שרוצים למחוק, למשל, Test Instance.
לוחצים על מחיקת המופע.
כדי לאשר את מחיקת המופע, מזינים את שם המופע ולוחצים על מחיקה.
המאמרים הבאים
- ב-codelab הזה אפשר לקבל מידע נוסף על Spanner Graph.
- מידע נוסף על סכימת Spanner Graph
- יצירה, עדכון או מחיקה של סכימת Spanner Graph.
- הוספה, עדכון או מחיקה של נתוני Spanner Graph.
- סקירה כללית של שאילתות Spanner Graph.
- מעבר אל Spanner Graph.