במסמך הזה מפורטות הוראות למיגרציה בשלב אחד מגרסת טרום-השקה (Preview) של מילון המונחים הארגוני, שתמכה במטא-נתונים של Data Catalog, לגרסה הזמינה לכלל המשתמשים (GA) של מילון המונחים הארגוני ב-Knowledge Catalog (לשעבר Dataplex Universal Catalog). המעבר לגרסה הזמינה לכולם מאפשר לכם להשתמש ביכולות המשופרות ובשילוב העמוק יותר עם מטא-נתונים של Knowledge Catalog, וליהנות מיציבות משופרת, מתכונות חדשות ומתמיכה מלאה בסביבת הייצור. התהליך הזה מעדכן אוטומטית את מילוני המונחים כדי לתמוך במטא נתונים של Knowledge Catalog.
לפני שמתחילים
מתקינים את gcloud או חבילות Python. מאמתים את חשבון המשתמש ואת Application Default Credentials (ADC) שבהם נעשה שימוש בספריות Python. מריצים את הפקודות הבאות ופועלים לפי ההנחיות בדפדפן:
gcloud init gcloud auth login gcloud auth application-default loginמפעילים את ממשקי ה-API הבאים:
יוצרים קטגוריה אחת או יותר של Cloud Storage בכל אחד מהפרויקטים. הקטגוריות ישמשו כמיקום זמני לקובצי הייבוא. ככל שתספקו יותר קטגוריות, כך הייבוא יהיה מהיר יותר. מקצים לחשבון השירות שמריץ את ההעברה את התפקיד 'אדמין אחסון' ב-IAM:
service-MIGRATION_PROJECT_ID@gcp-sa-dataplex.iam.gserviceaccount.com
מחליפים את
MIGRATION_PROJECT_IDבפרויקט שממנו מעבירים את המילונים.מגדירים את המאגר:
משכפלים את המאגר:
git clone https://github.com/GoogleCloudPlatform/dataplex-labs.git cd dataplex-labs/dataplex-quickstart-labs/00-resources/scripts/python/business-glossary-importמתקינים את החבילות הנדרשות:
pip3 install -r requirements.txt cd migration
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות להעברת מילונים מ-Data Catalog אל Knowledge Catalog, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
- בעלי מילון המונחים של Data Catalog (
roles/datacatalog.glossaryOwner) בפרויקט - אדמין Dataplex (
roles/dataplex.admin) בפרויקט
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקידים המוגדרים מראש האלה כוללים את ההרשאות שנדרשות להעברת מילונים מ-Data Catalog ל-Knowledge Catalog. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי להעביר מילונים מ-Data Catalog ל-Knowledge Catalog, נדרשות ההרשאות הבאות:
-
datacatalog.glossaries.getבפרויקט שממנו אתם מעבירים את המילונים -
datacatalog.glossaries.listבפרויקט שממנו אתם מעבירים את המילונים -
dataplex.glossaries.createבפרויקט שבו נוצרים מילוני מונחים ב-Knowledge Catalog -
dataplex.glossaries.updateבפרויקט שבו יתעדכנו מילוני המונחים ב-Knowledge Catalog
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
למידע נוסף על ניהול זהויות והרשאות גישה (IAM) ב-Knowledge Catalog, אפשר לעיין במאמר ניהול גישה באמצעות IAM.
הפעלת סקריפט ההעברה
python3 run.py --project=PROJECT_ID --buckets=BUCKET1,BUCKET2
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט של הפרויקט שרוצים להעביר. הפרויקט הזה משמש גם לחיוב ולשיוך מכסות לקריאות ה-API שנוצרות על ידי הסקריפט.
BUCKET1ו-BUCKET2: מזהי הקטגוריות של Cloud Storage שישמשו לייבוא.אפשר לציין דלי אחד או יותר. בארגומנטים של ה-bucket, צריך לספק רשימה מופרדת בפסיקים של שמות ה-bucket ללא רווחים (לדוגמה,
--buckets=bucket-one,bucket-two). לא נדרש מיפוי של אחד לאחד בין ה-bucket לבין המילונים. הסקריפט מריץ את עבודות הייבוא במקביל, וכך מאיץ את המיגרציה.
אם בעיות הרשאה מונעות מהסקריפט לגלות באופן אוטומטי את המזהים של הארגון, אפשר להשתמש בדגל --orgIds כדי לציין את הארגונים שהסקריפט יכול להשתמש בהם כדי לחפש נכסי נתונים שמקושרים למונחים במילון המונחים.
מילוני מונחים בהעברה
כדי להעביר רק מילונים ספציפיים, צריך להגדיר את ההיקף שלהם על ידי ציון כתובות ה-URL שלהם.
python3 run.py --project=PROJECT_ID --buckets=BUCKET1,BUCKET2 --glossaries="GLOSSARY_URL1","GLOSSARY_URL2"
מחליפים את GLOSSARY_URL1 (ואת GLOSSARY_URL2)
בכתובות ה-URL המלאות של המילונים שאתם מעבירים, כפי שהן מופיעות במסוףGoogle Cloud . אם מציינים מילונים באמצעות הדגל הזה, פרויקט המקור נקבע מכתובות ה-URL, והדגל --project משמש רק לחיוב.
לדוגמה: https://console.cloud.google.com/datacatalog/glossaries/projects/my-project/locations/us-central1/entryGroups/my-entry-group/glossaries/my-glossary
במהלך ההעברה, מספר משימות הייבוא יכול להיות קטן ממספר המילונים המונחים שיוצאו. זה קורה כשיוצרים ישירות מילוני מונחים ריקים שלא נדרשת עבורם משימת ייבוא ברקע.
המשך ההעברה במקרה של כשלים במשימת הייבוא
אם הקבצים נמצאים אחרי ההעברה, סימן שחלק מעבודות הייבוא נכשלו. כדי להמשיך את ההעברה, מריצים את הפקודה הבאה:
python3 run.py --project=PROJECT_ID --buckets=BUCKET1,BUCKET2 --resume-import
אם נתקלים בכשלים, מריצים שוב את הפקודה resume. הסקריפט מעבד רק קבצים שלא יובאו ונמחקו בהצלחה.
הסקריפט מבצע בדיקות של תלות בקישורי כניסה ובקישורים בין מונחים במילון. קובץ של קישורי ערכים מיובא רק אם המילון הראשי שלו יובא בהצלחה. באופן דומה, קישור בין מונחים מיובא רק אם כל המונחים שאליהם יש הפניה יובאו בהצלחה.
פתרון בעיות
בקטע הזה מפורטים פתרונות לשגיאות נפוצות.
הגישה נדחתה / שגיאה 403: מוודאים שלמשתמש או לחשבון השירות יש את התפקיד Dataplex Editor בפרויקט היעד ואת התפקיד Dataplex Viewer בפרויקט המקור.
ModuleNotFoundError: מוודאים שהפעלתם את הסביבה הווירטואלית של Python והתקנתם את החבילות הנדרשות באמצעות
pip3 install -r requirements.txt.TimeoutError / ssl.SSLError: שגיאות ברמת הרשת האלה עשויות להיגרם על ידי חומות אש, שרתי proxy או חיבורים איטיים. הסקריפט מוגבל בזמן קצוב לתפוגה של 5 דקות – אם הבעיות נמשכות, יכול להיות שיהיה צורך לבדוק את הגדרות הרשת המקומית.
Method not found (Cannot fetch entries): השגיאה הזו מציינת בדרך כלל שלפרויקט המשתמש אין הרשאה לקרוא ל-API, ולכן לא ניתן לאחזר את הרשומות הנדרשות.