במאמר הזה מוסבר איך להגדיר פידים של שינויים במטא-נתונים ב-Dataplex Universal Catalog כדי לקבל התראות דרך Pub/Sub כשמטא-נתונים ב-Dataplex Universal Catalog נוצרים, מתעדכנים או נמחקים.
מידע נוסף על פידים של שינויים במטא-נתונים זמין במאמר סקירה כללית על פידים של שינויים במטא-נתונים.
לפני שמתחילים
חשוב להכיר את Pub/Sub ואת Dataplex Universal Catalog API.
-
Enable the Dataplex Universal Catalog and Pub/Sub APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. יוצרים נושא Pub/Sub כדי לקבל התראות. מידע נוסף זמין במאמר יצירת נושא.
התקנה
gcloud. מוודאים שהכינוי הקצר שלgcloudמוגדר.מגדירים כינוי של
gcurl. הפעולה הזו יוצרת קיצור דרך שכולל את אסימון האימות ומגדיר את סוג התוכן JSON לבקשות API:alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'מגדירים את המשתנה
DATAPLEX_API:DATAPLEX_API="dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION"מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שבו מופעל Dataplex API -
LOCATION: המיקום שבו העבודה מופעלת – לדוגמה,us-central1,europe-west3אוasia-south1
-
תפקידים והרשאות נדרשים
כדי להגדיר פידים של שינויים במטא-נתונים, צריך לוודא שלכם ולחשבון השירות של Dataplex Universal Catalog יש את ההרשאות והתפקידים הנדרשים ב-IAM.
תפקידים והרשאות של משתמשים
כדי לקבל את ההרשאות שדרושות לייצוא מטא-נתונים ולגישה להודעות של פידים לשינוי מטא-נתונים, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט או בארגון:
-
ייצוא מטא-נתונים:
Dataplex Entry Group Exporter (
roles/dataplex.entryGroupExporter) -
גישה להודעות של פידים לשינוי מטא-נתונים:
Pub/Sub Subscriber (
roles/pubsub.subscriber)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקידים המוגדרים מראש האלה כוללים את ההרשאות שנדרשות לייצוא מטא-נתונים ולגישה להודעות של פידים לשינוי מטא-נתונים. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי לייצא מטא-נתונים ולגשת להודעות בפידים של שינויים במטא-נתונים, צריך את ההרשאות הבאות:
-
ייצוא מטא-נתונים:
-
dataplex.metadataFeeds.createבפרויקט -
dataplex.entryGroups.exportבמשאב שמגדיר את היקף הפיד (ארגון, פרויקט או קבוצת רשומות) -
resourcemanager.projects.getבפרויקט -
resourcemanager.projects.listבפרויקט
-
-
גישה להודעות של פידים לשינוי מטא-נתונים:
-
pubsub.subscriptions.consumeבמינוי -
pubsub.topics.attachSubscriptionבנושא
-
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
תפקידים והרשאות של חשבון שירות ב-Dataplex Universal Catalog
כדי לוודא שלחשבון השירות של Dataplex Universal Catalog יש את ההרשאה הנדרשת לפרסום הודעות של פידים לשינויים במטא-נתונים, צריך לבקש מהאדמין להקצות לחשבון השירות של Dataplex Universal Catalog את תפקיד ה-IAM פרסום הודעות ב-Pub/Sub (roles/pubsub.publisher) בנושא Pub/Sub.
התפקיד שמוגדר מראש מכיל את ההרשאה pubsub.topics.publish, שנדרשת כדי לפרסם הודעות של פידים לשינוי מטא-נתונים.
יכול להיות שהאדמין יוכל גם להעניק לחשבון השירות של Dataplex Universal Catalog את ההרשאה הזו באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
מתן הרשאות לחשבון השירות של Dataplex Universal Catalog
סוכן השירות של Dataplex Universal Catalog נוצר כשמפעילים את Dataplex API. אפשר לזהות את סוכן השירות לפי כתובת האימייל שלו:
service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com
כאן, PROJECT_NUMBER הוא מספר הפרויקט שבו הפעלתם את Dataplex API.
לחשבון השירות של Dataplex Universal Catalog צריכה להיות אפשרות לפרסם הודעות בנושא Pub/Sub.
כדי להעניק את ההרשאה הזו, צריך להקצות לחשבון השירות את התפקיד 'פרסום הודעות ב-Pub/Sub' (roles/pubsub.publisher) בנושא ב-Pub/Sub:
gcloud
מריצים את הפקודה gcloud pubsub topics add-iam-policy-binding:
gcloud pubsub topics add-iam-policy-binding TOPIC_ID \
--member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com" \
--role="roles/pubsub.publisher"
מחליפים את מה שכתוב בשדות הבאים:
-
TOPIC_ID: המזהה של נושא Pub/Sub שאליו מתפרסמות ההודעות של פיד השינויים במטא-נתונים. -
PROJECT_NUMBER: מספר הפרויקט של פרויקט Dataplex Universal Catalog שבו נמצא חשבון השירות.
המסוף
נכנסים לדף Topics של Pub/Sub במסוף Google Cloud .
בוחרים את הנושא שמשמש להתראות על פיד מטא נתונים, ואם צריך לוחצים על הצגת חלונית המידע.
בכרטיסייה Permissions, לוחצים על Add principal.
בשדה New principals, מזינים את חשבון השירות של Dataplex Universal Catalog:
service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com.בשדה Assign roles (הקצאת תפקידים), בוחרים באפשרות Pub/Sub Publisher (מפרסם Pub/Sub).
לוחצים על Save.
יצירת פיד לשינויים במטא נתונים
כדי לקבוע אילו שינויים ייצרו התראות, אפשר להגדיר פיד של שינויים במטא-נתונים כדי לעקוב אחרי משאבים ספציפיים. כדי לעשות זאת, צריך לציין היקף, כמו כל הארגון, פרויקטים ספציפיים או קבוצות ספציפיות של רשומות. היקף מאפשר לכם להגדיר אילו משאבים לעקוב אחריהם, אבל אתם יכולים להשתמש במסננים כדי לחדד עוד יותר את ההגדרה של מתי Dataplex Universal Catalog ישלח התראות.
מידע נוסף זמין במאמר פיד לשינויים במטא-נתונים.
REST
כדי ליצור פיד לשינויים במטא-נתונים, משתמשים בשיטה projects.locations.metadataFeeds.create.
היקף הארגון
כדי ליצור פיד של שינויים במטא-נתונים שעוקב אחרי כל הארגון, מריצים את הפקודה הבאה:
gcurl -X POST -d "$(cat <<EOF
{
"scope": {
"organizationLevel": true
},
"pubsubTopic": "projects/PROJECT_ID_PUBSUB/topics/TOPIC_ID"
}
EOF
)" "https://${DATAPLEX_API}/metadataFeeds?metadataFeedId=FEED_ID"
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID_PUBSUB: מזהה הפרויקט שבו נמצא נושא ה-Pub/Sub – לדוגמה,example-project -
TOPIC_ID: מזהה נושא ה-Pub/Sub שאליו מתפרסמות ההודעות של פיד השינויים במטא-נתונים – לדוגמה,example-topic -
FEED_ID: המזהה של פיד השינויים במטא-נתונים שרוצים ליצור, לדוגמהexample-feed
היקף הפרויקט
מריצים את הפקודה הבאה כדי ליצור פיד לשינויים במטא-נתונים שעוקב אחרי פרויקטים ספציפיים:
gcurl -X POST -d "$(cat <<EOF
{
"scope": {
"projects": [
"projects/PROJECT_ID_1",
"projects/PROJECT_ID_2"
]
},
"pubsubTopic": "projects/PROJECT_ID_PUBSUB/topics/TOPIC_ID"
}
EOF
)" "https://${DATAPLEX_API}/metadataFeeds?metadataFeedId=FEED_ID"
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID_PUBSUB: מזהה הפרויקט שבו נמצא נושא ה-Pub/Sub – לדוגמה,example-project -
TOPIC_ID: מזהה נושא ה-Pub/Sub שאליו מתפרסמות ההודעות של פיד השינויים במטא-נתונים – לדוגמה,example-topic -
FEED_ID: המזהה של פיד השינויים במטא-נתונים שרוצים ליצור, לדוגמהexample-feed
היקף קבוצת הכניסה
מריצים את הפקודה הבאה כדי ליצור פיד לשינויים במטא-נתונים שעוקב אחרי קבוצות רשומות ספציפיות:
gcurl -X POST -d "$(cat <<EOF
{
"scope": {
"entryGroups": [
"projects/PROJECT_ID/locations/LOCATION/entryGroups/ENTRY_GROUP_ID_1",
"projects/PROJECT_ID/locations/LOCATION/entryGroups/ENTRY_GROUP_ID_2"
]
},
"pubsubTopic": "projects/PROJECT_ID_PUBSUB/topics/TOPIC_ID"
}
EOF
)" "https://${DATAPLEX_API}/metadataFeeds?metadataFeedId=FEED_ID"
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID_PUBSUB: מזהה הפרויקט שבו נמצא נושא ה-Pub/Sub – לדוגמה,example-project -
LOCATION: המיקום שבו רוצים ליצור את הפיד, לדוגמהus-central1 -
ENTRY_GROUP_ID: מזהה קבוצת הרשומות למעקב, לדוגמה:example-entry-group -
TOPIC_ID: מזהה נושא ה-Pub/Sub שאליו מתפרסמות ההודעות של פיד השינויים במטא-נתונים – לדוגמה,example-topic -
FEED_ID: המזהה של פיד השינויים במטא-נתונים שרוצים ליצור, לדוגמהexample-feed
בעזרת מסננים
מריצים את הפקודה הבאה כדי ליצור פיד של שינויים במטא-נתונים עם מסננים (סינון לפי סוג הרשומה):
gcurl -X POST -d "$(cat <<EOF
{
"scope": {
"projects": [
"projects/PROJECT_ID_1",
"projects/PROJECT_ID_2"
]
},
"filter": {
"entryTypes": [
"projects/PROJECT_ID/locations/global/entryTypes/bigquery-table"
]
},
"pubsubTopic": "projects/PROJECT_ID_PUBSUB/topics/TOPIC_ID"
}
EOF
)" "https://${DATAPLEX_API}/metadataFeeds?metadataFeedId=FEED_ID"
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID_PUBSUB: מזהה הפרויקט שבו נמצא נושא ה-Pub/Sub – לדוגמה,example-project -
TOPIC_ID: מזהה נושא ה-Pub/Sub שאליו מתפרסמות ההודעות של פיד השינויים במטא-נתונים – לדוגמה,example-topic -
FEED_ID: המזהה של פיד השינויים במטא-נתונים שרוצים ליצור, לדוגמהexample-feed
תשובה:
{
"name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.dataplex.v1.OperationMetadata",
"createTime": "2023-10-02T15:01:23Z",
"target": "projects/PROJECT_ID/locations/LOCATION/metadataFeeds/FEED_ID",
"verb": "create",
"apiVersion": "v1"
},
"done": false
}
צפייה בפידים של שינויים במטא-נתונים
אפשר לראות את הפרטים של פיד שינויים במטא-נתונים.
REST
כדי לראות פיד של שינויים במטא-נתונים, משתמשים בשיטה projects.locations.metadataFeeds.get.
מריצים את הפקודה הבאה:
gcurl "https://${DATAPLEX_API}/metadataFeeds/FEED_ID"
מחליפים את מה שכתוב בשדות הבאים:
-
FEED_ID: המזהה של פיד השינויים במטא-נתונים שרוצים להציג. לדוגמה:example-feed
רשימה של פידים לשינוי מטא-נתונים
אפשר להציג רשימה של פידים של שינויים במטא-נתונים בפרויקט ובמיקום.
REST
כדי להציג רשימה של פידים של שינויים במטא-נתונים, משתמשים בשיטה projects.locations.metadataFeeds.list.
מריצים את הפקודה הבאה:
gcurl "https://${DATAPLEX_API}/metadataFeeds"
עדכון פיד לשינוי מטא-נתונים
אפשר לעדכן את ההיקף או את המסננים של פיד קיים של שינויים במטא-נתונים.
REST
כדי לעדכן פיד לשינויים במטא-נתונים, משתמשים בשיטה
projects.locations.metadataFeeds.patch.
מריצים את הפקודה הבאה כדי לעדכן את פיד השינויים במטא-נתונים ולהסיר את המסננים של סוג הרשומה:
gcurl -X PATCH -d "$(cat <<EOF
{
"filter": {
"entryTypes": []
}
}
EOF
)" "https://${DATAPLEX_API}/metadataFeeds/FEED_ID?updateMask=filter"
מחליפים את מה שכתוב בשדות הבאים:
-
FEED_ID: המזהה של פיד השינויים במטא-נתונים שרוצים לעדכן. לדוגמה:example-feed
מחיקת פיד לשינויים במטא-נתונים
אפשר למחוק פיד של שינויים במטא-נתונים אם אתם כבר לא רוצים לקבל התראות.
מחיקה של פיד שינויים במטא-נתונים מפסיקה את הפרסום של שינויים חדשים במטא-נתונים בנושא Pub/Sub. עם זאת, הפעולה הזו לא מוחקת את הנושא או את המינוי שמשויך לפיד. אם אין יותר צורך בהם, צריך למחוק אותם ידנית.
לפני שמוחקים את הפיד או את המינוי, צריך לוודא שאפליקציות המנויים עיבדו את כל ההודעות שלא נשלחו במינוי Pub/Sub.
REST
כדי למחוק פיד של שינויים במטא-נתונים, משתמשים בשיטה projects.locations.metadataFeeds.delete.
מריצים את הפקודה הבאה:
gcurl -X DELETE \
"https://${DATAPLEX_API}/metadataFeeds/FEED_ID"
מחליפים את מה שכתוב בשדות הבאים:
-
FEED_ID: המזהה של פיד השינויים במטא-נתונים שרוצים למחוק – לדוגמה,example-feed
צריכת הודעות התראה
אחרי שמגדירים פיד של שינויי מטא-נתונים, Dataplex Universal Catalog מפרסם הודעות בנושא Pub/Sub שצוין כשמתרחשים שינויים במטא-נתונים. כדי להשתמש בהודעות האלה, צריך ליצור מינוי Pub/Sub לנושא.
לדוגמה, אפשר ליצור מינוי שליפה ולהשתמש ב-Google Cloud CLI כדי להציג הודעות:
יצירת מינוי:
gcloud pubsub subscriptions create SUBSCRIPTION_ID --topic=TOPIC_IDמחליפים את מה שכתוב בשדות הבאים:
-
SUBSCRIPTION_ID: מזהה המינוי שרוצים ליצור -
TOPIC_ID: מזהה נושא Pub/Sub שאליו מתפרסמות ההודעות של פיד השינויים במטא-נתונים.
-
שליפת הודעות מהמינוי:
gcloud pubsub subscriptions pull SUBSCRIPTION_ID --auto-ack --limit=10מחליפים את מה שכתוב בשדות הבאים:
-
SUBSCRIPTION_ID: מזהה המינוי שממנו רוצים לשלוף הודעות
-
מידע נוסף על עיבוד הודעות Pub/Sub זמין במאמר בנושא קבלת הודעות ממינוי שליפה. מידע על פורמט ההודעה זמין במאמר Data payload.
המאמרים הבאים
- סקירה כללית על פידים של שינויים במטא-נתונים
- מידע נוסף על IAM ובקרת גישה ב-Dataplex Universal Catalog
- פתרון בעיות בפידים של שינויים במטא-נתונים