סקירה כללית של Spanner Graph

‫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, שמאפשרות לחפש צמתים או קשתות על סמך מאפייני טקסט לא מובנים באמצעות הפונקציה SEARCH(). מידע נוסף זמין במאמר שימוש בחיפוש טקסט מלא ב-Spanner Graph במסמכי העזרה של Spanner.

אתם יכולים לבצע חיפושים של דמיון וקטורי בנתוני הגרף כדי למצוא את השכנים הקרובים ביותר (K-nearest neighbors,‏ KNN) או את השכנים הקרובים המשוערים (approximate nearest neighbors,‏ 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.

המאמרים הבאים