במסמך הזה מוסבר איך לבצע העברה בשלב אחד מגרסת הטרום-השקה של מילון המונחים הארגוני, שתמכה במטא-נתונים של Data Catalog, לגרסה הזמינה לכלל המשתמשים של מילון המונחים הארגוני ב-Dataplex Universal Catalog. המעבר לגרסה הזמינה לכולם מאפשר לכם להשתמש ביכולות המשופרות ובשילוב המעמיק יותר עם מטא-נתונים של Dataplex Universal Catalog, וליהנות מיציבות משופרת, מתכונות חדשות ומתמיכה מלאה בסביבת הייצור. התהליך הזה מעדכן אוטומטית את המילונים כדי לתמוך במטא-נתונים של Dataplex Universal 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 אל Dataplex Universal Catalog, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
-
בעלי מילון המונחים של Data Catalog (
roles/datacatalog.glossaryOwner) בפרויקט -
אדמין Dataplex (
roles/dataplex.admin) בפרויקט
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקידים המוגדרים מראש האלה כוללים את ההרשאות שנדרשות להעברת מילונים מ-Data Catalog אל Dataplex Universal Catalog. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי להעביר מילונים מ-Data Catalog אל Dataplex Universal Catalog, נדרשות ההרשאות הבאות:
-
בפרויקט שממנו מעבירים את המילוניםdatacatalog.glossaries.get -
בפרויקט שממנו מעבירים את המילוניםdatacatalog.glossaries.list -
בפרויקט שבו נוצרים מילוני מונחים ב-Dataplex Universal Catalogdataplex.glossaries.create -
בפרויקט שבו יתעדכנו מילוני המונחים ב-Dataplex Universal Catalogdataplex.glossaries.update
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
למידע נוסף על ניהול זהויות והרשאות גישה (IAM) ב-Dataplex Universal Catalog, אפשר לעיין במאמר ניהול גישה באמצעות IAM.
הפעלת סקריפט ההעברה
python3 run.py --project=MIGRATION_PROJECT_ID --user-project=USER_PROJECT_ID --buckets=BUCKET1,BUCKET2
מחליפים את מה שכתוב בשדות הבאים:
USER_PROJECT_ID: מזהה הפרויקט של הפרויקט שרוצים להעביר.
MIGRATION_PROJECT_IDמתייחס לפרויקט המקור שמכיל את המילונים של Data Catalog שרוצים לייצא. הפרויקטUSER_PROJECT_IDמשמש לחיוב ולשיוך מכסות לקריאות ה-API שנוצרות על ידי הסקריפט.
BUCKET1ו-BUCKET2: מזהי הקטגוריות של Cloud Storage שישמשו לייבוא.אפשר לציין דלי אחד או יותר. בארגומנטים של ה-bucket, צריך לספק רשימה מופרדת בפסיקים של שמות ה-bucket ללא רווחים (לדוגמה,
--buckets=bucket-one,bucket-two). לא נדרש מיפוי אחד לאחד בין ה-buckets לבין המילונים. הסקריפט מריץ את עבודות הייבוא במקביל, וכך מאיץ את ההעברה.
אם בעיות הרשאה מונעות מהסקריפט לגלות באופן אוטומטי את מזהי הארגון, אפשר להשתמש בדגל --orgIds כדי לציין את הארגונים שהסקריפט יכול להשתמש בהם כדי לחפש נכסי נתונים שמקושרים למונחים במילון המונחים.
הגדרת מילונים בהעברה
כדי להעביר רק מילונים ספציפיים, צריך להגדיר את ההיקף שלהם על ידי ציון כתובות ה-URL שלהם.
python3 run.py --project=MIGRATION_PROJECT_ID --user-project=USER_PROJECT_ID --buckets=BUCKET1,BUCKET2 --glossaries="GLOSSARY_URL1","GLOSSARY_URL2"
מחליפים את GLOSSARY_URL1 (ואת GLOSSARY_URL2) בכתובות ה-URL של מילוני המונחים שרוצים להעביר. אפשר לציין כתובת URL אחת או יותר של מילון מונחים.
כשמריצים את ההעברה, מספר עבודות הייבוא יכול להיות קטן ממספר המילונים המונחיים המיוצאים. זה קורה כשיוצרים ישירות מילוני מונחים ריקים שלא נדרש עבורם ייבוא ברקע.
המשך ההעברה במקרה של כשלים במשימת הייבוא
אם הקבצים נמצאים אחרי ההעברה, סימן שחלק מעבודות הייבוא נכשלו. כדי להמשיך את ההעברה, מריצים את הפקודה הבאה:
python3 run.py --project=MIGRATION_PROJECT_ID --user-project=USER_PROJECT_ID --buckets=BUCKET1,BUCKET2 --resume-import
אם נתקלים בכשלים, מריצים שוב את הפקודה resume. הסקריפט מעבד רק קבצים שלא יובאו ונמחקו בהצלחה.
הסקריפט מבצע בדיקות של תלות בקישורי כניסה ובקישורים בין מונחים במילון. קובץ של קישורי רשומות מיובא רק אם המילון הראשי שלו יובא בהצלחה. באופן דומה, קישור בין מונחים מיובא רק אם כל המונחים שאליהם יש הפניה יובאו בהצלחה.
פתרון בעיות
בקטע הזה מפורטים פתרונות לשגיאות נפוצות.
ההרשאה נדחתה / שגיאה 403: צריך לוודא שלמשתמש או לחשבון השירות יש את התפקיד 'עריכת Dataplex Universal Catalog' בפרויקט היעד ואת התפקיד 'צפייה בקטלוג הנתונים' בפרויקט המקור.
ModuleNotFoundError: מוודאים שהפעלתם את הסביבה הווירטואלית של Python והתקנתם את החבילות הנדרשות באמצעות
pip3 install -r requirements.txt.TimeoutError / ssl.SSLError: שגיאות ברמת הרשת האלה עשויות להיגרם על ידי חומות אש, שרתי proxy או חיבורים איטיים. לסקריפט יש זמן קצוב לתפוגה של 5 דקות – אם הבעיות נמשכות, ייתכן שיהיה צורך לבדוק את הגדרות הרשת המקומית.
Method not found (Cannot fetch entries): השגיאה הזו מציינת בדרך כלל שהפרויקט של המשתמש לא נמצא ברשימת ההיתרים לקריאה ל-API, ולכן לא ניתן לאחזר את הרשומות הנדרשות.