שיתוף שידורים באמצעות Pub/Sub
אתם יכולים לשתף נושאים של Pub/Sub באמצעות BigQuery sharing (לשעבר Analytics Hub) כדי לאסוף ולהפיץ ספרייה של נתונים בסטרימינג בין כמה גבולות ארגוניים פנימיים וחיצוניים. הנתונים שמועברים בזמן אמת משותפים באמצעות מאגרי נתונים ורשימות של BigQuery sharing, שמאפשרים לסווג ולקבץ באופן לוגי קבוצות גדולות של נושאי Pub/Sub ולספק גישה בקנה מידה נרחב.
אתם יכולים לשתף נתוני סטרימינג כדי:
- שירותים פיננסיים:
- לשתף בזמן אמת מחירים, הצעות מחיר והזמנות של מכשירים פיננסיים שמשתנים במהירות.
- לזהות הלבנת הון ושימוש לרעה באמצעי תשלום.
- תמיכה בחישובי סיכוני מסחר.
- קמעונאות ומוצרי צריכה ארוזים (CPG):
- לנהל את מלאי החנות בזמן אמת.
- להתאים אישית את השיווק ותמיכת הלקוחות.
- לשנות מחירים באופן דינמי.
- עוקבים אחרי ערוצים במדיה החברתית.
- לבצע אופטימיזציה של הפריסות בחנויות הפיזיות.
- שירותי בריאות:
- להפעיל אלגוריתמים חזויים כדי לעקוב אחרי מטופלים ולנתח סיכונים בזמן אמת.
- מעקב אחרי מדדים חיוניים באמצעות מכשירים רפואיים לבישים.
- אפשר לאסוף, לארגן, לאחסן ולעבד באופן אוטומטי נתונים ממטופלים, מאנשי מקצוע בתחום הבריאות ומהנהלת המוסד הרפואי.
- תקשורת:
- מעקב אחרי תקינות הרשת וחיזוי כשלים.
- לזהות דפוסי התנהגות של משתמשים כדי לאתר טוב יותר מכשירים ואנטנות.
התפקידים הנדרשים
התפקידים לשיתוף נושאי Pub/Sub דומים לשיתוף מערכי נתונים של BigQuery:
- אדמין: מנהל את ההרשאות, החשיפה והחברות בבורסות ובדפי האפליקציות. התפקיד הזה מקביל לתפקיד אדמין ב-Analytics Hub (
roles/analyticshub.admin) ב-IAM. - מפרסם נושאים משותפים: יוצר, מנהל ומעניק גישה לרישומים של נושאי Pub/Sub המשותפים. התפקיד הזה מקביל לתפקיד בעל תוכן דיגיטלי ב-Analytics Hub או אדמין של כרטיס מוצר ב-Analytics Hub ב-IAM. המפרסם הוא משתמש, ולא אפליקציית המפרסם שיוצרת ושולחת הודעות לנושא.
- מנוי לנושא משותף: מנוי לרישום של הנושא המשותף. מנויים של נושאים משותפים יכולים להגדיר איך ההודעות של הנושאים יימסרו. התפקיד הזה מקביל לתפקיד מנוי ב-Analytics Hub או בעלים של מינוי ב-Analytics Hub ב-IAM. בהתאם לאופן שבו נתוני ההודעות נשלחים, יכול להיות שיידרשו הרשאות נוספות, כמו הרשאות של חשבון שירות Pub/Sub לכתיבת הודעות ב-BigQuery.
ארכיטקטורה
בתרשים הבא מתוארת האינטראקציה של בעלי התוכן הדיגיטלי והמנויים של משאבי Pub/Sub עם BigQuery sharing:
מגבלות
לשיתוף סטרימינג באמצעות Pub/Sub יש את המגבלות הבאות:
- נושא משותף תומך בעד 10,000 מינויים ל-Pub/Sub. המגבלה הזו כוללת מינויים מקושרים ל-Pub/Sub ומינויים ל-Pub/Sub שנוצרו מחוץ ל-Sharing, למשל כאלה שנוצרו ישירות מ-Pub/Sub.
נושאים משותפים נוספים לאינדקס ב-Knowledge Catalog, אבל אי אפשר לסנן ספציפית לפי סוג המשאב שלהם.
מדדי השימוש נאספים ומוצגים בלוח הבקרה Metrics של נושאים ומינויים משותפים ב-Pub/Sub, אבל הם לא זמינים ב-
INFORMATION_SCHEMA.SHARED_DATASET_USAGE.כדי לעקוב אחרי מדדים, קראו את המאמר מעקב אחרי Pub/Sub ב-Cloud Monitoring.
המדדים האלה יכולים לכלול:
- מספר ההודעות שפורסמו
- בקשות פרסום
- קצב העברת הנתונים של הפרסום בבייטים
- 5 המינויים המובילים
- בייטים שנטמעו
- אחרים
הפעלת Analytics Hub API
כדי להפעיל את Analytics Hub API:
המסוף
עוברים לספריית ה-API ומפעילים את Analytics Hub API בפרויקט ב-Cloud de Confiance .
gcloud
מריצים את הפקודה gcloud services enable:
gcloud services enable analyticshub.googleapis.com
הפעלת Pub/Sub API
נכנסים לספריית ה-API ומפעילים את Pub/Sub API בפרויקט ב- Cloud de Confiance .
תהליכי עבודה משותפים של בעלי תוכן דיגיטלי בנושאים
כמפרסמים של נושא משותף, אתם יכולים:
- כדי להוסיף נושאים משותפים ל-Exchange, צריך ליצור דף מידע.
- עדכון דף האפליקציה בחנות.
- למחוק דף אפליקציה.
- שיתוף דף מידע מקומי.
- ניהול המינויים לדף האפליקציה.
- להסיר מנויים מהדף שלכם בחנות.
הרשאות נוספות של בעלי תוכן דיגיטלי
כדי לבצע משימות של מפרסם נושאים משותפים, צריך להיות לכם תפקיד מפרסם ב-Analytics Hub (roles/analyticshub.publisher) במאגר נתונים או בפרסום נתונים. כדי לראות את כל מאגרי הנתונים להחלפה בפרויקטים בארגון שיש לכם גישה אליהם, אתם צריכים את ההרשאה resourcemanager.organizations.get.
בנוסף, אתם צריכים את ההרשאה pubsub.topics.setIamPolicy לנושא ב-Pub/Sub שאתם רוצים להציג. כדי לשתף נושאים עם סכימה מצורפת, צריך לתת למנויים של שיתוף BigQuery את ההרשאה pubsub.schemas.get בסכימה שמצורפת לנושא. ההרשאה הזו מאפשרת למנויים של BigQuery sharing לנתח בצורה נכונה הודעות מהמינוי ל-Pub/Sub.
יצירת דף אפליקציה (כדי להוסיף נושא משותף)
כדי להוסיף נושא משותף לדף האפליקציה, בוחרים באחת מהאפשרויות הבאות:
המסוף
עוברים לדף Sharing (Analytics Hub).
מעבר אל Sharing (Analytics Hub)
בדף מופיעה רשימה של כל חילופי הנתונים שיש לכם גישה אליהם.
לוחצים על השם של המאגר שבו רוצים ליצור את כרטיס המוצר.
לוחצים על Create listing.
בדף Create listing, בוחרים באפשרות Pub/Sub Topic מהרשימה Resource type.
בוחרים נושא קיים של Pub/Sub מהרשימה Shared topic, או לוחצים על Create a topic.
בדף Listing details, בשדה Display name, מזינים את שם המוצר.
מזינים את הפרטים האופציונליים הבאים:
קטגוריה: בוחרים עד שתי קטגוריות שהכי מתאימות לאפליקציה. מנויים של נושאים משותפים יכולים לסנן את הפריטים לפי הקטגוריות האלה.
קרבה לנתונים: האזור או האזורים שבהם בעל התפקיד שמפרסם את הנושא המשותף משתמש כדי לפרסם נתונים. המידע הזה עוזר למנויים של נושאים משותפים לצמצם או להימנע מעלויות של תעבורת נתונים יוצאת ברשת Pub/Sub, על ידי קריאת נתונים מאותו אזור. למידע נוסף על עלויות של תעבורת נתונים יוצאת, קראו את המאמר עלויות של העברת נתונים.
סמל: סמל לדף האפליקציה. אפשר להשתמש בקובצי PNG ו-JPEG. הסמלים צריכים להיות קטנים מ-512 KiB ובגודל של עד 512 x 512 פיקסלים.
תיאור: תיאור קצר של דף האפליקציה. מנויים של נושא משותף יכולים לחפש נתונים על סמך התיאור.
Public Discoverability: הפעלת האפשרות לחיפוש ציבורי של הפריט בקטלוג השיתוף של BigQuery. אתם צריכים גם להגדיר הרשאות לכרטיס המוצר. לוחצים על Actions בשביל ה-exchange, ואז לוחצים על Set permissions. מקצים ל-
allUsersאו ל-allAuthenticatedusersאת התפקיד "צפייה ב-Analytics Hub" (roles/analyticshub.viewer). לוחצים על Allow Public Access.Documentation > Markdown: מידע נוסף, כמו קישורים למסמכי תיעוד רלוונטיים ופרטים אחרים שיעזרו למנויים של הנושא המשותף להשתמש בו.
בדף Listing contact information, מזינים את הפרטים האופציונליים הבאים:
איש קשר ראשי: מזינים כתובת אימייל או כתובת URL של איש הקשר הראשי של האפליקציה.
בקשת גישה לאיש קשר: מזינים כתובת אימייל או כתובת URL של טופס הבקשה שבו המנויים של הנושא המשותף יכולים להשתמש כדי ליצור איתכם קשר.
Provider: מרחיבים את הקטע Provider ומציינים פרטים בשדות הבאים:
- Provider name: שם הספק של הנושא.
- איש הקשר הראשי של הספק: כתובת אימייל או כתובת URL של איש הקשר הראשי של ספק הנושא.
מנויים של נושאים משותפים יכולים לסנן את רשימות הנתונים לפי ספקי הנתונים.
Publisher: מרחיבים את הקטע Publisher ומציינים פרטים בשדות הבאים:
- שם בעל התוכן הדיגיטלי: השם של בעל התוכן הדיגיטלי שיוצר את הנושא המשותף.
- איש הקשר הראשי של בעל התוכן הדיגיטלי: כתובת אימייל או כתובת URL של איש הקשר הראשי של בעל התוכן הדיגיטלי של הנושא המשותף.
בודקים את הדף תצוגה מקדימה של דף האפליקציה.
לוחצים על פרסום.
API
משתמשים בשיטה projects.locations.dataExchanges.listings.create.
POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings?listingId=LISTING_ID
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שמכיל את המאגר שבו רוצים ליצור את כרטיס המוצר. -
LOCATION: המיקום של המאגר לחילופי נתונים. למידע נוסף על מיקומים שתומכים בשיתוף, ראו אזורים נתמכים. -
DATAEXCHANGE_ID: המזהה של המאגר להחלפת נתונים. -
LISTING_ID: מזהה דף האפליקציה.
בגוף הבקשה, מזינים את פרטי דף האפליקציה בחנות. אם הבקשה תאושר, גוף התגובה יכלול את פרטי דף האפליקציה.
מידע נוסף על המשימות שאפשר לבצע בדפי מידע באמצעות ממשקי API זמין במאמר שיטות projects.locations.dataExchanges.listings.
עדכון של דף פרטי העסק
כדי לעדכן דף אפליקציה, בוחרים באחת מהאפשרויות הבאות:
המסוף
עוברים לדף Sharing (Analytics Hub).
לוחצים על השם של המאגר שכולל את רשימת הנתונים.
לוחצים על דף האפליקציה שרוצים לעדכן.
לוחצים על עריכת דף האפליקציה בחנות.
משנים את ערכי השדות. אפשר לשנות את כל הערכים חוץ מהנושא המשותף של דף האפליקציה.
כדי לשמור את השינויים, לוחצים על פרסום.
API
משתמשים בשיטה projects.locations.dataExchanges.listings.patch.
PATCH https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID?updateMask=UPDATEMASK
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שמכיל את המאגר שבו רוצים ליצור את כרטיס המוצר. -
LOCATION: המיקום של המאגר לחילופי נתונים. למידע נוסף על מיקומים שתומכים בשיתוף, ראו אזורים נתמכים. -
DATAEXCHANGE_ID: המזהה של המאגר להחלפת נתונים. -
LISTING_ID: מזהה דף האפליקציה. -
UPDATEMASK: רשימת השדות שרוצים לעדכן. כדי לעדכן כמה ערכים, משתמשים ברשימה מופרדת בפסיקים.
בגוף הבקשה, מציינים את הערכים המעודכנים.
מידע נוסף על המשימות שאפשר לבצע בדפי מידע באמצעות ממשקי API זמין במאמר שיטות projects.locations.dataExchanges.listings.
מחיקת דף אפליקציה
אי אפשר למחוק פריטים עם נושאי Pub/Sub משותפים שיש להם מינויים פעילים. לבטל את כל המינויים הפעילים לפני שמנסים למחוק את רישום הנושא המשותף. אי אפשר לבטל מחיקה של דף אפליקציה.
כדי למחוק דף אפליקציה, בוחרים באחת מהאפשרויות הבאות:
המסוף
עוברים לדף Sharing (Analytics Hub).
לוחצים על השם של המאגר שכולל את רשימת הנתונים.
לוחצים על הפריט שרוצים למחוק.
לוחצים על מחיקה.
בתיבת הדו-שיח למחוק את דף האפליקציה?, מקלידים
deleteכדי לאשר את המחיקה.לוחצים על Delete.
API
משתמשים בשיטה projects.locations.dataExchanges.listings.delete.
DELETE https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שמכיל את המאגר שבו רוצים ליצור את כרטיס המוצר. -
LOCATION: המיקום של המאגר לחילופי נתונים. למידע נוסף על מיקומים שתומכים בשיתוף, ראו אזורים נתמכים. -
DATAEXCHANGE_ID: המזהה של המאגר להחלפת נתונים. -
LISTING_ID: מזהה דף האפליקציה.
מידע נוסף על המשימות שאפשר לבצע בדפי מידע באמצעות ממשקי API זמין במאמר שיטות projects.locations.dataExchanges.listings.
שיתוף דף אפליקציה בחנות
כדי לתת למשתמשים גישה לפריט פרטי, צריך להגדיר מדיניות IAM לאדם פרטי או לקבוצה עבור הפריט הזה. כדי לפרסם מאגר נתונים מסחרי, הוא חייב להיות ציבורי.
רשימות ב-data exchange ציבורי מופיעות ב-Sharing לכל משתמשיCloud de Confiance (allAuthenticatedUsers).
כדי לאפשר למשתמשים לבקש גישה לרישומים מסחריים, צריך להקצות להם את התפקיד 'בעל הרשאת צפייה במאגר הניתוחים ב-Analysis' (roles/analyticshub.viewer).
כדי לתת למשתמשים גישה לצפייה או להרשמה ל-listing:
עוברים לדף Sharing (Analytics Hub).
לוחצים על השם של המאגר שכולל את רשימת הנתונים.
לוחצים על דף האפליקציה שבו רוצים להוסיף מנויים לנושאים משותפים.
לוחצים על הגדרת הרשאות.
כדי להוסיף חשבונות משתמשים, לוחצים על Add principal.
בשדה New principals, מוסיפים פרטים בהתאם לסוג הרישום:
- אם בחרתם ב-Private, הזינו את כתובות האימייל של המשתמשים שאתם רוצים לתת להם גישה.
- כדי להוסיף דף אפליקציה שגלוי לכולם, מוסיפים את
allAuthenticatedUsers.
בתפריט Select a role, בוחרים באפשרות מאגר הניתוחים ב-Analysis ואז בוחרים באחד מהתפקידים הבאים, בהתאם לסוג כרטיס המידע:
- לרשימה מסחרית, בוחרים את התפקיד Analytics Hub Viewer. התפקיד הזה מאפשר למשתמשים לצפות בפרטי האפליקציה ולבקש גישה.
- לרשימה פרטית או ציבורית לא מסחרית, בוחרים בתפקיד Analytics Hub Subscriber. התפקיד הזה מאפשר למשתמשים להירשם לדף האפליקציה שלכם בחנות.
לוחצים על Save.
למידע נוסף, קראו את המאמר תפקידי מנוי וצפייה ב-Analytics Hub.
ניהול מינויים
כדי לאפשר למשתמש להירשם ל-listing עם נושא משותף, צריך לתת לו את התפקידים מנוי ב-Analytics Hub (roles/analyticshub.subscriber) ובעלים של מינוי ב-Analytics Hub (roles/analyticshub.subscriptionOwner) ב-listing ספציפי:
עוברים לדף Sharing (Analytics Hub).
לוחצים על השם של המאגר שכולל את הרישום שבו רוצים לנהל את המינויים.
לוחצים על כרטיס המידע של הנושא המשותף שרוצים להציג את המנויים שלו.
לוחצים על הגדרת הרשאות.
כדי להוסיף חשבונות משתמשים, לוחצים על Add principal.
בשדה New principals, מזינים את שמות המשתמשים או את כתובות האימייל של המנויים שרוצים להוסיף.
בשדה Select a role, בוחרים באפשרות מאגר הניתוחים ב-Analysis > Analytics Hub Subscriber.
לוחצים על Add another role.
בשדה בחירת תפקיד, בוחרים באפשרות מאגר הניתוחים ב-Analysis > בעלים של מנוי מאגר הניתוחים ב-Analysis.
לוחצים על Save.
אפשר למחוק ולעדכן מנויים בכל שלב בלחיצה על הגדרת הרשאות.
ביטול מינוי
כדי להסיר מינוי לרישום של נושא משותף מ-BigQuery sharing, בוחרים באחת מהאפשרויות הבאות:
המסוף
כדי להציג את רשימת המנויים לנושא משותף של כרטיס מידע, פועלים לפיCloud de Confiance ההוראות למסוף בקטע הצגת כל המינויים.
לוחצים על הכרטיסייה Subscriptions כדי לראות את כל המינויים לחבילת הנתונים.
מסמנים את התיבה לצד המינויים שרוצים להסיר, או בוחרים את כל המינויים.
בתיבת הדו-שיח לבטל את המינוי?, מזינים
revokeכדי לאשר.לוחצים על ביטול.
API
כדי להסיר מינוי, משתמשים ב-method projects.locations.subscriptions.revoke.
POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/subscriptions/SUBSCRIPTION_ID:revoke
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט של המינוי שרוצים להסיר. -
LOCATION: המיקום של המינוי. -
SUBSCRIPTION_ID: המזהה של המינוי שרוצים להסיר.
כשמבטלים מינוי לשיתוף ב-BigQuery, המנוי לנושא המשותף לא מקבל יותר נתוני הודעות מהנושא המשותף. המינוי ל-Pub/Sub מנותק מהנושא המשותף. אם מוחקים מינוי ישירות מ-Pub/Sub, המינוי לשיתוף ב-BigQuery נשאר וצריך לנקות אותו.
תהליכי עבודה של מנויים
כמנויים ב-BigQuery sharing, אתם יכולים לראות את הרישום ולהירשם אליו. כשנרשמים לרישום של נושא משותף, נוצר מינוי Pub/Sub מקושר אחד בפרויקט של המנוי. המינוי ל-Pub/Sub מופיע בפרויקט של מפרסם הנושא המשותף.
הרשאות נוספות למנויים
כדי לבצע משימות של מנויים, צריך להיות לכם התפקיד מנוי ב-Analytics Hub (roles/analyticshub.subscriber) ברמת הפרויקט, מרכז הנתונים או כרטיס המוצר.
הרשמה לרשימת נושאים משותפת
כדי להירשם ל-listing עם נושא משותף, בוחרים באחת מהאפשרויות הבאות:
המסוף
כדי לראות את רשימת כרטיסי המוצר שיש לכם גישה אליהם, פועלים לפי השלבים שמפורטים בקטע הצגת כרטיסי מוצר.
מעיינים ברשימות ולוחצים על הרשימה שאליה רוצים להירשם. מופיעה תיבת דו-שיח עם פרטי דף האפליקציה בחנות.
לוחצים על Subscribe כדי לפתוח את תיבת הדו-שיח Create subscription.
אם לא הפעלתם את Analytics Hub API בפרויקט, תופיע הודעת שגיאה עם קישור להפעלת ה-API. לוחצים על Enable Analytics Hub API.
בתיבת הדו-שיח Create subscription, מציינים את הפרטים הבאים:
- Subscription ID: מציינים את שם המינוי שיוצרים.
- סוג המסירה: בוחרים איך נתוני ההודעה יימסרו.
- משך השמירה של הודעות: מגדירים את משך השמירה של הודעות.
- תקופת תפוגה: קובעים מתי המינוי יפוג אחרי חוסר פעילות, אם בכלל.
- מועד אחרון לאישור: הגדרת המועד האחרון לאישור.
- מסנן מינויים: הגדרת תחביר מסנן להודעות.
- Exactly once delivery: הפעלה של מסירה פעם אחת בדיוק.
- סדר ההודעות: הפעלת סדר ההודעות באמצעות מפתח סדר.
- הודעות ללא מוצא: הפעלת הודעות ללא מוצא.
- מדיניות ניסיונות חוזרים: הגדרת מדיניות ניסיונות חוזרים.
כדי לשמור את השינויים, לוחצים על יצירה. המינוי המקושר ל-Pub/Sub נוצר בפרויקט שלכם.
API
משתמשים בשיטה projects.locations.dataExchanges.listings.subscribe.
POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID:subscribe
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט של המוצר שרוצים להירשם אליו. -
LOCATION: המיקום של הדף העסקי שרוצים להירשם אליו. -
DATAEXCHANGE_ID: המזהה של החלפת הנתונים של המוצר שאתם רוצים להירשם אליו. -
LISTING_ID: מזהה כרטיס המוצר שרוצים להירשם אליו.
בגוף הבקשה, מציינים את המינוי ל-Pub/Sub שבו רוצים ליצור את המינוי המקושר ל-Pub/Sub. אם הפעולה בוצעה ללא שגיאות, גוף התגובה ריק.
סקירה כללית על מינויים ב-Pub/Sub
תמחור
מפרסמי נושאים ב-Pub/Sub לא מחויבים בתשלום נוסף על רישום ושיתוף של נושאים באמצעות BigQuery sharing. בעלי התפקיד "מפרסם" בנושאים משותפים מחויבים על סך הבייטים שנכתבו (קצב העברת הנתונים של הפרסום) בנושא המשותף ועל תעבורת הנתונים היוצאת ברשת (אם רלוונטי). מנויים של נושא משותף מחויבים על סך הבייטים שנקראו (קצב העברת הנתונים של המינוי) מהמינוי המקושר, ועל תעבורת נתונים יוצאת (egress) ברשת (אם רלוונטי). למידע נוסף, קראו את המחירון של Pub/Sub.
VPC Service Controls
בנושאים משותפים מפרויקטים עם גבולות הגזרה של VPC Service Controls, צריך להגדיר את כללי תעבורת הנתונים הנכנסת והיוצאת המתאימים כדי לתת גישה לבעלי התפקידים "פרסום בנושא" ו"הרשמה לנושא" בנושאים המשותפים.