במאמר הזה מוסבר איך לייבא מטא-נתונים ממקורות של צד שלישי אל Knowledge Catalog (לשעבר Dataplex Universal Catalog) באמצעות הגדרה והפעלה של צינור קישוריות מנוהל ב-Workflows. בצינור הזה מתבצעת חילוץ של מטא-נתונים ממקור הנתונים המותאם אישית שלכם וייבוא שלהם אל Knowledge Catalog, וכך נוצרות קבוצות של רשומות שנדרשות.
מידע נוסף על קישוריות מנוהלת זמין במאמר סקירה כללית על קישוריות מנוהלת.
לפני שמתחילים
לפני שמייבאים מטא-נתונים, צריך להשלים את המשימות שבקטע הזה.
יצירת מחבר
מחבר מחלץ את המטא-נתונים ממקור הנתונים ויוצר קובץ ייבוא של מטא-נתונים שאפשר לייבא לקטלוג הידע. המחבר הוא תמונת Artifact Registry שאפשר להריץ ב-Managed Service for Apache Spark.
יוצרים מחבר בהתאמה אישית שמחלץ מטא-נתונים ממקור צד שלישי.
דוגמה למחבר שאפשר להשתמש בו כתבנית הפניה כדי ליצור מחבר משלכם מופיעה במאמר פיתוח מחבר בהתאמה אישית לייבוא מטא-נתונים.
הגדרת Google Cloud משאבים
-
מפעילים את ממשקי ה-API של Workflows, Dataproc, Cloud Storage, Dataplex, Secret Manager, Artifact Registry ו-Cloud Scheduler.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידיםאם אתם לא מתכננים להריץ את צינור הנתונים לפי לוח זמנים, אתם לא צריכים להפעיל את Cloud Scheduler API.
יוצרים סודות ב-Secret Manager כדי לאחסן את פרטי הכניסה למקור הנתונים מצד שלישי.
הגדרת רשת של ענן וירטואלי פרטי (VPC) להרצת עומסי עבודה של Managed Service for Apache Spark.
יוצרים קטגוריה של Cloud Storage לאחסון קובצי ייבוא המטא-נתונים.
יוצרים את המשאבים הבאים ב-Knowledge Catalog:
יוצרים סוגים מותאמים אישית של היבטים לרשומות שרוצים לייבא.
יוצרים סוגים מותאמים אישית של רשומות לרשומות שרוצים לייבא.
התפקידים הנדרשים
חשבון שירות מייצג את הזהות של תהליך עבודה, וקובע אילו הרשאות יש לתהליך העבודה ולאילו Google Cloud משאבים הוא יכול לגשת. צריך חשבון שירות בשביל Workflows (כדי להריץ את צינור הנתונים) ובשביל Managed Service for Apache Spark (כדי להריץ את המחבר).
אתם יכולים להשתמש בחשבון השירות של Compute Engine שמוגדר כברירת מחדל (PROJECT_NUMBER-compute@developer.gserviceaccount.com), או ליצור חשבון שירות משלכם (או חשבונות שירות משלכם) כדי להריץ את צינור הקישוריות המנוהל.
המסוף
נכנסים לדף IAM במסוף Google Cloud .
בוחרים את הפרויקט שאליו רוצים לייבא את המטא-נתונים.
לוחצים על Grant Access (הענקת גישה) ומזינים את כתובת האימייל של חשבון השירות.
מקצים לחשבון השירות את התפקידים הבאים:
- Logs Writer
- Dataplex Entry Group Owner
- הבעלים של משימת מטא-נתונים ב-Dataplex
- Dataplex Catalog Editor
- עורך Dataproc
- Dataproc Worker
- Secret Manager Secret Accessor – בסוד שבו מאוחסנים פרטי הכניסה למקור הנתונים
- Storage Object User – בקטגוריה של Cloud Storage
- Artifact Registry Reader – במאגר Artifact Registry שמכיל את תמונת המחבר
- משתמש בחשבון שירות – אם משתמשים בחשבונות שירות שונים, צריך להקצות לחשבון השירות שמריץ את Workflows את התפקיד הזה בחשבון השירות שמריץ את משימות האצווה של Managed Service for Apache Spark
- Workflows Invoker – אם רוצים לתזמן את הפייפליין
שומרים את השינויים.
gcloud
נותנים לחשבון השירות תפקידים. מריצים את הפקודות הבאות:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/logging.logWriter gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/dataplex.entryGroupOwner gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/dataplex.metadataJobOwner gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/dataplex.catalogEditor gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/dataproc.editor gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/dataproc.workerמחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: השם של פרויקט היעד Google Cloudשאליו רוצים לייבא את המטא-נתונים. -
SERVICE_ACCOUNT_ID: חשבון השירות, למשלmy-service-account@my-project.iam.gserviceaccount.com.
-
מקצים לחשבון השירות את התפקידים הבאים ברמת המשאב:
gcloud secrets add-iam-policy-binding SECRET_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/secretmanager.secretaccessor gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/storage.objectUser \ --condition=resource.name.startsWith('projects/_/buckets/BUCKET_ID') gcloud artifacts repositories add-iam-policy-binding REPOSITORY \ --location=REPOSITORY_LOCATION \ --member=SERVICE_ACCOUNT_ID} \ --role=roles/artifactregistry.readerמחליפים את מה שכתוב בשדות הבאים:
-
SECRET_ID: המזהה של הסוד שבו מאוחסנים פרטי הכניסה למקור הנתונים. הפורמט הואprojects/PROJECT_ID/secrets/SECRET_ID. -
BUCKET_ID: שם הקטגוריה ב-Cloud Storage. -
REPOSITORY: מאגר Artifact Registry שמכיל את תמונת המחבר. -
REPOSITORY_LOCATION: המיקום Google Cloudשבו מתארח המאגר.
-
מקצים לחשבון השירות שמריץ את Workflows את התפקיד
roles/iam.serviceAccountUserבחשבון השירות שמריץ את משימות האצווה של Managed Service for Apache Spark. צריך להעניק את התפקיד הזה גם אם משתמשים באותו חשבון שירות גם ב-Workflows וגם ב-Managed Service for Apache Spark.gcloud iam service-accounts add-iam-policy-binding \ serviceAccount:SERVICE_ACCOUNT_ID \ --member='SERVICE_ACCOUNT_ID' \ --role='roles/iam.serviceAccountUser'אם משתמשים בחשבונות שירות שונים, הערך של הדגל
--memberהוא חשבון השירות שמריץ את משימות האצווה של Managed Service for Apache Spark.אם רוצים לתזמן את צינור עיבוד הנתונים, צריך להקצות לחשבון השירות את התפקיד הבא:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="SERVICE_ACCOUNT_ID" \ --role=roles/workflows.invoker
ייבוא מטא-נתונים
כדי לייבא מטא-נתונים, יוצרים ומריצים תהליך עבודה שמפעיל את צינור הקישוריות המנוהל. אפשר גם ליצור לוח זמנים להרצת צינור הנתונים.
המסוף
יוצרים את תהליך העבודה. עליך לספק את הפרטים הבאים:
- חשבון שירות: חשבון השירות שהגדרתם בקטע תפקידים נדרשים במסמך הזה.
הצפנה: בוחרים באפשרות Google-managed encryption key.
הגדרת תהליך העבודה: מספקים את קובץ ההגדרה הבא: