פתרון בעיות בהגדרות ההעברה

המסמך הזה נועד לעזור לכם לפתור את הבעיות הנפוצות ביותר שנתקלים בהן כשמגדירים העברה באמצעות שירות העברת הנתונים ל-BigQuery. המסמך הזה לא כולל את כל הודעות השגיאה או הבעיות האפשריות.

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

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

בדיקת השגיאות

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

אפשר גם להציג הודעות שגיאה של העברת נתונים ספציפית באמצעות Logs Explorer. מסנן Logs Explorer הבא מחזיר מידע על משימת הגדרת העברה ספציפית, יחד עם הודעות שגיאה:

resource.type="bigquery_dts_config"
labels.run_id="RUN_ID"
resource.labels.config_id="CONFIG_ID"

מחליפים את מה שכתוב בשדות הבאים:

  • RUN_ID: מספר המזהה של הפעלת משימה ספציפית
  • CONFIG_ID: מספר המזהה של עבודת הגדרת העברה

לפני שפונים לתמיכת הלקוחות, כדאי לתעד את כל המידע הרלוונטי מהיסטוריית ההרצה או מכלי Logs Explorer, כולל הודעות שגיאה.

אם אתם משתמשים בהעברות מבוססות-אירועים, יכול להיות שההגדרה של העברה מבוססת-אירועים לא תפעיל את ההרצה של ההעברה. הודעות שגיאה מוצגות בחלק העליון של הדף run history או בדף configuration.

בעיות כלליות

כשמאבחנים בעיות כלליות בהעברה, חשוב לבדוק את הדברים הבאים:

  • מוודאים שביצעתם את כל השלבים בקטע 'לפני שמתחילים' בדף התיעוד של סוג ההעברה.
  • המאפיינים של הגדרות ההעברה נכונים.
  • לחשבון המשתמש שמשמש ליצירת ההעברה יש גישה למשאבים הבסיסיים.

אם הגדרת ההעברה שלכם נכונה וההרשאות המתאימות ניתנו, כדאי לעיין בפתרונות הבאים לבעיות נפוצות.

שגיאה: An unexpected issue was encountered. If this issue persists, please contact customer support.
פתרון: השגיאה הזו בדרך כלל מצביעה על הפסקה זמנית בשירות או על בעיה ב-BigQuery. מחכים בערך שעתיים עד שהבעיה תיפתר. אם הבעיה נמשכת, אפשר לפנות לתמיכה.
שגיאה: INTERNAL: An internal error occurred and the request could not be completed. This is usually caused by a transient issue...
פתרון: השגיאה הזו בדרך כלל מעידה על בעיה פנימית זמנית. אם נתקלתם בשגיאה הזו, אתם יכולים לחכות ולראות אם היא תיפתר בהרצה המתוזמנת הבאה, או שאתם יכולים להפעיל ידנית מילוי חוזר לתאריכים המושפעים. אם הבעיה נמשכת, אפשר לפנות לתמיכה.
שגיאה: Quota Exceeded.

פתרון: ההעברות כפופות למכסות של BigQuery על משימות טעינה. אם אתם צריכים להגדיל את המכסה, אתם יכולים לפנות לנציג המכירות שלכם. Cloud de Confiance by S3NS מידע נוסף זמין במאמר מכסות ומגבלות.

אם אתם טוענים נתוני ייצוא של חיוב ב-Cloud ל-BigQuery, יכול להיות שתיתקלו בשגיאה Quota Exceeded. גם הטבלאות של נתוני החיוב ב-Cloud וגם טבלאות היעד ב-BigQuery שנוצרות על ידי שירות העברת הנתונים ל-BigQuery מחולקות למחיצות. אם בוחרים באפשרות overwrite (החלפה) כשמגדירים משימות כאלה של שירות העברת נתונים ל-BigQuery, יכולות להתקבל שגיאות לגבי מכסת השימוש, בהתאם לכמות הנתונים שמיוצאת. מידע על פתרון בעיות שקשורות למכסות זמין במאמר פתרון בעיות שקשורות למכסות ולמגבלות.

