סקירה כללית על Single Message Transforms (SMTs)

ברוב צינורות הנתונים של סטרימינג נדרשות טרנספורמציות של נתונים. יש משתמשים שמעדיפים להמיר את הנתונים אחרי שהם מגיעים ליעד בצינור ELT (חילוץ, טעינה והמרה), ויש משתמשים שמעדיפים להמיר את הנתונים לפני שהם נכנסים לצינור ETL (חילוץ, המרה וטעינה). באופן מסורתי, הארכיטקטורה הזו דרשה צינורות עיבוד נתונים מורכבים עם כלים כמו Dataflow או Apache Flink כדי לבצע טרנספורמציות של נתונים.

‫Pub/Sub מציע Single Message Transforms (SMTs) כדי לפשט את הטרנספורמציות של נתונים עבור צינורות להעברת נתונים בזמן אמת. בעזרת SMTs אפשר לבצע שינויים קלים בנתוני ההודעות ובמאפיינים שלהן ישירות ב-Pub/Sub. השימוש ב-SMTs מייתר את הצורך בשלבי עיבוד נתונים נוספים או במוצרים נפרדים לטרנספורמציה של נתונים.

כשמריצים SMT, הוא מקבל כקלט את ההודעה ב-Pub/Sub, כולל נתוני ההודעה והמאפיינים שלה. הפלט הוא הודעת Pub/Sub שעברה טרנספורמציה, עם שינויים בנתונים או במאפיינים. ה-SMT משולבים ב-Pub/Sub API, כך שאפשר לנהל אותם כחלק מההגדרות של הנושא או המינוי.

תרחישים לדוגמה לשימוש ב-SMT

נניח שאתם רוצים לעצב חנות וירטואלית שתציע ללקוחות המלצות מותאמות אישית למוצרים בזמן שהם גולשים באתר. כדי לעשות את זה, אתם יכולים להשתמש ב-Pub/Sub כדי לאסוף נתונים בזמן אמת על פעילות הלקוחות באתר. הנתונים האלה כוללים מידע על המוצרים שהלקוחות צפו בהם, המוצרים שהם הוסיפו לעגלה והדירוגים שהם נתנו למוצרים.

עם זאת, לעיתים קרובות צריך לבצע התאמות בנתונים הגולמיים לפני שאפשר להשתמש בהם כדי ליצור המלצות. לדוגמה, הנתונים הגולמיים עשויים להכיל פרטים מיותרים שלא רלוונטיים לתרחיש השימוש שלכם. דוגמאות לפרטים כאלה הן סוג הדפדפן של הלקוח או השעה שבה הוא ביקר באתר. יכול להיות גם שהנתונים לא יהיו בפורמט הנדרש למערכת ההמלצות. לדוגמה, יכול להיות שחותמות הזמן יהיו בפורמטים שונים, או שיהיה צורך להמיר מזהי מוצרים לסוג אחר.

אפשר להשתמש ב-SMT של Pub/Sub כדי לבצע טרנספורמציות של נתונים, כמו:

  • כדי להגן על פרטיות הלקוחות, צריך להסיר פרטים אישיים מזהים (PII), כמו שמות מלאים וכתובות.

  • שומרים רק אירועים שרלוונטיים להמלצות, כמו צפיות במוצרים ורכישות, ומוחקים אירועים אחרים, כמו שינויים בפרופיל הלקוח.

  • חשוב לוודא שכל חותמות הזמן, ערכי המטבע ומזהי המוצרים תואמים לפורמט ולסוג העקביים של מערכת ההמלצות.

  • יצירת שדות נתונים חדשים מנתונים גולמיים, כמו הערך הכולל של עגלת הקניות או משך השהייה בדף המוצר.

  • מוסיפים מסקנות ממודלים של Gemini Enterprise Agent Platform לנתוני אירועים, כמו סיווגים, תחזיות, סנטימנטים או הטמעות.

