אם שאילתות שמשתמשות בתוסף bigquery_fdw נכשלות, היעזרו בהודעות השגיאה ובתיקונים המומלצים הבאים כדי לשחזר את הגישה בזמן אמת לנתוני BigQuery מ-AlloyDB ל-PostgreSQL. הסיבות הנפוצות כוללות תוסף מושבת, הרשאות BigQuery חסרות לחשבון השירות של האשכול והגדרות של טבלאות זרות שלא תואמות לשמות העמודות או לסוגי הנתונים ב-BigQuery.
למידע על השימוש ב-wrapper של נתונים זרים ב-BigQuery כדי לגשת לנתונים, ראו הגדרת גישה של AlloyDB ל-PostgreSQL לנתונים בזמן אמת ב-BigQuery.
בעיות בתוספים ובמטא-נתונים
בקטע הזה מפורטות שגיאות בתוספים ובמטא-נתונים שעשויות לקרות, והצעות לתיקון כל אחת מהן.
התוסף bigquery_fdw מושבת
תיקון מומלץ
כדי לפתור את הבעיה, בצע את הצעדים הבאים:
מוודאים שהדגל לניהול מסד הנתונים
bigquery_fdw.enabledמוגדר לערךon. כדי לוודא שההגדרה נכונה, אפשר לבצע אחת מהפעולות הבאות:- הצגת הדגלים הנוכחיים לניהול מסד הנתונים במכונה.
- מתחברים למכונה ומריצים את הפקודה הבאה ב-
psql:
SHOW bigquery_fdw.enabled;אם הדגל
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, כמו טבלה רגילה.