פתרון בעיות שקשורות למקורות נתונים

בעזרת שושלת נתונים ב-Knowledge Catalog (לשעבר Dataplex Universal Catalog) אתם יכולים לעקוב אחרי תנועת הנתונים, להבין את מקורות הנתונים ולנפות באגים בפייפליינים. אם תרשימי שושלת נתונים, המטא-נתונים של התהליך, פרטי הטבלה או הקישורים ברמת העמודה לא מופיעים כמו שצריך, או אם אתם רואים חיובים לא צפויים על עיבוד ב-Knowledge Catalog Premium, אתם יכולים לבדוק את ההרשאות בפרויקט, את הגדרות ה-API ואת סוגי העבודה הנתמכים.

אם אתם צריכים עזרה בפתרון בעיה שלא מופיעה במאמר הזה, תוכלו להיעזר ב-Cloud Customer Care.

סוגי פרויקטים

נכסי הנתונים יכולים להיות בפרויקטים שונים. ריכזנו כאן סיכום של פרויקטים אפשריים ושמות הנכסים שלהם.

פרויקט אחסון ב-BigQuery

בפרויקט הזה מאוחסנים נכסי הנתונים שלכם ב-BigQuery. אפשר למצוא אותו בפרטי הנכס כחלק מ-Table ID, לפני הנקודה הראשונה.

בממשק המשתמש של BigQuery, שם פרויקט האחסון מופיע בשדה Table ID, לפני הנקודה הראשונה בשם המלא של הטבלה.
איור 1. השם של פרויקט האחסון ב-BigQuery.

פרויקט Compute

בפרויקט הזה מאוחסנים המטא-נתונים של שושלת הנתונים. ב-BigQuery, זה המקום שבו מריצים משימה. אם אתם מריצים משימה באמצעות מסוףGoogle Cloud , אתם יכולים למצוא את שם הפרויקט של Compute Engine בבורר הפרויקטים:

בממשק המשתמש של BigQuery, בדף שבו מריצים שאילתות SQL, מופיע פרויקט מחשוב שנקרא docs-compute.
איור 2. השם של פרויקט המחשוב שבו מופעלות משימות BigQuery.

כששולחים בקשות ל-BigQuery API, צריך לציין את הפרויקט לחיוב בכתובת ה-URL, לדוגמה:

POST /bigquery/v2/projects/docs-compute/jobs HTTP/1.1
Host: bigquery.googleapis.com
User-Agent: Go-http-client/1.1
Authorization: <REDACTED 1031 BYTES>
Accept-Encoding: gzip
{
  "configuration": {
    "query": {
      "useLegacySql": false,
      "query": "CREATE OR REPLACE TABLE `docs-target.dataset.target-002` AS SELECT * FROM `docs-source.dataset.source-002`;"
    }
  },
  "jobReference": {
    "projectId": "docs-compute",
    "jobId": "docs-compute-job-id",
    "location": "us",
  }
}

פרויקט פעיל

זה הפרויקט שבו אתם צופים בשושלת הנתונים. הפרויקט הפעיל מוצג בבורר הפרויקטים במסוףGoogle Cloud . אם אתם משתמשים ב-API, הפרויקט הפעיל הוא הפרויקט שממנו אתם מבצעים קריאות ל-API.

בממשק המשתמש של BigQuery מוצגת שושלת הנתונים של מערך נתונים בשם source-001, שנמצא בפרויקט בשם docs-source.
איור 3. הפרויקט הפעיל במסוף Google Cloud .

שושלת הנתונים ב-BigQuery לא מוצגת

הבעיה הבאה מתרחשת אחרי שמריצים משימה ב-BigQuery. במקרה כזה, הבעיה יכולה להיגרם משלוש סיבות:

אם מופיעה ההודעה "Fetching lineage failed due to missing permissions", סימן שחסרות לכם הרשאות בפרויקט הפעיל. אחרת, חסרות לכם הרשאות בפרויקט המחשוב.

תרשים שושלת יוחסין ריק.
איור 4. דוגמה למצב שבו שושלת היוחסין לא מוצגת בממשק המשתמש של BigQuery.

כדי לפתור את הבעיה, בודקים אם Data Lineage API מופעל בפרויקט המחשוב. אחרי שמפעילים את ה-API, צריך להריץ משימה כדי לראות את שושלת הנתונים. בהתאם לנפח ולמורכבות של הנתונים שעוברים עיבוד, יכול להיות ששושלת היוחסין של הנתונים תוצג תוך 30 דקות עד 24 שעות.

בשלב הבא, בודקים אם Data Lineage API מופעל בפרויקט הפעיל.

כשה-Data Lineage API מופעל, מקצים את התפקיד Data Lineage Viewer (roles/datalineage.viewer) גם בפרויקט הפעיל וגם בפרויקט החישוב.

המטא-נתונים של תהליך BigQuery לא מוצגים

הבעיה הבאה מתרחשת כשפותחים את חלונית פרטי הטבלה, שלא מציגה את כל הפרטים, כמו הצהרת ה-SQL או המאפיין Process type. זה קורה למרות ששושלת הנתונים מוצגת כמו שצריך.

זה יכול לקרות כשאין לכם הרשאות לראות מטא-נתונים בפרויקט המחשוב.

דוגמה:

אם לוחצים על פרטי התהליך של BigQuery, ההודעה הבאה מופיעה במסוף Google Cloud :

You don't have permission to view BigQuery process metadata in project X.
בממשק המשתמש של BigQuery, בכרטיסייה Lineage, מופיעה הודעת שגיאה בחלונית פרטים.
איור 5. דוגמה לפרטי תהליך ב-BigQuery שלא מוצגים בממשק המשתמש של BigQuery.

כדי לפתור את הבעיה, צריך להעניק למשתמש את ההרשאה bigquery.jobs.get (לדוגמה, ההרשאה שכלולה בתפקיד BigQuery Resource Viewer) בפרויקט המחשוב.

פרטי הטבלה ב-BigQuery לא מוצגים

הבעיה הבאה מתרחשת כשפותחים את חלונית הפרטים של הטבלה, שבה מוצג רק המאפיין Fully qualified name. זה קורה למרות ששושלת הנתונים מוצגת כמו שצריך. זה יכול לקרות כשאין לכם את כל ההרשאות הנדרשות בפרויקטי האחסון של הטבלה.

דוגמה:

במקרה כזה, כשלוחצים על פרטי הצומת של BigQuery, מופיעה ההודעה Entry with this fully qualified name is not available in Knowledge Catalog or you do not have permissions to view it.

פרטי הטבלה ב-BigQuery לא מוצגים.
איור 6. דוגמה לפרטי טבלה ב-BigQuery שלא מוצגים בממשק המשתמש של BigQuery.

כדי לפתור את הבעיה, צריך לתת את ההרשאה bigquery.tables.get (לדוגמה, כלולה בתפקיד BigQuery Data Viewer) בפרויקט האחסון.

הודעת השגיאה "There are no columns to select" (אין עמודות לבחירה) מופיעה בשושלת היוחסין ברמת העמודה

הבעיה הבאה מתרחשת כשמציגים נכס במסוף Google Cloud , והתרשים של שושלת היוחסין ברמת הטבלה מוצג כמו שצריך, אבל כשבוחרים בשושלת היוחסין ברמת העמודה מופיעה ההודעה "There are no columns to select" או שלא מופיעים קישורים בין עמודות.

הבעיה הזו יכולה לקרות בתרחישים הבאים:

  • אירועי OpenLineage בהתאמה אישית: אירועים שנקלטו דרך נקודת הקצה ProcessOpenLineageRunEvent של Data Lineage API תומכים רק בשושלת נתונים ברמת הטבלה. היבטים מותאמים אישית ברמת העמודה לא מוצגים במסוףGoogle Cloud .
  • מערכות או מקורות נתונים שלא נתמכים: תרשימי שושלת יוחסין ברמת העמודה נוצרים רק בשביל טרנספורמציות של BigQuery SQL ומשימות של Managed Service for Apache Spark. מערכות משולבות אחרות (כמו Cloud Data Fusion ו-Vertex AI) תומכות רק במעקב שושלת ברמת הטבלה.
  • סוגי עבודה לא נתמכים של BigQuery: לא נאסף שושלת נתונים ברמת העמודה בשביל משימות טעינה, משימות העתקה או שגרות ב-BigQuery.
  • טבלאות חיצוניות: לא נאסף מעקב קודם ברמת העמודה בשביל טבלאות חיצוניות.
  • נכסים לא מובנים או נכסים ברמת האחסון: נכסים שמבוססים על קבצים (כמו קבצים או קטגוריות גולמיים של Cloud Storage) הם בדרך כלל לא מובנים, אבל אפשר להציג להם עמודות בשושלת היוחסין של הנתונים אם שושלת היוחסין ברמת העמודה מדווחת למערכת. אם לא מדווח על שושלת היוחסין ברמת העמודה של נכס הקובץ, אי אפשר לבחור עמודות.
  • סוגים מורכבים של רשומות בתצוגת עץ: מעקב שושלת נתונים ברמת העמודה עוקב רק אחרי עמודות ברמה העליונה. אי אפשר לבחור בנפרד שדות שמוטמעים בתוך סוגי נתונים מורכבים (כמו STRUCT או JSON).
  • עמודות פסאודו של חלוקה למחיצות: עמודות של חלוקה למחיצות של המערכת (כמו _PARTITIONDATE ו-_PARTITIONTIME) לא מזוהות בתרשימי שושלת יוחסין ברמת העמודה.
  • חריגה ממגבלות הקישורים: אם משימת טרנספורמציה יוצרת יותר מ-1,500 קישורים ברמת העמודה, Knowledge Catalog מדלג על איסוף שושלת היוחסין ברמת העמודה ושומר רק את שושלת היוחסין ברמת הטבלה.
  • נכסים בארגונים שונים: אם נתיב שושלת היוחסין עובר בנכס שנמצא בארגון אחר, אתם לא יכולים לגשת לסכימה ולפרטי העמודות אם אתם לא שייכים לאותו ארגון כמו הנכס.

חיובים לא צפויים על עיבוד פרימיום של Knowledge Catalog

השבתתם את Dataplex API‏ (dataplex.googleapis.com) כדי להפסיק את החיובים, אבל אתם ממשיכים לראות חיובים יומיים על המק"ט "Knowledge Catalog Premium Processing".

הבעיה הזו יכולה לקרות אם Data Lineage API‏ (datalineage.googleapis.com) נשאר מופעל. החיוב על Data Lineage API מתבצע במסגרת המק"ט Knowledge Catalog Premium Processing, אבל הוא מנוהל כ-API נפרד במסוף Google Cloud . השבתת Dataplex API לא משביתה את Data Lineage API ולא מפסיקה את החיובים שלו.

כדי לזהות אם החיובים נובעים משושלת נתונים, בודקים אם בדוח החיוב ב-Cloud מופיעה התווית goog-dataplex-workload-type עם הערך LINEAGE.

כדי להפסיק את החיובים, צריך להשבית את שושלת הנתונים על ידי השבתת Data Lineage API בפרויקטים.