לסיכום, SMT מאפשרת מגוון רחב של תרחישי שימוש, כולל:

  • הסתרת נתונים וצנזורה: הגנה על נתונים רגישים באמצעות הסתרה או צנזורה של שדות כמו מספרי כרטיסי אשראי או פרטים אישיים מזהים (PII), כדי לעמוד בדרישות של תקנות פרטיות הנתונים.

  • המרת פורמט נתונים: המרת נתונים בין פורמטים שונים כדי להבטיח תאימות למערכות במורד הזרם.

  • סינון הודעות: עיבוד רק של הודעות רלוונטיות על ידי סינון הודעות לא רצויות על סמך תוכן או מאפיינים. ה-SMT מאפשרים להגדיר תנאי סינון מורכבים יותר מאלה של המסננים המובנים ב-Pub/Sub.

  • טרנספורמציות פשוטות של נתונים: ביצוע משימות בסיסיות של מניפולציה של נתונים, כמו מניפולציה של מחרוזות, עיצוב תאריכים או פעולות מתמטיות.

  • הסקת מסקנות מ-AI: אפשר לשלב מודלים של AI בצורה חלקה בצינורות של Pub/Sub באמצעות ה-SMT‏ AI Inference.

סוגים של SMT

‫Pub/Sub תומך ב-SMT הבאים:

  • היסק מ-AI: מקבל היסקים בהודעות Pub/Sub ממודל Agent Platform.
  • פונקציות בהגדרת המשתמש: קוראת לפונקציה בהגדרת המשתמש (UDF) ב-JavaScript כדי לבצע טרנספורמציות בהתאמה אישית בהודעות Pub/Sub.

דוגמה לזרימת הודעות עבור SMT

תמונה שמציגה דוגמה למערכת Pub/Sub עם SMTs שמוחלים ברמת הנושא וברמת המינוי.

איור שמראה איך הודעות מושפעות מ-SMT של נושא ומ-SMT של מינוי.
איור 1 איך הודעות עוברות טרנספורמציה באמצעות SMT.

התהליך הבא מראה את זרימת ההודעות במערכת Pub/Sub:

  1. אפליקציות השליחה שולח 1 ושולח 2 שולחות את ההודעות א' וב' בהתאמה לנושא Pub/Sub.

  2. ה-SMT של הנושא משנה את ההודעות A ו-B להודעות A' ו-B', בהתאמה.

  3. אם סכימה מצורפת לנושא, ההודעות שעברו טרנספורמציה A' ו-B' עוברות אימות מול הסכימה. אם, לדוגמה, A' לא תואמת לסכימה, פרסום ההודעה A ייכשל עם שגיאה.

  4. ההודעות שעברו טרנספורמציה A' ו-B' נכתבות לאחסון ב-Pub/Sub.

  5. שירות Pub/Sub מעביר את ההודעות A' ו-B' לכל המינויים המצורפים, שהם מינוי 1 ומינוי 2, כפי שמוצג בתמונה.

  6. אם Subscription 1 מוגדר עם מסנן, ההודעות A' ו-B' נבדקות מול המסנן. רק הודעות שתואמות למסנן ימשיכו לשלב הבא. הודעות אחרות מקבלות אישור אוטומטי מ-Pub/Sub.

  7. אם מינוי 2 כולל מסנן מוגדר, ההודעות A' ו-B' נבדקות מול המסנן. רק הודעות שתואמות למסנן ממשיכות לשלב הבא. מערכת Pub/Sub מאשרת קבלה של הודעות אחרות באופן אוטומטי.

  8. ‫SMT Subscription 1 ממיר את ההודעות A' ו-B'. ‫A' הופך ל-A'' ו-B' הופך ל-B''.

  9. הודעות A' ו-B' עוברות טרנספורמציה על ידי SMT של מינוי 2. ‫A' נשאר A' ו-B' מסונן.

  10. אם מינוי 1 הוא מינוי דחיפה עם הפעלת פריקת מטען ייעודי (payload), ההודעות A'' ו-B'' יפורקו. אם Subscription 2 הוא מינוי דחיפה עם הפעלת פריקת מטען ייעודי (payload), המטען A' ייפרק.

  11. מנוי 1 מקבל את ההודעה B'', מנוי 2 מקבל את ההודעה A'', ומנוי 3 מקבל את ההודעה A'.

  12. המנויים מאשרים שהם קיבלו את ההודעות.

  13. מערכת Pub/Sub מוחקת מהאחסון את ההודעות שאושרה קבלתן.

מגבלות

  • אפשר להפעיל עד 5 כלים לניהול תנועה חכם לנושא או למינוי.

  • מערכות SMT פועלות על הודעת Pub/Sub אחת. הם לא יכולים לצבור כמה הודעות Pub/Sub.

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