סקירה כללית על PGAdapter

‫PGAdapter מתרגם את פרוטוקול ה-PostgreSQL ל-gRPC של Spanner. הוא מאפשר לכם לקשר אפליקציות ומנהלי התקנים של PostgreSQL לממשק PostgreSQL של Spanner למסדי נתונים של Spanner עם תקורה מינימלית של השהיה.

במאמר הפעלה של PGAdapter מוסבר איך להפעיל את PGAdapter.

אפשר להריץ את PGAdapter כפרוקסי sidecar לצד האפליקציה הראשית, או באפליקציות Java, בתוך ה-JVM של האפליקציה. על ידי חשיפת נקודת קצה ב-localhost שתומכת בפרוטוקול PostgreSQL wire, ‏ PGAdapter מאפשר לכלים כמו psql להתחבר ל-Spanner.

‫PGAdapter מוסיף לכל היותר 0.2 אלפיות השנייה של תקורה של זמן אחזור. ממשק PostgreSQL שומר על אותן רמות חביון כמו GoogleSQL.

בתרשים הבא מוצג אופן החיבור של psql ל-Spanner דרך PGAdapter. חיבור psql ל-Spanner דרך PGAdapter.

‫PGAdapter תומך במצבי שאילתה בסיסיים ומורחבים, ובכל סוג נתונים שממשק PostgreSQL ל-Spanner תומך בו.

נהגים ו-ORM נתמכים

‫PGAdapter תומך בדרייברים סטנדרטיים של PostgreSQL, ב-ORM ובכלי לקוח, כולל:

מטריצת תאימות מלאה זמינה במאמר בנושא מנהלי התקנים ו-ORM של PostgreSQL.

סביבות הפעלה של PGAdapter

אפשר להריץ את PGAdapter באחת מהדרכים הבאות:

  • Standalone: ‏ PGAdapter מסופק כקובץ JAR ופועל באופן עצמאי ב-JVM.
  • Docker. ‫PGAdapter נארז גם כקובץ אימג' של Docker.
  • Cloud Run: אפשר לפרוס את PGAdapter כפרוקסי sidecar ב-Cloud Run.
  • קובץ עזר חיצוני: שימוש אופייני כקובץ עזר חיצוני הוא באשכול Kubernetes.
  • בתוך התהליך: קוד האפליקציה של Java יכול להשתמש בקובץ ה-JAR שסופק כדי ליצור ולהפעיל מופע של PGAdapter.

פרטים על השיטות האלה זמינים במאמר בנושא הפעלת PGAdapter.

הרשאה באמצעות PGAdapter

כדי לקבוע את חשבון השירות או את חשבון המשתמש האחר של ניהול זהויות והרשאות גישה (IAM) לחיבור, PGAdapter בודק את פרטי הכניסה שאתם מציינים כשאתם מפעילים את ה-proxy. ההרשאות ב-IAM שניתנות לחשבון המשתמש קובעות אילו פעולות מותרות במסד הנתונים.

כשמשתמשים בבקרת גישה ברמת גרנולריות גבוהה, צריך לציין תפקיד במסד הנתונים כשמפעילים את PGAdapter. ‫PGAdapter משתמש בבקרת גישה פרטנית כששולח שאילתות והצהרות DML, ולכן נדרשת הרשאת IAM spanner.databases.useRoleBasedAccess. בנוסף לתפקיד public, לחשבון המשתמש צריך להיות גם הרשאת spanner.databaseRoles.use. ההרשאות שניתנות לתפקיד במסד הנתונים קובעות את הפעולות שהאפליקציה המתחברת יכולה לבצע. אם לא מציינים תפקיד במסד הנתונים, ההרשאות שניתנות לחשבון המשתמש ב-IAM חלות. כדי לבצע הצהרות DDL, לחשבון המשתמש צריכה להיות ההרשאה spanner.databases.updateDdl.

מידע נוסף זמין במאמרים מידע על בקרת גישה ברמת פירוט גבוהה ובקרת גישה באמצעות IAM.

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