אם השגיאה נובעת מעבודות של שירות העברת נתונים ל-BigQuery לייצוא נתוני חיוב ב-Cloud, חשוב לדעת שטבלאות הייצוא של חיוב ב-Cloud מחולקות למחיצות, ולכן גם טבלת היעד שנוצרת על ידי שירות העברת נתונים ל-BigQuery מחולקת למחיצות. לכן, אם תבחרו באפשרות overwrite (החלפה) במהלך ההגדרה של עבודות העברת נתונים כאלה, תקבלו שגיאות של מכסת (DML) בהתאם לפרק הזמן שעבר מאז יצירת החשבונות לחיוב. מידע על פתרון בעיות שקשורות למכסות זמין במאמר פתרון בעיות שקשורות למכסות ולמגבלות.

שגיאה: The caller does not have permission.

פתרון: מוודאים שהחשבון שאליו מחוברים במסוף Cloud de Confiance הוא אותו חשבון שבחרתם בשירות העברת הנתונים ל-BigQuery כשיוצרים את ההעברה.

  • החשבון שמחובר למסוף Cloud de Confiance :

    פתרון בעיות שקשורות להרשאות

  • בחירת החשבון שבאמצעותו תתבצע הכניסה אל שירות העברת נתונים ל-BigQuery:

    פתרון בעיות שקשורות להרשאות

שגיאה: Access Denied: ... Permission bigquery.tables.get denied on table ...

פתרון: מוודאים שלסוכן השירות של שירות העברת הנתונים ל-BigQuery הוקצה התפקיד bigquery.dataEditor במערך הנתונים של היעד. ההרשאה הזו מוגדרת באופן אוטומטי כשיוצרים את ההעברה ומעדכנים אותה, אבל יכול להיות שמדיניות הגישה שונתה ידנית לאחר מכן. כדי להעניק מחדש את ההרשאה, אפשר לעיין במאמר בנושא הענקת גישה למערך נתונים.

שגיאה: region violates constraint constraints/gcp.resourceLocations on the resource projects/project_id

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

שגיאה: Please look into the errors[] collection for more details.

פתרון: השגיאה הזו יכולה להתרחש אם העברת נתונים נכשלת. כדי לקבל מידע נוסף על הסיבה לכשל בהעברת הנתונים, אפשר להשתמש ב-Cloud Logging כדי להציג את היומנים. אפשר למצוא יומנים של ריצה ספציפית באמצעות חיפוש בכלי ההעברה run_id.

שגיאה: Network Attachment with connected endpoints cannot be deleted.

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

שגיאה: Error while reading data, error message: CSV processing encountered too many errors, giving up.

פתרון: השגיאה הזו יכולה להתרחש אם יש חוסר התאמה בין ההגדרה של קובץ ה-CSV במקור הנתונים לבין ההגדרה של ה-CSV בהגדרת ההעברה. לדוגמה, השגיאה הזו יכולה להתרחש אם הערך של שורות כותרת לדילוג מוגדר כ-0, אבל קובץ ה-CSV של המקור מכיל שורת כותרת אחת או יותר. כדי לפתור את השגיאה הזו, צריך לוודא שהגדרות ה-CSV בהגדרות ההעברה נכונות ושהן תואמות להגדרות של קובץ ה-CSV של המקור.

שגיאה: Permission bigquery.tables.create denied.

תסמין: none Error code 7 : Access Denied : Dataset [PROJECT_ID]:[DATASET_ID] : Permission bigquery.tables.create denied on dataset [PROJECT_ID]:[DATASET_ID] (or it may not exist).

העברה של Cloud Storage נכשלת עם שגיאת דחיית גישה ליצירת טבלה, גם אם טבלת היעד כבר קיימת ולחשבון השירות יש תפקידים רגילים של עריכת נתונים.

הגורם: השגיאה הזו מתרחשת כשמריצים העברה ב-Cloud Storage שכוללת יותר מ-10,000 קבצים. להעברות של יותר מ-10,000 קבצים, השירות מפצל את הנתונים לטבלאות זמניות של הכנה לשילוב שנוצרות באופן דינמי. נדרשת הרשאה bigquery.tables.create גם אם הפרויקט רשום להעברות בכמות גדולה (או שיש לו אישור להגדלת המכסה). ההעברה עדיין תיכשל אם ההרשאה הזו חסרה.

פתרון: כדי להעביר יותר מ-10,000 קבצים, צריך לוודא שאתם עומדים בשתי הדרישות הבאות:

  1. בדיקת המכסה וההרשמה לתכונות: מוודאים שהפרויקט רשום להעברות של נפח גדול של נתונים ב-Cloud Storage (מעל 10,000 קבצים). אם אתם צריכים להעביר יותר מ-10,000 קבצים, פנו לתמיכה כדי לבקש הגדלה של המכסה של מספר הקבצים המקסימלי להעברה.

  2. נותנים את ההרשאות הנדרשות ב-IAM: נותנים לחשבון השירות או לזהות המשתמש שמריצים את ההעברה את ההרשאה bigquery.tables.create במערך הנתונים של היעד. ההרשאה הזו כלולה בתפקידים BigQuery Data Editor (roles/bigquery.dataEditor) ו-BigQuery Admin (roles/bigquery.admin). אם עדיין מופיעות שגיאות אחרי שמעניקים את ההרשאות הנדרשות, יכול להיות שצריך לפנות לתמיכה כדי לוודא שהסטטוס שלכם ברשימת ההיתרים תקין. : פתרון חלופי: אם אין לכם אפשרות להעניק את ההרשאות הנדרשות או להגדיל את המכסה, אתם צריכים לצמצם את מספר הקבצים בכל הפעלה של העברה ל-10,000 או פחות. למשל, באמצעות שימוש בתווים כלליים ספציפיים יותר של URI או באמצעות פיצול ההעברה לכמה הגדרות קטנות יותר.

בעיות בהרשאות ובאישור

בהמשך מפורטות כמה שגיאות נפוצות שקשורות להרשאות, שאתם עשויים להיתקל בהן כשאתם מעבירים נתונים ממקורות נתונים שונים:

שגיאה: BigQuery Data Transfer Service is not enabled for <project_id>
שגיאה: BigQuery Data Transfer Service has not been used in project <project_id> before or it is disabled ...

פתרון: כדי לוודא שהתפקיד של סוכן השירות הוענק, מבצעים את השלבים הבאים:

  1. במסוף Cloud de Confiance , נכנסים לדף IAM & Admin.

    כניסה לדף IAM & Admin

  2. מסמנים את תיבת הסימון Include S3NS-provided role grants.

  3. מוודאים שחשבון השירות עם השם service-<project_number>@gcp-sa-bigquerydatatransfer.s3ns-system.iam.gserviceaccount.com מוצג או שניתנה לו הרשאת סוכן של שירות העברת הנתונים ל-BigQuery.

    בודקים אם לחשבון השירות יש תפקיד של סוכן שירות.

אם חשבון השירות לא מוצג, או שלא הוקצה לו תפקיד סוכן שירות של שירות העברת הנתונים ל-BigQuery, צריך להקצות את התפקיד המוגדר מראש ב Cloud de Confiance מסוף Cloud de Confiance או על ידי הפעלת הפקודה הבאה ב-CLI של Google Cloud:

gcloud projects add-iam-policy-binding PROJECT_NUMBER \
--member serviceAccount:service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.s3ns-system.iam.gserviceaccount.com \
--role roles/bigquerydatatransfer.serviceAgent

מחליפים את הערך PROJECT_NUMBER במספר הפרויקט שמשויך לחשבון השירות הזה.

שגיאה: There was an error loading this table. Check that the table exists and that you have the correct permissions.

פתרון:

  1. במסוף Cloud de Confiance , עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. לוחצים על מערך הנתונים של היעד שבו נעשה שימוש בהעברה.

  3. לוחצים על התפריט שיתוף ואז על הרשאות.

  4. מרחיבים את התפקיד BigQuery Data Editor.

  5. מוודאים שסוכן השירות של שירות העברת נתונים ל-BigQuery נוסף לתפקיד הזה. אם לא, צריך להעניק את התפקיד BigQuery Data Editor ‏ (roles/bigquery.dataEditor) לסוכן השירות של שירות העברת נתונים ל-BigQuery.

