ב-Knowledge Catalog (לשעבר Dataplex Universal Catalog) אתם יכולים לייצא מטא-נתונים לשימוש במערכות חיצוניות באמצעות משימת ייצוא מטא-נתונים. לאחר מכן תוכלו לנתח את המטא-נתונים האלה באמצעות כלים כמו BigQuery, לעבד כמויות גדולות באופן פרוגרמטי או לשלב אותם עם אפליקציות בהתאמה אישית.
במסמך הזה אנחנו מניחים שאתם מכירים את המושגים שקשורים למטא-נתונים של Knowledge Catalog, כולל קבוצות של רשומות, סוגי רשומות וסוגי היבטים.
היקף המשרה
היקף המשימה מגדיר את המטא-נתונים לייצוא. בכל משימת ייצוא של מטא-נתונים, צריך לציין אחד מהיקפי המשימות הבאים:
- ארגון: ייצוא המטא-נתונים ששייכים לארגון.
- Projects: ייצוא המטא-נתונים ששייכים לפרויקטים שצוינו.
- Entry groups: ייצוא המטא-נתונים ששייכים לקבוצות הרשומות שצוינו.
כדי לצמצם עוד יותר את ההיקף, אפשר לציין את סוגי הרשומות או סוגי ההיבטים שרוצים לכלול במשימה. המשימה מייצאת רק את הרשומות וההיבטים ששייכים לסוגי הרשומות וסוגי ההיבטים האלה.
VPC Service Controls
ב-Knowledge Catalog נעשה שימוש ב-VPC Service Controls כדי לספק אבטחה נוספת למשימות של ייצוא מטא-נתונים. הפרויקט שאליו שייכת המשימה קובע את ההיקף של VPC Service Controls, באופן הבא:
- אם מגדירים את היקף המשימה ברמת הארגון, קורים הדברים הבאים:
- היקף הייצוא הוא הארגון שאליו שייכת המשימה.
- רק הרשומות שנמצאות בתוך היקף האבטחה של VPC Service Controls מיוצאות.
- פרויקטים שנמצאים בארגון של המשימה אבל מחוץ להיקף של VPC Service Controls לא נכללים.
- אם מגדירים את היקף המשימה לפרויקטים או לקבוצות של רשומות, הפרויקטים או הקבוצות של הרשומות צריכים להיות באותו היקף של VPC Service Controls כמו המשימה. אם אחד מהפרויקטים או אחת מקבוצות הרשומות מפרים את הכללים של VPC Service Controls, המשימה נכשלת.
לפני שמתחילים
לפני שאתם מייצאים מטא-נתונים, אתם צריכים להשלים את המשימות שמפורטות בקטע הזה.
התפקידים הנדרשים למשתמשי קצה
כדי לקבל את ההרשאות שדרושות לניהול משימות של ייצוא מטא-נתונים, בקשו מהאדמין להקצות לכם את התפקידים הבאים ב-IAM:
-
יצירת משימות לייצוא מטא-נתונים:
- ייצוא של קבוצת רשומות ב-Dataplex (
roles/dataplex.entryGroupExporter) בארגון, בפרויקטים או בקבוצות הרשומות שרוצים לייצא - Dataplex Metadata Job Owner (
roles/dataplex.metadataJobOwner) בפרויקט שבו מריצים את משימת המטא-נתונים
- ייצוא של קבוצת רשומות ב-Dataplex (
-
גישה לתוצאות שיוצאו: צפייה באובייקטים באחסון (
roles/storage.objectViewer) בפרויקט או בקטגוריה -
צפייה במשימות של מטא-נתונים:
Dataplex Metadata Job Viewer (
roles/dataplex.metadataJobViewer) בפרויקט
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקידים המוגדרים מראש האלה כוללים את ההרשאות שנדרשות כדי לנהל משימות של ייצוא מטא-נתונים. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי לנהל משימות של ייצוא מטא-נתונים, נדרשות ההרשאות הבאות:
-
ייצוא מטא-נתונים:
-
dataplex.metadataJobs.create -
dataplex.entryGroups.export -
dataplex.entryGroups.get -
resourcemanager.projects.get -
resourcemanager.projects.list
-
-
ניגשים לתוצאות שיוצאו:
storage.objects.get
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
התפקידים הנדרשים לחשבון השירות של Knowledge Catalog
כדי לוודא שלחשבון השירות של Knowledge Catalog יש את ההרשאות הנדרשות כדי לגשת לקטגוריה של Cloud Storage, צריך לבקש מהאדמין לתת לחשבון השירות של Knowledge Catalog את ההרשאות הבאות בקטגוריה: storage.buckets.get, storage.objects.get ו-storage.objects.create.
איך מגדירים משאבים ב- Google Cloud
התקינו את ה-CLI של Google Cloud. אחר כך, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initאם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
יוצרים קטגוריה של Cloud Storage כדי לאחסן את התוצאות שיוצאו.
הקטגוריה צריכה להיות באותו מיקום ובאותו מתחם היקפי של VPC Service Controls כמו משימת המטא-נתונים.
הפעלת משימת ייצוא של מטא-נתונים
בקטעים הבאים מוסבר איך לייצא מטא-נתונים עם היקפי משימות שונים.
ייצוא מטא-נתונים מהארגון
כדי לייצא את המטא-נתונים מהארגון, משתמשים בשיטה metadataJobs.create ומגדירים את הערך הבוליאני organizationLevel כ-true.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
JOB_PROJECT: הפרויקט ב- Google Cloudשבו מריצים את משימת המטא-נתונים. מזינים את מספר הפרויקט או את מזהה הפרויקט. -
LOCATION_ID: המיקום ב- Google Cloud , למשלus-central1. -
METADATA_JOB_ID: אופציונלי. מזהה המשימה של המטא-נתונים.
BUCKET: הקטגוריה ב-Cloud Storage שאליה רוצים לייצא את המטא-נתונים.אפשר גם לכלול קידומת בהתאמה אישית אחרי שם הקטגוריה, בפורמט
gs://BUCKET/PREFIX/. האורך המקסימלי של הקידומת בהתאמה אישית הוא 128 תווים.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://dataplex.googleapis.com/v1/projects/JOB_PROJECT/locations/LOCATION_ID/metadataJobs?metadataJobId=METADATA_JOB_ID
תוכן בקשת JSON:
{
"type": "EXPORT",
"export_spec": {
"output_path": "gs://BUCKET/",
"scope": {
"organizationLevel": true,
},
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
התגובה מזהה פעולה ממושכת. המטא-נתונים שיוצאו נשמרים בקטגוריה של Cloud Storage.
ייצוא מטא-נתונים מפרויקטים ספציפיים
כדי לייצא מטא-נתונים מפרויקט אחד או יותר, משתמשים בשיטה metadataJobs.create ומספקים רשימה של פרויקטים.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
JOB_PROJECT: הפרויקט ב- Google Cloudשבו מריצים את משימת המטא-נתונים. מזינים את מספר הפרויקט או את מזהה הפרויקט. -
LOCATION_ID: המיקום ב- Google Cloud , למשלus-central1. -
METADATA_JOB_ID: אופציונלי. מזהה המשימה של המטא-נתונים.
BUCKET: הקטגוריה ב-Cloud Storage שאליה רוצים לייצא את המטא-נתונים.אפשר גם לכלול קידומת בהתאמה אישית אחרי שם הקטגוריה, בפורמט
gs://BUCKET/PREFIX/. האורך המקסימלי של הקידומת בהתאמה אישית הוא 128 תווים.-
METADATA_SOURCE_PROJECT: פרויקט שרוצים לייצא את המטא-נתונים שלו. מזינים את מספר הפרויקט או את מזהה הפרויקט. הפרויקט צריך להיות באותו ארגון ובאותו היקף של VPC Service Controls כמו משימת המטא-נתונים.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://dataplex.googleapis.com/v1/projects/JOB_PROJECT/locations/LOCATION_ID/metadataJobs?metadataJobId=METADATA_JOB_ID
תוכן בקשת JSON:
{
"type": "EXPORT",
"export_spec": {
"output_path": "gs://BUCKET/",
"scope": {
"projects": [
"projects/METADATA_SOURCE_PROJECT",
# Additional projects
],
},
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
התגובה מזהה פעולה ממושכת. המטא-נתונים שיוצאו נשמרים בקטגוריה של Cloud Storage.
ייצוא מטא-נתונים מקבוצות ספציפיות של רשומות
כדי לייצא מטא-נתונים מקבוצות ספציפיות של רשומות, משתמשים ב-method metadataJobs.create ומספקים רשימה של קבוצות רשומות.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
JOB_PROJECT: הפרויקט ב- Google Cloudשבו מריצים את משימת המטא-נתונים. מזינים את מספר הפרויקט או את מזהה הפרויקט. -
LOCATION_ID: המיקום ב- Google Cloud , למשלus-central1. -
METADATA_JOB_ID: אופציונלי. מזהה המשימה של המטא-נתונים.
BUCKET: הקטגוריה ב-Cloud Storage שאליה רוצים לייצא את המטא-נתונים.אפשר גם לכלול קידומת בהתאמה אישית אחרי שם הקטגוריה, בפורמט
gs://BUCKET/PREFIX/. האורך המקסימלי של הקידומת בהתאמה אישית הוא 128 תווים.-
ENTRY_GROUP: שם המשאב היחסי של קבוצת רשומות שנמצאת בהיקף של המשימה, בפורמטprojects/PROJECT_ID_OR_NUMBER/locations/LOCATION_ID/entryGroups/ENTRY_GROUP_ID. קבוצת הרשומות צריכה להיות באותו פרויקט שבו נמצאת משימת המטא-נתונים.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://dataplex.googleapis.com/v1/projects/JOB_PROJECT/locations/LOCATION_ID/metadataJobs?metadataJobId=METADATA_JOB_ID
תוכן בקשת JSON:
{
"type": "EXPORT",
"export_spec": {
"output_path": "gs://BUCKET/",
"scope": {
"entryGroups": [
"ENTRY_GROUP",
# Additional entry groups
],
},
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
התגובה מזהה פעולה ממושכת. המטא-נתונים שיוצאו נשמרים בקטגוריה של Cloud Storage.
ייצוא מטא-נתונים מסוגי רשומות או מסוגי היבטים ספציפיים
כדי לייצא מטא-נתונים מסוגי רשומות או מסוגי היבטים ספציפיים, מגדירים את היקף המשימה הראשי, למשל ברמת הארגון, כמו בדוגמה הבאה. לאחר מכן, מספקים רשימה של סוגי רשומות, סוגי היבטים או שניהם.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
ENTRY_TYPE: אופציונלי. השם של המשאב היחסי של סוג רשומה שנכלל בהיקף של המשימה, בפורמטprojects/PROJECT_ID_OR_NUMBER/locations/LOCATION_ID/entryTypes/ENTRY_TYPE_ID.-
ASPECT_TYPE: אופציונלי. השם של המשאב היחסי של סוג ההיבט שנכלל בהיקף של המשימה, בפורמטprojects/PROJECT_ID_OR_NUMBER/locations/LOCATION_ID/aspectTypes/ASPECT_TYPE_ID.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://dataplex.googleapis.com/v1/projects/JOB_PROJECT/locations/LOCATION_ID/metadataJobs?metadataJobId=METADATA_JOB_ID
תוכן בקשת JSON:
{
"type": "EXPORT",
"export_spec": {
"output_path": "gs://BUCKET/",
"scope": {
"organizationLevel": true,
"entry_types": [
"ENTRY_TYPE",
# Additional entry types
],
"aspect_types": [
"ASPECT_TYPE",
# Additional aspect types
]
},
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
התגובה מזהה פעולה ממושכת. המטא-נתונים שיוצאו נשמרים בקטגוריה של Cloud Storage.
קבלת פרטים על משימת מטא-נתונים
כדי לקבל מידע על משימת מטא-נתונים, כמו סטטוס המשימה ומספר הרשומות שיוצאו, משתמשים בשיטה metadataJobs.get.
תוצאות הייצוא של המטא-נתונים
המשימה של ייצוא המטא-נתונים מייצאת תמונת מצב של המטא-נתונים של Knowledge Catalog בזמן שבו נוצרה משימת המטא-נתונים.
ייצוא תוכן הקובץ
התוכן של קובץ הפלט הוא באותו פורמט של קובץ ייבוא המטא-נתונים שמשמש למשימות של ייבוא מטא-נתונים. אתם יכולים להשתמש בקובץ הפלט ישירות כקלט למשימת ייבוא מטא-נתונים.
מיקום קובץ הייצוא
Knowledge Catalog שומר את קובצי תוצאות הייצוא כאובייקטים בקטגוריה של Cloud Storage.
נתיב האובייקט של כל קובץ פלט נוצר באמצעות שם הקטגוריה והקידומת בהתאמה אישית שציינתם במשימת הייצוא, ואחריהם נתיב שנוצר על ידי המערכת. הנתיב שנוצר על ידי המערכת מיועד לשילוב עם BigQuery. הפורמט של נתיב האובייקט הוא:
gs://BUCKET/PREFIX/year=YYYY/month=MM/day=DD/consumer_project=JOB_PROJECT/job=METADATA_JOB_ID/project=METADATA_SOURCE_PROJECT/entrygroup=ENTRY_GROUP/FILE_NUMBER.jsonl
שימו לב לנקודות הבאות:
- הנתיב שנוצר על ידי המערכת מתחיל בפורמט המחיצה הרגיל של Hive, לפי תאריך היצירה של משימת הייצוא. הפורמט הזה נתמך ב-BigQuery. מידע נוסף זמין במאמר טעינה של נתונים שחולקו למחיצות באופן חיצוני.
- הפרמטר
consumer_projectהוא הפרויקט שבו מריצים את משימת הייצוא של המטא-נתונים. הפרמטרprojectהוא הפרויקט שמכיל את המטא-נתונים שאתם מייצאים. - אם המשימה הקודמת נמחקה, אתם יכולים להשתמש שוב במזהה המשימה של המטא-נתונים. עם זאת, כשמוחקים משימה, הקבצים שיוצאו על ידי המשימה לא נמחקים. כלומר, אם תשתמשו שוב במזהה משימה שנמחק, יכול להיות שתראו מזהי משימות כפולים בנתיבי קובצי הפלט.
כל קובץ פלט נקרא לפי מספר הקובץ, שהוא מספר שלם שמתחיל מ-
1.אם משימת ייצוא של מטא-נתונים מכילה מספר גדול של רשומות, המשימה מפצלת את התוצאות לכמה קבצים כדי להגביל את הגודל של כל קובץ פלט. מספר הרשומות המקסימלי בכל קובץ פלט הוא 1,000,000.
קובצי פלט לדוגמה
הנה דוגמאות לקובצי פלט של משימת ייצוא מטא-נתונים שכללה כמה פרויקטים:
gs://export-bucket/example-folder/year=2025/month=04/day=13/consumer_project=admin-project/job=example-job/project=metadata-project-1/entrygroup=entry-group-1/1.jsonl gs://export-bucket/example-folder/year=2025/month=04/day=13/consumer_project=admin-project/job=example-job/project=metadata-project-2/entrygroup=entry-group-1/1.jsonl gs://export-bucket/example-folder/year=2025/month=04/day=13/consumer_project=admin-project/job=example-job/project=metadata-project-3/entrygroup=entry-group-2/1.jsonl
הנה דוגמאות לקובצי פלט של משימת ייצוא מטא-נתונים שהכילה קבוצת רשומות גדולה. התוצאות של קבוצת הרשומות פוצלו לכמה קבצים.
gs://export-bucket/example-folder/year=2025/month=04/day=13/consumer_project=admin-project/job=another-example-job/project=example-metadata-project/entrygroup=big-entry-group/1.jsonl gs://export-bucket/example-folder/year=2025/month=04/day=13/consumer_project=admin-project/job=another-example-job/project=example-metadata-project/entrygroup=big-entry-group/2.jsonl
ניתוח המטא-נתונים שיוצאו ב-BigQuery
אם אתם רוצים לנתח את המטא-נתונים שיוצאו ב-BigQuery, אתם יכולים ליצור טבלה חיצונית בשביל המטא-נתונים שיוצאו. יצירת טבלה חיצונית מאפשרת לשלוח שאילתות לנתונים שיוצאו, בלי לטעון או לשנות נתונים נוספים. לדוגמה, אפשר לספור את מספר הרשומות לפי קבוצת רשומות, למצוא רשומות עם מאפיינים ספציפיים או לבצע ניתוח נוסף ב-BigQuery.
מבצעים את הפעולות הבאות:
יצירת טבלה חיצונית לנתונים שחולקו למחיצות ב-Hive. ממלאים את הפרטים הבאים:
- בחירת קובץ מקטגוריה של Cloud Storage: מציינים את הנתיב לתיקייה ב-Cloud Storage שמכילה את קובצי המטא-נתונים שיוצאו. כדי לכלול את כל הקבצים בקטגוריה, משתמשים בתו הכללי לחיפוש כוכבית (
*). לדוגמה,gs://export-bucket/example-folder/*. - File format: בוחרים באפשרות JSONL (Newline delimited JSON).
- מסמנים את התיבה Source data partitioning, ובשדה Select Source URI Prefix מזינים את הקידומת של ה-URI של Cloud Storage לטבלה ב-BigQuery כדי להגדיר מחיצות. לדוגמה:
gs://export-bucket/example-folder/. - מצב היסק של מחיצה: בוחרים באפשרות Automatically infer types.
- Table type: בוחרים באפשרות External table.
סכימה: לוחצים על המתג Edit as text ומזינים את הגדרת הסכימה הבאה לקובצי הייצוא:
[ { "name": "entry", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "mode": "NULLABLE", "name": "name", "type": "STRING" }, { "mode": "NULLABLE", "name": "entryType", "type": "STRING" }, { "mode": "NULLABLE", "name": "createTime", "type": "STRING" }, { "mode": "NULLABLE", "name": "updateTime", "type": "STRING" }, { "mode": "NULLABLE", "name": "aspects", "type": "JSON" }, { "mode": "NULLABLE", "name": "parentEntry", "type": "STRING" }, { "mode": "NULLABLE", "name": "fullyQualifiedName", "type": "STRING" }, { "mode": "NULLABLE", "name": "entrySource", "type": "RECORD", "fields": [ { "mode": "NULLABLE", "name": "resource", "type": "STRING" }, { "mode": "NULLABLE", "name": "system", "type": "STRING" }, { "mode": "NULLABLE", "name": "platform", "type": "STRING" }, { "mode": "NULLABLE", "name": "displayName", "type": "STRING" }, { "mode": "NULLABLE", "name": "description", "type": "STRING" }, { "mode": "NULLABLE", "name": "labels", "type": "JSON" }, { "mode": "REPEATED", "name": "ancestors", "type": "RECORD", "fields": [ { "mode": "NULLABLE", "name": "name", "type": "STRING" }, { "mode": "NULLABLE", "name": "type", "type": "STRING" } ] }, { "mode": "NULLABLE", "name": "createTime", "type": "STRING" }, { "mode": "NULLABLE", "name": "updateTime", "type": "STRING" }, { "mode": "NULLABLE", "name": "location", "type": "STRING" } ] } ] } ]
- בחירת קובץ מקטגוריה של Cloud Storage: מציינים את הנתיב לתיקייה ב-Cloud Storage שמכילה את קובצי המטא-נתונים שיוצאו. כדי לכלול את כל הקבצים בקטגוריה, משתמשים בתו הכללי לחיפוש כוכבית (
BigQuery יוצר טבלה חיצונית שמכילה את המטא-נתונים שיוצאו. הסכימה של הטבלה כוללת עמודת סכימה מסוג entry, שבה כל שורה מייצגת רשומה אחת. למידע נוסף על השדות של רשומה, ראו ImportItem.
הסכימה של הטבלה מכילה גם את המחיצות של קובץ הייצוא, כפי שמתואר בקטע מיקום קובץ הייצוא במאמר הזה.
אחרי שיוצרים את הטבלה החיצונית, אפשר לשלוח שאילתה לטבלה באמצעות תחביר GoogleSQL. לדוגמה, כדי לשלוח שאילתה על סוגי הרשומות שיוצאו, משתמשים בהצהרה הבאה:
SELECT entry.entryType FROM `example-project.example-dataset.example-table` LIMIT 1000
המאמרים הבאים
- איך שולחים שאילתות לטבלאות ב-BigQuery באמצעות תחביר GoogleSQL
- ייבוא מטא-נתונים ל-Knowledge Catalog באמצעות צינור עיבוד נתונים מנוהל לקישוריות.