בדף הזה מוסבר על האופרטורים שמשמשים בתוכניות להפעלת שאילתות ב-Spanner. כדי לקבל מידע על אחזור תוכנית הפעלה לשאילתה ספציפית באמצעות מסוף Google Cloud , אפשר לעיין במאמר הסבר על אופן ההפעלה של שאילתות ב-Spanner.
תוכניות הביצוע תומכות במסדי נתונים של ניב GoogleSQL ובמסדי נתונים של ניב PostgreSQL.
מיפוי של מבני SQL לאופרטורים של ביצוע שאילתות
המיפוי המדויק בין מבני SQL לבין אופרטורים של ביצוע שאילתות תלוי באופטימיזציה של השאילתה. בטבלה הבאה מוצגים כמה מיפויים נפוצים:
| SQL | אופרטור להרצת שאילתה |
|---|---|
| הפניה לטבלה | סריקת טבלה, סריקת אינדקס |
WHERE |
סינון סריקה, סינון |
GROUP BY |
Aggregate |
פונקציה סקלרית (כמו ISNULL) |
Compute |
פונקציית צבירה (למשל, SUM) |
Aggregate |
JOIN |
כל אופרטור של הצטרפות; ראו הצטרפויות |
| שאילתת משנה | שאילתת משנה מסוג סקלר או מערך |
LIMIT |
מגבלה, מגבלת מיון |
ORDER BY |
מיון, מגבלת מיון |
אופרטורים של ביצוע שאילתות
בקטע הזה מפורטים כל האופרטורים של ביצוע שאילתות שיכולים להופיע בתוכנית לביצוע שאילתות ב-Spanner.
אופרטורים של עלים
אופרטורים שאין להם צאצאים.
| שם | סיכום |
|---|---|
| Array unnest | הפונקציה הזו משטחת מערך קלט לשורות של רכיבים. |
| יצירת קשר | מחזירה אפס שורות או יותר. |
| קשר בין יחידות | הפונקציה מחזירה שורה אחת. |
| קשר ריק | לא מחזירה שורות. |
| סריקה | סורקת מקור של שורות ומחזירה אותן. |
| סינון הסריקה | המסנן פועל עם הסריקה כדי לצמצם את מספר השורות שנקראות ממסד הנתונים. |
אופרטורים אונריים
מפעילים שיש להם צאצא יחיד.
| שם | סיכום |
|---|---|
| Aggregate | מיישם GROUP BY הצהרות SQL ופונקציות צבירה. |
| החלת מוטציות | הפונקציה מחילה על הטבלה את השינויים מהצהרת שפת הטיפול בנתונים (DML). |
| יצירת קובץ אצווה | הפונקציה מחלקת את שורות הקלט לרצף. |
| Compute | הפלט נוצר על ידי קריאת שורות הקלט והוספה של עמודה אחת או יותר שמחושבות באמצעות ביטויים סקלריים. |
| מבנה Compute | יוצר משתנה למבנה שמכיל שדות לכל אחת מעמודות הקלט. |
| DataBlockToRowAdapter | התאמה של שיטת ביצוע מבוססת-אצווה לשיטת ביצוע מבוססת-שורה. |
| מסנן | הפונקציה קוראת את כל השורות מהקלט, מחילה פרדיקט סקלרי על כל שורה ואז מחזירה רק את השורות שמקיימות את הפרדיקט. |
| מגבלה | מגבילה את מספר השורות שמוחזרות. |
| איגוד מקצועי מקומי מפוצל | הפונקציה מאתרת פיצולים של טבלאות שמאוחסנים בשרת המקומי, מפעילה שאילתת משנה על כל פיצול ואז יוצרת איחוד שמשלב את כל התוצאות. |
| הקצאת מזהה רנדומלי | הפלט נוצר על ידי קריאת שורות הקלט והוספת מספר אקראי לכל שורה. |
| RowToDataBlockAdapter | הפונקציה מתאימה שיטת ביצוע שמבוססת על שורות לשיטת ביצוע שמבוססת על קבוצות. |
| Serialize result | מבצע סריאליזציה של כל שורה בתוצאה הסופית של השאילתה כדי להחזיר אותה ללקוח. |
| מיון | הפונקציה קוראת את שורות הקלט, מסדרת אותן לפי עמודה או עמודות, ואז מחזירה את התוצאות הממוינות. |
| פונקציה שמחזירה טבלה (TVF) | הפונקציה יוצרת פלט על ידי קריאת שורות הקלט והחלת הפונקציה שצוינה. |
| קלט של איחוד | מחזירה תוצאות לאופרטור union all. |
אופרטורים בינאריים
אופרטורים שיש להם שני צאצאים יחסיים.
| שם | סיכום |
|---|---|
| הגשת בקשה להצטרפות | כל שורה בצד הקלט מוחלת על הצד של המיפוי באמצעות שיטת החלה. |
| Hash join | הפעולה קוראת שורות מקלט שמסומן כ-build ומוסיפה אותן לטבלת hash על סמך תנאי הצטרפות. |
| מיזוג של הצטרפות | הפעולה צורכת את שני זרמי הקלט בו-זמנית ומוציאה שורות כשתנאי הצירוף מתקיים. |
| איחוד רקורסיבי | מבצעת איחוד של שני קלטים, אחד שמייצג מקרה בסיסי והשני שמייצג מקרה רקורסיבי. |
אופרטורים n-אריים
אופרטורים שיש להם יותר משני צאצאים יחסיים.
| שם | סיכום |
|---|---|
| איחוד של כל הנתונים | משלב את כל קבוצות השורות של הצאצאים שלו בלי להסיר כפילויות. |
אופרטורים מבוזרים
אופרטורים שפועלים בכמה שרתים.
| שם | סיכום |
|---|---|
| איגוד מקצועי מבוזר | מבחינה רעיונית, הפונקציה מחלקת טבלה אחת או יותר לכמה פיצולים, מעריכה מרחוק שאילתת משנה באופן עצמאי בכל פיצול, ואז מאחדת את כל התוצאות. |
| החלה מבוזרת | מרחיב את אופרטור ה-apply join על ידי ביצוע פעולות בכמה שרתים. |
| מיזוג מאוחד מבוזר | מפיץ שאילתה בין כמה שרתים מרוחקים ואז משלב את תוצאות השאילתה כדי ליצור תוצאה ממוינת. |
| Push broadcast hash join | מיישם איחודים (joins) של SQL באמצעות איחוד (join) מבוזר של hash. |
שאילתות משנה סקלריות
ביטויי משנה של SQL שמחזירים ערך סקלרי יחיד.
| שם | סיכום |
|---|---|
| שאילתות משנה סקלריות | ביטויי משנה של SQL שמחזירים ערך סקלרי יחיד. |
שאילתות משנה של מערכים
ביטויי משנה של SQL שמחזירים מערך.
| שם | סיכום |
|---|---|
| שאילתות משנה של מערכים | ביטויי משנה של SQL שמחזירים מערך. |
Struct constructor
אופרטור שיוצר מבנה (אוסף של שדות) לשורות שמתקבלות מפעולת חישוב.
| שם | סיכום |
|---|---|
| Struct constructor | אופרטור שיוצר מבנה (אוסף של שדות) לשורות שמתקבלות מפעולת חישוב. |