מוודאים שהתפקיד BigQuery Data Editor (עריכת נתונים ב-BigQuery) נוסף.

שגיאה: A permission denied error was encountered: PERMISSION_DENIED. Please ensure that the user account setting up the transfer config has the necessary permissions, and that the configuration settings are correct

פתרון:

  1. נכנסים לדף Data Transfers במסוף Cloud de Confiance .

    מעבר אל 'העברות נתונים'

  2. לוחצים על ההעברה שנכשלה ובוחרים בכרטיסייה הגדרות.

  3. מוודאים שלבעלים של ההעברה שמופיע בשדה משתמש יש את כל ההרשאות הנדרשות למקור הנתונים.

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

שגיאה: Authentication failure: User Id not found. Error code: INVALID_USERID

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

שגיאה: The user does not have permission

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

שגיאה: HttpError 403 when requesting returned "The caller does not have permission"

googleapiclient.errors.HttpError: <HttpError 403 when requesting returned "The caller does not have permission". Details: "The caller does not have permission">

השגיאה הזו עשויה להופיע כשמנסים להגדיר שאילתה מתוזמנת באמצעות חשבון שירות.

פתרון: מוודאים שלחשבון השירות יש את כל ההרשאות הנדרשות לתזמון או לשינוי של שאילתה מתוזמנת, ומוודאים שלמשתמש שמגדיר את השאילתה המתוזמנת יש גישה לחשבון השירות.

אם כל ההרשאות הנכונות הוקצו אבל עדיין מופיעה השגיאה, צריך לבדוק אם המדיניות השבתת השימוש בחשבונות שירות בפרויקטים שונים נאכפת בפרויקט כברירת מחדל. כדי לבדוק אם המדיניות קיימת במסוף Cloud de Confiance , עוברים אל IAM & Admin> Organization Policies ומחפשים את המדיניות.

בודקים אם מדיניות השימוש בחשבון שירות חוצה פרויקטים נאכפת בחשבון שירות.

אם המדיניות השבתת השימוש בחשבון שירות בפרויקטים שונים נאכפת, אפשר להשבית את המדיניות כך:

  1. כדי לזהות את חשבונות השירות שמשויכים לפרויקט באמצעות המסוף, עוברים אל IAM & Admin > Service Accounts. Cloud de Confiance בתצוגה הזו מופיעים כל חשבונות השירות של הפרויקט הנוכחי.
  2. משביתים את המדיניות בפרויקט שבו נמצאים חשבונות השירות באמצעות הפקודה הבאה. כדי להשבית את המדיניות הזו, המשתמש צריך להיות אדמין של מדיניות הארגון. רק אדמין הארגון יכול להעניק למשתמש את התפקיד הזה.
gcloud resource-manager org-policies disable-enforce iam.disableCrossProjectServiceAccountUsage --project=[PROJECT-ID]

בעיות בהגדרת העברה מבוססת-אירועים

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

שגיאה: Data Transfer Service is not authorized to pull message from the provided Pub/Sub subscription.

פתרון: מוודאים שלסוכן השירות של שירות העברת הנתונים ל-BigQuery הוקצה התפקיד pubsub.subscriber:

  1. נכנסים לדף Pub/Sub במסוף Cloud de Confiance .

    מעבר אל Pub/Sub

  2. בוחרים את מינוי Pub/Sub שבו השתמשתם בהעברה מבוססת-אירועים.

  3. אם חלונית המידע מוסתרת, לוחצים על Show info panel בפינה השמאלית העליונה.

  4. בכרטיסייה הרשאות, מוודאים שלסוכן השירות של שירות העברת הנתונים ל-BigQuery הוקצה התפקיד pubsub.subscriber.

בודקים אם לסוכן השירות יש הרשאת pubsub.subscriber במינוי.

אם לסוכן השירות לא הוקצה התפקיד pubsub.subscriber. לוחצים על Add principal כדי לתת את התפקיד pubsub.subscriber לישות המורשית service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.s3ns-system.iam.gserviceaccount.com

שגיאה: Cloud Pub/Sub API has not been used in project PROJECT_NUMBER before or it is disabled.

