הרצת משימות באופן פרוגרמטי
כדי להריץ משימת BigQuery באופן פרוגרמטי באמצעות ה-API בארכיטקטורת REST או ספריות לקוח:
- מבצעים קריאה ל-method
jobs.insert. - מבקשים את משאב העבודה באופן תקופתי ובודקים את מאפיין הסטטוס כדי לדעת מתי העבודה הושלמה.
- בודקים אם העבודה הסתיימה בהצלחה.
לפני שמתחילים
להקצות תפקידים של ניהול זהויות והרשאות גישה (IAM) שנותנים למשתמשים את ההרשאות הנדרשות לביצוע כל משימה שמופיעה במאמר הזה.
ההרשאות הנדרשות
כדי להריץ משימה ב-BigQuery, אתם צריכים את הרשאת ה-IAM bigquery.jobs.create.
כל אחד מתפקידי ה-IAM המוגדרים מראש הבאים כולל את ההרשאות שנדרשות להפעלת משימה:
roles/bigquery.userroles/bigquery.jobUserroles/bigquery.admin
בנוסף, כשיוצרים עבודה, מקבלים באופן אוטומטי את ההרשאות הבאות לעבודה הזו:
bigquery.jobs.getbigquery.jobs.update
במאמר תפקידים והרשאות מוגדרים מראש יש מידע נוסף על תפקידים והרשאות ב-IAM ב-BigQuery.
הרצת משרות
כדי להריץ משימה באופן פרוגרמטי:
מפעילים את העבודה על ידי קריאה לשיטה
jobs.insert. כשקוראים לשיטתjobs.insert, צריך לכלול ייצוג של משאב של משימה.בקטע
configurationשל משאב המשרה, צריך לכלול מאפיין צאצא שמציין את סוג המשרה –load,query,extractאוcopy.אחרי שקוראים לשיטה
jobs.insert, בודקים את סטטוס העבודה על ידי קריאה ל-jobs.getעם מזהה העבודה והמיקום, ובודקים את הערךstatus.stateכדי לדעת את סטטוס העבודה. אם הערך שלstatus.stateהואDONE, העבודה הפסיקה לפעול. עם זאת, סטטוסDONEלא אומר שהעבודה הושלמה בהצלחה, אלא רק שהיא כבר לא פועלת.בודקים שהעבודה הושלמה בהצלחה. אם יש למשימה מאפיין
errorResult, המשימה נכשלה. המאפייןstatus.errorResultמכיל מידע שמתאר מה השתבש בעבודה שנכשלה. אםstatus.errorResultלא מופיע, סימן שהמשימה הסתיימה בהצלחה, אבל יכול להיות שהיו כמה שגיאות לא קריטיות, כמו בעיות בייבוא של כמה שורות במשימת טעינה. שגיאות לא חמורות מוחזרות ברשימהstatus.errorsשל העבודה.
הפעלת משימות באמצעות ספריות לקוח
כדי ליצור ולהריץ עבודה באמצעות ספריות הלקוח של Cloud ל-BigQuery:
C#
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי C#הוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery C# API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Java API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Pythonהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Python API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
הוספת תוויות של משרות
אפשר להוסיף תוויות לעבודות של שאילתות דרך שורת הפקודה באמצעות הדגל --label של כלי שורת הפקודה bq. כלי bq תומך בהוספת תוויות רק למשימות של שאילתות.
אפשר גם להוסיף תווית לעבודה כששולחים אותה דרך ה-API. לשם כך, מציינים את המאפיין labels בהגדרת העבודה כשמפעילים את השיטה jobs.insert. אפשר להשתמש ב-API כדי להוסיף תוויות לכל סוג עבודה.
אי אפשר להוסיף תוויות למשימות בהמתנה, למשימות שפועלות או למשימות שהושלמו, ואי אפשר לעדכן את התוויות שלהן.
כשמוסיפים תווית לעבודה, התווית נכללת בנתוני החיוב.
מידע נוסף זמין במאמר הוספת תוויות למשרות.
המאמרים הבאים
- במאמר הפעלת שאילתות יש דוגמת קוד שמתחילה ומבצעת שאילתת עבודה.
- מידע נוסף על יצירת ייצוג של משאב של משימה מופיע בדף הסקירה הכללית על משימות בהפניית ה-API.