ממשקים זמינים
כשמבצעים אינטראקציה עם Spanner, אפשר להשתמש באחד מכמה ממשקים פרוגרמטיים. אלה הממשקים הזמינים, לפי סדר השימוש המומלץ:
- ספריות לקוח: ספריות הלקוח של Spanner זמינות בכמה שפות ומבוססות על gRPC. ספריות הלקוח האלה מספקות שכבת הפשטה מעל gRPC ומטפלות בפרטים של ניהול סשנים, ביצוע טרנזקציות, ניסיונות חוזרים ועוד.
- מנהלי התקנים של ORM ו-framework: Google תומכת במנהלי התקנים של Spanner בקוד פתוח עבור כמה ספריות (ORMs) ו-frameworks פופולריים של מיפוי יחסי לאובייקטים, כמו JDBC. הדרייברים האלה מאפשרים להשתמש במסדי נתונים של Spanner באמצעות ממשקי API שמוגדרים על ידי המסגרות האלה.
- RPC API: אם אין ספריית לקוח או מנהל התקן ORM בשפת התכנות שבחרתם, תוכלו להשתמש ב-RPC API, שמבוסס על gRPC. ל-gRPC יש כמה יתרונות מבחינת ביצועים בהשוואה לשימוש ב-API בארכיטקטורת REST, כולל ייצוג אובייקטים בפורמט של מאגר אחסון לפרוטוקולים (שמהיר יותר ליצירה ולצריכה בהשוואה ל-JSON) וחיבורים קבועים (שמובילים לתקורה נמוכה יותר לכל בקשה). מידע נוסף על היתרונות האלה ועל יתרונות נוספים זמין במאמר מושגים ב-gRPC.
- API בארכיטקטורת REST: אם אתם לא יכולים להשתמש בספריות הלקוח של Spanner או ב-RPC API, אתם יכולים להשתמש ב-API בארכיטקטורת REST. חשוב לזכור שחלק מהתכונות שזמינות ב-RPC API לא נתמכות ב-API בארכיטקטורת REST, כמו שמתואר בהמשך.
RPC לעומת API בארכיטקטורת REST
בטבלה הזו מוצגות השוואה בין התכונות של Spanner שזמינות דרך ממשקי ה-API של RPC ו-API בארכיטקטורת REST.
| תכונה | האם הוא נתמך ב-RPC API? | האם יש תמיכה ב-API בארכיטקטורת REST? |
|---|---|---|
| ביטול בקשה | כן | לא |
| הגדרת מועד אחרון או זמן קצוב לתפוגה לבקשה | כן | לא |
| שליחת בקשה להזרמה | כן. אפשר לעיין במאמרים בנושא ExecuteStreamingSQL וStreamingRead. |
חלקי. יש תמיכה בסטרימינג של HTTP, אבל לא בבקרה על זרימת נתונים ברמת האפליקציה. |
תמיכה בתכונות של ספריות לקוח
בטבלה הבאה מפורטות ספריות הלקוח, ומוצגות התכונות העיקריות של Spanner שכל אחת מהן תומכת בהן.