Spanner Graph הוא תכונה של Spanner ו-Spanner Omni שמאפשרת לכם ליצור גרפים של מאפיינים ולהריץ עליהם שאילתות באמצעות מסד נתונים של גרפים ישירות ב-Spanner. Spanner Graph משלב את יכולת ההתאמה לעומס והאמינות של Spanner עם העוצמה של מידול גרפים ושליחת שאילתות.
בגרפים של נכסים, הנתונים מיוצגים כצמתים (ישויות) וכקשתות (קשרים בין ישויות), ולכל אחד מהם יכולים להיות מאפיינים (תוויות ומטא-נתונים). האפשרות הזו שימושית במיוחד לנתונים מורכבים ומקושרים מאוד, כמו רשתות חברתיות, זיהוי הונאות ומנועי המלצות.
הנושאים במסמך הזה רלוונטיים ל-Spanner Omni בדיוק כמו שהם רלוונטיים ל-Spanner.
הגדרה של Spanner Graph והרצת שאילתות
כדי להתחיל להשתמש ב-Spanner Graph, צריך קודם ליצור פריסה ומסד נתונים של Spanner Omni. אחרי שיוצרים את מסד הנתונים, מגדירים סכימה של גרף מאפיינים שממפה טבלאות קיימות של Spanner Omni לצמתים ולקשתות של הגרף.
אחרי שמגדירים את הסכימה ומזינים נתונים לטבלאות הבסיסיות, אפשר להריץ שאילתות גרף באמצעות Graph Query Language (GQL), הרחבה של GoogleSQL שמיישמת את תקן ISO GQL. מידע נוסף זמין במאמר הגדרה ושליחת שאילתות ב-Spanner Graph במאמרי העזרה של Spanner.
סקירה כללית של סכימת Spanner Graph
סכימת Spanner Graph מפרשת את הנתונים הרלציוניים שלכם כגרף. הסכימה מציינת את טבלאות הצמתים ואת טבלאות הקשתות שמרכיבות את הגרף. כל טבלה ממפה שורות מטבלת Spanner לרכיבי גרף. רכיבים יכולים לכלול תוויות לסיווג שלהם ומאפיינים לאחסון של תכונות. מידע נוסף זמין במאמר סקירה כללית על סכימה במסמכי התיעוד של Spanner.
יצירה וניהול של סכימת Spanner Graph
משתמשים בהצהרות של שפת הגדרת נתונים (DDL) כדי ליצור, לעדכן או להסיר את ההגדרה של גרף הנכסים. ההצהרה CREATE PROPERTY GRAPH מגדירה את הגרף, ומציינת את הטבלאות, המפתחות והתוויות שמשמשים כבסיס לגרף. מידע נוסף זמין במאמר בנושא יצירה וניהול של סכימת Spanner Graph במסמכי התיעוד של Spanner.
שיטות מומלצות לעיצוב סכימה
עיצוב יעיל של סכימה הוא חיוני לביצועים. שיטות מומלצות:
שימוש בשילוב כדי למקם קצוות יחד עם צמתי המקור שלהם.
שימוש באילוצי הפניה (מפתחות זרים) כדי לשמור על שלמות הגרף.
יצירת אינדקסים משניים במאפיינים שמסננים אותם לעיתים קרובות.
בחירה בין עיצובים עם סכימה ועיצובים ללא סכימה על סמך דפוסי השאילתות.
מידע נוסף זמין במאמר בנושא שיטות מומלצות לעיצוב סכימה במסמכי התיעוד של Spanner.
שימוש בתצוגות SQL ליצירת גרף נכסים
אפשר להשתמש בתצוגות SQL כדי להגדיר את הצמתים והקשתות של הגרף. כדי להבין את ההבדלים בין שימוש בתצוגת SQL לבין שימוש בטבלה ליצירת תרשים, אפשר לעיין במאמר היתרונות של יצירת תרשימים באמצעות תצוגות במקום טבלאות במסמכי Spanner.
סקירה כללית של תרשימים שנוצרו מתצוגות SQL
השימוש בתצוגות כרמת הפשטה מספק בקרת גישה ברמת השורה, טרנספורמציות גמישות של נתונים ומעבר חלק יותר ממודלים של נתונים ללא סכימה למודלים של נתונים רשמיים. מידע נוסף זמין במאמר סקירה כללית של תרשימים שנוצרו מתצוגות SQL.
יצירת תרשים מתצוגות SQL
כדי ליצור תרשים מתצוגות, מגדירים את התצוגות באמצעות SQL סטנדרטי. אחר כך, מציינים אותם בסעיפים NODE TABLES או EDGE TABLES בהצהרת CREATE PROPERTY GRAPH. צריך להגדיר באופן מפורש KEY לכל אלמנט מבוסס-צפייה. הפסקה KEY מציינת את העמודות בתצוגת המקור שמזהות באופן ייחודי כל רכיב בתרשים. מידע נוסף מופיע במאמר יצירת תרשים מתצוגות SQL במסמכי התיעוד של Spanner.
ניהול נתונים ב-Spanner Graph
כדי לנהל את הנתונים ב-Spanner Graph, צריך לשנות את הטבלאות הבסיסיות שמגדירות את הגרף. מידע נוסף מופיע במאמר בנושא ניהול נתוני Spanner Graph במאמרי העזרה של Spanner.
| פעולה | תיאור |
|---|---|
| הוספה | מוסיפים שורות חדשות לטבלאות של הצמתים והקשתות באמצעות הצהרות INSERT או ממשקי API של שינויים. |
| עדכון | כדי לשנות מאפיינים קיימים, מעדכנים את העמודות המתאימות בטבלאות הבסיסיות. |
| מחיקה | כדי להסיר צמתים או קצוות, מוחקים את השורות המתאימות. משתמשים ב-ON DELETE CASCADE כדי להסיר אוטומטית קצוות משויכים כשמוחקים צומת. |
שאילתות ב-Spanner Graph
Spanner Graph תומך ב-Graph Query Language (GQL) לשאילתות שמאפשרות לעבור בין נתוני הגרף ולנתח אותם.
סקירה כללית של שאילתות
שאילתות גרף משתמשות בסעיף GRAPH כדי לציין את גרף היעד, ובסעיף MATCH כדי להגדיר את הדפוסים שרוצים למצוא. אפשר להחזיר מאפיינים של צמתים וקשתות, או לבצע צבירה של התוצאות. מידע נוסף זמין במאמר סקירה כללית של שאילתות במאמרי העזרה של Spanner.
עבודה עם נתיבים
נתיבים מייצגים רצפים של צמתים וקשתות בתרשים. אפשר למצוא את כל הנתיבים בין שני צמתים, למצוא את הנתיב הקצר ביותר או לסנן נתיבים על סמך המאפיינים או האורך שלהם באמצעות פונקציות כמו PATH_LENGTH(), NODES() ו-EDGES(). מידע נוסף זמין במאמר עבודה עם נתיבים במסמכי התיעוד של Spanner.
שיטות מומלצות לשיפור השאילתות
כדי לבצע אופטימיזציה של שאילתות גרף:
כדאי להתחיל את המעברים בין הצמתים מצמתים עם קרדינליות נמוכה יותר.
צריך לציין באופן מפורש תוויות לכל התבניות של הצמתים והקשתות.
אפשר להשתמש בפונקציה
IS_FIRST()כדי להגביל את מספר הקצוות שמועברים מצמתים ראשיים עם קרדינליות גבוהה.
מידע נוסף זמין במאמר בנושא שיטות מומלצות לשיפור השאילתות במסמכי Spanner.
שימוש בחיפוש טקסט מלא עם Spanner Graph
Spanner Graph משולב עם יכולות החיפוש בטקסט מלא של Spanner, שמאפשרות לחפש צמתים או קשתות על סמך מאפייני טקסט לא מובנים באמצעות הפונקציה SEARCH(). מידע נוסף זמין במאמר שימוש בחיפוש טקסט מלא ב-Spanner Graph במסמכי העזרה של Spanner.
שימוש בחיפוש וקטורים עם Spanner Graph
אתם יכולים לבצע חיפושים של דמיון וקטורי בנתוני הגרף כדי למצוא את K השכנים הקרובים ביותר (KNN) או את השכנים הקרובים המשוערים (ANN). זה שימושי להמלצות שמבוססות על דמיון ולאפליקציות מבוססות-AI. מידע נוסף מופיע במאמר שימוש בחיפוש וקטורי עם Spanner Graph במאמרי העזרה של Spanner.
ניהול נתונים ללא סכימה באמצעות Spanner Graph
באפליקציות עם מודלים של נתונים שמתפתחים, Spanner Graph תומך בניהול נתונים ללא סכימה. אפשר לאחסן את כל הצמתים והקשתות בטבלאות גנריות יחידות עם JSON עמודות למאפיינים, וכך להוסיף סוגים ומאפיינים חדשים בלי לבצע שינויים ב-DDL. מידע נוסף זמין במאמר בנושא ניהול נתונים ללא סכימה באמצעות Spanner Graph במסמכי Spanner.
מעבר ל-Spanner Graph
אתם יכולים להעביר את נתוני הגרף הקיימים ממסדי נתונים אחרים אל Spanner Graph. התהליך הזה בדרך כלל כולל ייצוא של הנתונים כקובצי CSV או JSON, ואז ייבוא שלהם לטבלאות Spanner שמגבות את גרף הנכס החדש. מידע נוסף זמין במאמר בנושא העברת נתונים ל-Spanner Graph במסמכי התיעוד של Spanner.
הפניה ל-Spanner Graph למשתמשי openCypher
אם יש לכם ניסיון עם openCypher, ההטמעה של GQL ב-Spanner Graph תיראה לכם מוכרת, אבל יש כמה הבדלים בתחביר.
ההפניה הזו עוזרת לכם למפות מושגים ושאילתות של openCypher לסמנטיקה של Spanner Graph MATCH ושל RETURN. מידע נוסף זמין במאמר Spanner Graph reference for openCypher users במסמכי העזרה של Spanner.
פתרון בעיות ב-Spanner Graph
בעיות נפוצות ב-Spanner Graph כוללות הפרות של שלמות רפרנציאלית (קצוות תלויים) ושאילתות שפועלות לאט. פתרון בעיות כולל בדיקה של הגדרות הסכימה, חיפוש של צמתים או קצוות חסרים ושימוש בתוכניות שאילתה כדי לזהות צווארי בקבוק בביצועים. מידע נוסף זמין במאמר פתרון בעיות ב-Spanner Graph במסמכי העזרה של Spanner.