פתרון בעיות בתוסף BigQuery foreign data wrapper

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

למידע על השימוש ב-wrapper של נתונים זרים ב-BigQuery כדי לגשת לנתונים, ראו הגדרת גישה של AlloyDB ל-PostgreSQL לנתונים בזמן אמת ב-BigQuery.

בעיות בתוספים ובמטא-נתונים

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

התוסף bigquery_fdw מושבת

תיקון מומלץ

כדי לפתור את הבעיה, בצע את הצעדים הבאים:

  1. מוודאים שהדגל לניהול מסד הנתונים bigquery_fdw.enabled מוגדר לערך on. כדי לוודא שההגדרה נכונה, אפשר לבצע אחת מהפעולות הבאות:

    SHOW bigquery_fdw.enabled;
    
  2. אם הדגל bigquery_fdw.enabled הוא off, מגדירים את bigquery_fdw.enabled לערך on.

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

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

הגישה נדחתה: ההרשאה bigquery.tables.get נדחתה בטבלה

התוסף לא הצליח ליצור סשן קריאה ב-BigQuery, והופיעה השגיאה הבאה:

Error in non-idempotent operation: Access Denied: Table TABLE_NAME: Permission bigquery.tables.get denied on table TABLE_NAME (or it may not exist).

זה מצביע על כך שלחשבון השירות של אשכול AlloyDB אין הרשאות צפייה בנתונים של BigQuery.

תיקון מומלץ

כדי לפתור את הבעיה, צריך לתת לאשכול הראשי service_account_email את אחד מהתפקידים הבאים:

  • צפייה בנתוני BigQuery‏ (roles/bigquery.dataViewer)
  • תפקיד בהתאמה אישית שכולל את ההרשאות bigquery.tables.get ו-bigquery.tables.getData.

הגישה ל-bigquery.readsessions.create נדחתה

התוסף לא הצליח ליצור סשן קריאה ב-BigQuery, והופיעה השגיאה הבאה:

Error in non-idempotent operation: request failed: the user does not have 'bigquery.readsessions.create' permission for PROJECT_NAME.

המשמעות היא שלחשבון השירות של אשכול AlloyDB אין הרשאות משתמש לסשן קריאה ב-BigQuery.

תיקון מומלץ

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

  • משתמש בסשן קריאה ב-BigQuery‏ (roles/bigquery.readSessionUser)
  • תפקיד בהתאמה אישית שכולל את ההרשאות bigquery.readsessions.create ו-bigquery.readsessions.getData.

למשתמש אין את ההרשאה bigquery.jobs.create

התוסף לא הצליח ליצור סשן קריאה ב-BigQuery, והופיעה השגיאה הבאה:

Error in non-idempotent operation: Access Denied: Project PROJECT_NAME: User does not have bigquery.jobs.create permission in project PROJECT_NAME.

תיקון מומלץ

כדי לפתור את הבעיה, צריך להקצות לאשכול AlloyDB‏ service_account_email את אחד מהתפקידים הבאים:

  • שימוש במשימות BigQuery‏ (roles/bigquery.jobUser).
  • תפקיד בהתאמה אישית שכולל את ההרשאה bigquery.jobs.create.

בעיות בהגדרות ובסוגי הנתונים

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

השדות שנבחרו לא קיימים בסכימת הטבלה

הבעיות הבאות זוהו:

Error in non-idempotent operation: request failed: The following selected fields do not exist in the table schema: POSTGRES_COLUMN_NAME(S).
Error in non-idempotent operation: Unrecognized name: POSTGRES_COLUMN_NAME(S);

ההודעה הזו מצביעה על שמות עמודות שגויים בהגדרה של הטבלה החיצונית.

תיקון מומלץ

כדי לפתור את הבעיה, צריך לוודא ששם העמודה המדויק (תלוי אותיות רישיות) קיים בטבלה המתאימה ב-BigQuery שצוינה בהגדרה.

תחביר קלט לא חוקי למיפוי סוגים

הפעולה נכשלה עם השגיאה הבאה:

ERROR: invalid input syntax for type POSTGRES_COLUMN_DATA_TYPE: BIGQUERY_COLUMN_VALUE_RECEIVED.

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

תיקון מומלץ

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

סוג נתונים לא נתמך בעמודה ב-BigQuery

הבעיות הבאות זוהו:

ERROR: bigquery_fdw extension encountered internal error for column: POSTGRES_COLUMN_DATA_TYPE. Only avro logical type: AVRO_BIGQUERY_LOGICAL_TYPE is supported for avro type: AVRO_BIGQUERY_DATA_TYPE.
encountered internal error for column:POSTGRES_COLUMN_NAME. Data type: BIGQUERY_DATA_TYPE is not supported.

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

תיקון מומלץ

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

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

התוסף נכשל עם השגיאה הבאה:

ERROR: bigquery_fdw extension failed to create BigQuery read session with error: Error in non-idempotent operation: request failed: non-table entities cannot be read with the storage API.

השגיאה הזו מציינת שסוג הטבלה ב-BigQuery ששלחתם אליה שאילתה לא נתמך.

תיקון מומלץ

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