פלטפורמת מסחר אלקטרוני גלובלית הדורשת עסקאות ACID, עקביות חזקה וזמינות של 99.999% על פני יבשות מרובות.
→Cloud Spanner בתצורה מרובת אזורים (לדוגמה, nam-eur-asia).
למה: Spanner הוא שירות GCP המנוהל היחיד המספק עסקאות ACID מבוזרות גלובלית ועקביות חזקה בקנה מידה עם SLA של 99.999%.
מקור↗
העברת מסד נתונים גדול ועתיר ביצועים של Oracle OLTP עם פרוצדורות שמורות מורכבות וצרכים של שאילתות אנליטיות.
→AlloyDB for PostgreSQL.
למה: AlloyDB מציע ביצועי PostgreSQL מעולים, תכונות תאימות ל-Oracle ומנוע עמודתי להאצת שאילתות אנליטיות (HTAP) מבלי להשפיע על עומסי עבודה טרנזקציוניים.
מקור↗
הזנה בתפוקה גבוהה (מיליוני OPS) של נתוני סדרות זמן (לדוגמה, IoT, לוגים) הדורשת קריאות עם השהיה נמוכה ותפוגת נתונים אוטומטית.
→Cloud Bigtable עם עיצוב מפתח שורה `(entity_id)#(reverse_timestamp)` ומדיניות איסוף זבל.
למה: Bigtable מיועד לעומסי עבודה של מפתח/ערך בקנה מידה מסיבי עם השהיה נמוכה. חותמת זמן הפוכה במפתח השורה ממקמת יחד נתונים עדכניים לסריקות יעילות. איסוף זבל מטפל ב-TTL.
מקור↗
יישום מובייל או אינטרנט הדורש סכימה גמישה, סנכרון נתונים בזמן אמת ללקוחות ותמיכה במצב לא מקוון.
→Firestore במצב Native.
למה: Firestore נבנה במיוחד עבור תבנית קצה עורפי של אפליקציות ללא שרת, ומספק מאזינים בזמן אמת והתמדה לא מקוונת באמצעות ערכות ה-SDK של הלקוח שלו, ישר מהקופסה.
מקור↗
חיפוש דמיון בקנה מידה גדול (10M+ וקטורים) עבור יישומי AI/ML (לדוגמה, RAG, המלצות) הדורש השהיה של פחות מ-100 אלפיות השנייה.
→AlloyDB for PostgreSQL עם הרחבת pgvector ואינדקס ScaNN.
למה: AlloyDB משלב את אלגוריתם ScaNN בעל הביצועים הגבוהים של גוגל לחיפוש approximate nearest neighbor (ANN), ועולה על יישומי חיפוש וקטוריים סטנדרטיים בקנה מידה.
תכנון סכימת Cloud Spanner לעומס עבודה כבד בכתיבה כדי למנוע נקודות חמות בשרת יחיד.
→תכנן מפתחות ראשיים שאינם משתמשים בערכים עולים באופן מונוטוני (לדוגמה, מזהים רציפים, חותמות זמן) כחלק המפתח הראשון. השתמש במקום זאת ב-UUIDs, ערכים מגובבים, או רצפים הפוכים-ביטים.
למה: Spanner מפיץ נתונים באופן לקסיקוגרפי לפי המפתח הראשי. מפתחות רציפים מכוונים את כל הכתיבות לפיצול יחיד, ויוצרים נקודה חמה. מפתחות מפוזרים אקראית מפיצים כתיבות על פני כל הפיצולים.
מקור↗
לסכימת Spanner יש קשר חזק של הורה-ילד (לדוגמה, Customers ו-Orders) ושאילתות מאחזרות לעיתים קרובות הורה עם כל ילדיו.
→השתמש בטבלאות משולבות (interleaved tables), והגדר את טבלת הילד עם `INTERLEAVE IN PARENT`.
למה: Interleaving ממקם פיזית שורות ילד יחד עם שורת ההורה שלהן באחסון. זה הופך את צירופי הורה-ילד ליעילים במיוחד, מכיוון שזו הופכת לסריקת טווח ממוטבת מאוד על פיצול יחיד.
מעקב אחר מיקומים בזמן אמת עבור צי רכבים ענק (50k+ כתיבות/שנייה) עם שאילתות למציאת כלי רכב באזור גיאוגרפי.
→Cloud Bigtable עם מפתח שורה המקודם על ידי GeoHash של מיקום הרכב.
למה: Bigtable מטפל בתפוקת הכתיבה הקיצונית. קידוד GeoHash ממיר קואורדינטות דו-ממדיות למחרוזת חד-ממדית שבה קידומות מייצגות קרבה גיאוגרפית, ומאפשר סריקות טווח גיאוגרפיות יעילות.
אחסון וניתוח נתונים בקנה מידה של פטה-בייטים (לדוגמה, נתונים גנומיים, לוגים) עם שאילתות SQL אנליטיות מורכבות.
→אחסן נתונים גולמיים ב-Cloud Storage ושלף אותם ישירות מ-BigQuery באמצעות טבלאות חיצוניות, או טען לאחסון BigQuery מקורי.
למה: BigQuery הוא מחסן נתונים ללא שרת שנבנה עבור אנליטיקה בקנה מידה של פטה-בייטים. הפרדת האחסון והמחשוב שלו מספקת ביצועי שאילתות ללא תחרות וחסכוניות עבור עומסי עבודה של OLAP.
מטמון בזיכרון בזמינות גבוהה עבור מבני נתונים מורכבים (hashes, sets) עם יכולות pub/sub לביטול תוקף מטמון.
→Memorystore for Redis Standard Tier עם עותקים לקריאה (read replicas).
למה: Standard Tier מספק SLA של 99.9% עם כשל אוטומטי (automatic failover). Redis תומך בסוגי נתונים מורכבים ו-pub/sub, בניגוד ל-Memcached. עותקים לקריאה יכולים להגדיל את תפוקת הקריאה.
תכנון יישום SaaS מרובה דיירים ב-Spanner הדורש בידוד נתונים חזק ואבטחת ביצועים לכל דייר.
→השתמש ב-tenant_id כמרכיב הראשון של המפתח הראשי עבור כל הטבלאות. לבידוד חזק יותר, השתמש במודל מסד נתונים לכל דייר בתוך מופע Spanner יחיד.
למה: קידומת tenant_id ממקמת באופן טבעי את כל הנתונים של דייר יחיד יחד, מייעלת שאילתות ומאפשרת ל-Spanner לפצל נתונים לפי דייר. מודל מסד נתונים לכל דייר מספק את הבידוד הלוגי החזק ביותר.