במסמך הזה מוסבר איך לנהל סכימות של Spanner Graph. מפורטים בו התהליכים של יצירה, עדכון והסרה של סכימות באמצעות הצהרות DDL.
מידע נוסף על סכימות של תרשימי מאפיינים זמין במאמר סקירה כללית על סכימות של Spanner Graph. אם נתקלתם בשגיאות כשניסיתם ליצור סכימה של תרשים מאפיינים, כדאי לעיין במאמר בנושא פתרון בעיות ב-Spanner Graph.
יצירת סכימה של גרף נכסים
אפשר ליצור סכימת גרף של מאפיינים באמצעות תצוגות או טבלאות. כדי ליצור סכימת גרף מאפיינים באמצעות טבלאות:
במאמר יצירת Spanner Graph מתצוגת SQL מוסבר איך להשתמש בתצוגות SQL כדי ליצור סכימת גרף של נכס.
כשיוצרים סכימה של גרף מאפיינים, חשוב לפעול לפי השיטות המומלצות. בסעיפים הבאים מוסבר איך להשתמש בטבלאות כדי ליצור סכימה לדוגמה של גרף מאפיינים:
יצירת טבלאות קלט של צמתים
הקוד הבא יוצר שתי טבלאות קלט של צמתים, Person ו-Account, שמשמשות כקלט להגדרות הצמתים בגרף המאפיינים לדוגמה:
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);
יצירת טבלאות קלט ב-Edge
הקוד הבא יוצר שתי טבלאות קלט של קצוות, PersonOwnAccount ו-AccountTransferAccount, כקלט להגדרות הקצוות בגרף המאפיינים לדוגמה:
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 PROPERTY GRAPH כדי להגדיר גרף מאפיינים. ההצהרה הזו מגדירה גרף מאפיינים בשם FinGraph עם צמתי Account ו-Person, וקשתות PersonOwnAccount ו-AccountTransferAccount:
CREATE 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 OR
REPLACE PROPERTY GRAPH. ההצהרה הזו מחילה את השינויים על ידי יצירה מחדש של סכימת הגרף עם העדכון הרצוי.
אפשר לבצע את השינויים הבאים בסכימת גרף הנכס:
כדי להוסיף הגדרה של צומת או קשת: יוצרים את טבלאות הקלט החדשות של הצמתים והקשתות, ואז משתמשים בהצהרת
CREATE OR REPLACE PROPERTY GRAPHכדי להוסיף את ההגדרות החדשות לגרף.עדכון הגדרה של צומת או קשת: מעדכנים את טבלת הקלט הבסיסית בהגדרות חדשות של צמתים וקשתות. לאחר מכן, משתמשים בהצהרת
CREATE OR REPLACE PROPERTY GRAPHכדי לעדכן את ההגדרות בתרשים.הסרת הגדרה של צומת או קשת: משתמשים בהצהרת
CREATE OR REPLACE PROPERTY GRAPHומשמיטים את ההגדרות שרוצים להסיר מהגרף.
הוספת הגדרות חדשות של צמתים או קשתות
כדי להוסיף צומת חדש והגדרה חדשה של קשת, פועלים לפי השלבים הבאים:
מוסיפים טבלת קלט חדשה להגדרת צומת,
Company, וטבלת קלט חדשה להגדרת קצה,PersonInvestCompany.CREATE TABLE Company ( id INT64 NOT NULL, name STRING(MAX) ) PRIMARY KEY (id); CREATE TABLE PersonInvestCompany ( id INT64 NOT NULL, company_id INT64 NOT NULL, FOREIGN KEY (company_id) REFERENCES Company (id) ) PRIMARY KEY (id, company_id), INTERLEAVE IN PARENT Person ON DELETE CASCADE;מעדכנים את סכימת
FinGraphעל ידי הוספת ההגדרה של הצומת החדשCompanyוההגדרה של הקצה החדשPersonInvestCompany.CREATE OR REPLACE PROPERTY GRAPH FinGraph NODE TABLES ( Person, Account, Company ) EDGE TABLES ( AccountTransferAccount SOURCE KEY (id) REFERENCES Account DESTINATION KEY (to_id) REFERENCES Account LABEL Transfers, PersonOwnAccount SOURCE KEY (id) REFERENCES Person DESTINATION KEY (account_id) REFERENCES Account LABEL Owns, PersonInvestCompany SOURCE KEY (id) REFERENCES Person DESTINATION KEY (company_id) REFERENCES Company LABEL Invests );
עדכון ההגדרות של צומת או קשת
כדי לעדכן הגדרה קיימת של צומת או קשת, קודם משנים את טבלת הקלט הבסיסית, ואז משתמשים בהצהרת CREATE OR REPLACE PROPERTY GRAPH כדי להחיל את שינויי הסכימה על הגרף. כדי להתאים אישית את המאפיינים שמוצגים מטבלאות הקלט, משתמשים בPROPERTIES clause.
מידע נוסף זמין במאמר בנושא התאמה אישית של תוויות ומאפיינים.
בשלבים הבאים מוסבר איך לעדכן את הטבלה הבסיסית של סכימה, ואז להחיל את העדכון על הסכימה.
מוסיפים את העמודה
mailing_addressלטבלת הקלט הבסיסיתPerson.ALTER TABLE Person ADD COLUMN mailing_address STRING(MAX);החלת השינויים בטבלה
Personעל הסכימה. משתמשים בהצהרהCREATE OR REPLACE PROPERTY GRAPH. ההגדרה של צומתPersonמשקפת את ההגדרה המעודכנת של טבלתPersonכי סכימת טבלת הקלט השתנתה.CREATE OR REPLACE PROPERTY GRAPH FinGraph NODE TABLES ( Person, Account ) EDGE TABLES ( AccountTransferAccount SOURCE KEY (id) REFERENCES Account DESTINATION KEY (to_id) REFERENCES Account LABEL Transfers, PersonOwnAccount SOURCE KEY (id) REFERENCES Person DESTINATION KEY (account_id) REFERENCES Account LABEL Owns );
הסרת הגדרות של צומת או קשת
כדי להסיר הגדרות קיימות של צמתים או קשתות, צריך ליצור מחדש את גרף המאפיינים בלי טבלאות הצמתים או הקשתות האלה.
הדוגמה הבאה מסירה את הגדרת הצומת Person ואת הגדרת הקצה PersonOwnAccount על ידי השמטה שלהן בהצהרה CREATE OR REPLACE PROPERTY GRAPH.
CREATE OR REPLACE PROPERTY GRAPH FinGraph
NODE TABLES (
Account
)
EDGE TABLES (
AccountTransferAccount
SOURCE KEY (id) REFERENCES Account
DESTINATION KEY (to_id) REFERENCES Account
LABEL Transfers
);
מחיקת סכימת גרף של נכס
כדי להסיר סכימת גרף מטבלאות הקלט הבסיסיות, משתמשים בהצהרת DROP PROPERTY
GRAPH DDL. כשמבטלים סכימה, אי אפשר למחוק את הנתונים מהטבלה הבסיסית.
הקוד הבא משמיט את סכימת גרף המאפיינים FinGraph:
DROP PROPERTY GRAPH FinGraph;
המאמרים הבאים
- ניהול נתונים של Spanner Graph.
- מידע נוסף על שאילתות של Spanner Graph
- שיטות מומלצות לשיפור השאילתות ב-Spanner Graph