במאמר הזה מוסבר איך לייצא מטא-נתונים מ-Dataplex Universal Catalog באמצעות משימת ייצוא מטא-נתונים, כדי להשתמש בהם במערכות חיצוניות. אפשר לייצא את המטא-נתונים כדי לנתח אותם באמצעות כלים כמו BigQuery, לעבד כמויות גדולות של נתונים באופן פרוגרמטי או לשלב אותם עם אפליקציות בהתאמה אישית.
המדריך הזה מיועד למי שמכיר את המושגים שקשורים למטא-נתונים ב-Dataplex Universal Catalog, כולל קבוצות של רשומות, סוגי רשומות וסוגי היבטים.
היקף המשרה
היקף המשימה מגדיר את המטא-נתונים לייצוא. צריך לציין את אחד מההיקפים הבאים של משימת ייצוא לכל משימת ייצוא של מטא-נתונים:
- ארגון: ייצוא המטא-נתונים ששייכים לארגון.
- Projects: ייצוא של המטא-נתונים ששייכים לפרויקטים שצוינו.
- קבוצות של רשומות: ייצוא של המטא-נתונים ששייכים לקבוצות הרשומות שצוינו.
כדי לצמצם עוד יותר את ההיקף, אפשר לציין את סוגי הרשומות או סוגי ההיבטים שייכללו בעבודה. העבודה מייצאת רק את הרשומות וההיבטים ששייכים לסוגי הרשומות ולסוגי ההיבטים האלה.
VPC Service Controls
Dataplex Universal Catalog משתמש ב-VPC Service Controls כדי לספק אבטחה נוספת לעבודות ייצוא של מטא-נתונים. הפרויקט שאליו שייך הג'וב קובע את גבולות הגזרה של VPC Service Controls, באופן הבא:
- אם מגדירים את היקף העבודה ברמת הארגון, קורים הדברים הבאים:
- היקף הייצוא הוא הארגון שאליו שייכת המשימה.
- רק הרשומות שנמצאות בתוך גבולות הגזרה של VPC Service Controls מיוצאות.
- פרויקטים שנמצאים בארגון של המשרה אבל מחוץ לגבולות הגזרה של VPC Service Controls מוחרגים.
- אם מגדירים את היקף העבודה לפרויקטים או לקבוצות של רשומות, הפרויקטים או הקבוצות של הרשומות צריכים להיות באותו גבולות גזרה של VPC Service Controls כמו העבודה. אם יש הפרה של כללי VPC Service Controls באחד מהפרויקטים או בקבוצות הכניסה, העבודה תיכשל.
לפני שמתחילים
לפני שמייצאים מטא-נתונים, צריך להשלים את המשימות שבקטע הזה.
התפקידים הנדרשים למשתמשי קצה
כדי לקבל את ההרשאות שדרושות לניהול של משימות ייצוא מטא-נתונים, אתם צריכים לבקש מהאדמין לתת לכם את תפקידי ה-IAM הבאים:
-
יצירת משימות לייצוא מטא-נתונים:
-
Dataplex Entry Group Exporter (
roles/dataplex.entryGroupExporter) באופן כללי בארגון, בפרויקטים או בקבוצות הרשומות לייצוא -
Dataplex Metadata Job Owner (
roles/dataplex.metadataJobOwner) בפרויקט שבו מריצים את משימת המטא-נתונים
-
Dataplex Entry Group Exporter (
-
גישה לתוצאות המיוצאות:
צפייה באובייקט אחסון (
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
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
התפקידים הנדרשים לחשבון השירות של Dataplex Universal Catalog
כדי לוודא שלחשבון השירות של Dataplex Universal Catalog יש את ההרשאות הנדרשות לגישה לקטגוריה של Cloud Storage, צריך לבקש מהאדמין לתת לחשבון השירות של Dataplex Universal 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.
ייצוא מטא-נתונים מקבוצות ספציפיות של רשומות
כדי לייצא מטא-נתונים מקבוצות ספציפיות של רשומות, משתמשים בשיטה 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.
תוצאות ייצוא המטא-נתונים
תהליך ייצוא המטא-נתונים מייצא תמונת מצב של המטא-נתונים של Dataplex Universal Catalog בזמן שבו נוצר תהליך המטא-נתונים.
ייצוא תוכן הקובץ
התוכן של קובץ הפלט זהה לפורמט של קובץ ייבוא המטא-נתונים שמשמש למשימות ייבוא של מטא-נתונים. אפשר להשתמש בקובץ הפלט ישירות כקלט למשימת ייבוא של מטא-נתונים.
מיקום קובץ הייצוא
ב-Dataplex Universal 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/entry_group=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/*. - פורמט קובץ: בוחרים באפשרות JSONL (פורמט JSON שמופרד בתו שורה חדשה).
- מסמנים את תיבת הסימון חלוקת נתוני המקור למחיצות, ואז בשדה בחירת קידומת URI של מקור, מציינים את קידומת ה-URI של Cloud Storage לטבלה ב-BigQuery כדי להגדיר מחיצות. לדוגמה:
gs://export-bucket/example-folder/. - מצב הסקה של מחיצות: בוחרים באפשרות הסקת סוגים באופן אוטומטי.
- סוג הטבלה: בוחרים באפשרות טבלה חיצונית.
סכימה: לוחצים על המתג עריכה כטקסט, ואז מזינים את הגדרת הסכימה הבאה לקובצי הייצוא:
[ { "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
- ייבוא מטא-נתונים אל Dataplex Universal Catalog באמצעות צינור קישוריות מנוהל.