פתרון: מוודאים ש-Cloud Pub/Sub API מופעל בפרויקט:

  1. במסוף Cloud de Confiance , נכנסים לדף APIs & Services.

    כניסה אל APIs & Services

  2. לוחצים על Enable APIs and services.

  3. מחפשים את Cloud Pub/Sub API, בוחרים את התוצאה הראשונה ולוחצים על הפעלה.

שגיאה: Data Transfer Service does not have required permission to use project quota of project PROJECT_NUMBER to access Pub/Sub.

פתרון: מוודאים שלסוכן השירות של שירות העברת הנתונים ל-BigQuery הוקצה התפקיד serviceusage.serviceUsageConsumer:

  1. במסוף Cloud de Confiance , נכנסים לדף IAM & Admin.

    כניסה לדף IAM & Admin

  2. מסמנים את תיבת הסימון Include S3NS-provided role grants.

  3. מוודאים שחשבון השירות עם השם service-<project_number>@gcp-sa-bigquerydatatransfer.s3ns-system.iam.gserviceaccount.com מוצג ושהוקצה לו התפקיד Service Usage Consumer.

    בודקים אם לחשבון השירות יש את התפקיד serviceusage.serviceUsageConsumer.

בעיה: כשמשתמשים בהעברה מבוססת-אירוע ב-Cloud Storage, לא מופעלת העברה אחרי העלאה או עדכון של קבצים בקטגוריה של Cloud Storage.

העברות לא מופעלות מיד אחרי קבלת אירוע. יכול להיות שיחלפו כמה דקות עד שהעברת הנתונים תתחיל. כדי לבדוק את הסטטוס של ההרצה הבאה של ההעברה, אפשר לבדוק את השדה Target date for next run בrun history. בשדה הזה מוצג הזמן המתוכנן להפעלה הבאה, או שמוצג waiting for events to schedule next run אם לא התקבלו אירועים. אם העליתם או עדכנתם קבצים בקטגוריה שלכם ב-Cloud Storage, אבל תאריך היעד להפעלה הבאה לא עודכן ולא מופעלות הפעלות במשך 10-20 דקות, כדאי לנסות את הפתרון הבא.

פתרון: מוודאים שהמינוי ל-Pub/Sub שצוין בהגדרות ההעברה יכול לקבל הודעות שפורסמו מאירועים ב-Cloud Storage:

  1. נכנסים לדף Pub/Sub במסוף Cloud de Confiance .

    מעבר אל Pub/Sub

  2. בוחרים את מינוי Pub/Sub שבו השתמשתם בהעברה מבוססת-אירועים.

  3. בכרטיסייה מדדים, בודקים את התרשים 'הגיל של ההודעה הישנה ביותר שלא אושרה' ורואים אם יש הודעות.

בדיקה אם נשלחות הודעות

אם לא מתפרסמות הודעות, צריך לבדוק אם התראות Pub/Sub מוגדרות בצורה נכונה ל-Cloud Storage. אפשר להשתמש בפקודה הבאה של Google Cloud CLI כדי לבדוק את הגדרות ההתראות שמשויכות לקטגוריה:

gcloud storage buckets notifications list gs://BUCKET_NAME

מחליפים את BUCKET_NAME בשם הקטגוריה שבה משתמשים להתראות. מידע על הגדרת התראת Pub/Sub ל-Cloud Storage זמין במאמר הגדרת התראת Pub/Sub ל-Cloud Storage.

אם יש הודעות, בודקים אם אותו מינוי Pub/Sub נמצא בשימוש בהגדרות אחרות של העברה מבוססת-אירועים. אי אפשר להשתמש באותו מינוי Pub/Sub בכמה הגדרות של העברה מבוססת-אירועים. מידע נוסף על העברות מבוססות-אירועים זמין במאמר העברות מבוססות-אירועים.

בעיות שקשורות למכסות

שגיאה: Quota exceeded: Your project exceeded quota for imports per project.
פתרון: ודאו שלא תזמנתם יותר מדי העברות בפרויקט. מידע על חישוב מספר העבודות של טעינת נתונים שהופעלו על ידי העברה זמין במאמר מכסות ומגבלות.