תזמון שאילתות
בדף הזה מוסבר איך לתזמן שאילתות חוזרות ב-BigQuery.
אפשר לתזמן את הפעלת השאילתות על בסיס חוזר. שאילתות מתוזמנות צריכות להיכתב ב-GoogleSQL, שיכול לכלול הצהרות של שפת הגדרת נתונים (DDL) ושל שפת טיפול בנתונים (DML). אפשר לארגן את תוצאות השאילתה לפי תאריך ושעה באמצעות הגדרת פרמטרים למחרוזת השאילתה ולטבלת היעד.
כשיוצרים או מעדכנים את לוח הזמנים של שאילתה, השעה המתוזמנת של השאילתה מומרת מהשעון המקומי לשעון UTC. שעון UTC לא מושפע משעון קיץ.
לפני שמתחילים
- שאילתות מתוזמנות משתמשות בתכונות של שירות העברת הנתונים ל-BigQuery. מוודאים שביצעתם את כל הפעולות שנדרשות במאמר הפעלת שירות העברת נתונים ל-BigQuery.
- מקצים תפקידים של ניהול זהויות והרשאות גישה (IAM) שנותנים למשתמשים את ההרשאות הנדרשות לביצוע כל משימה במאמר הזה.
- אם אתם מתכננים לציין מפתח הצפנה בניהול הלקוח (CMEK), ודאו שלחשבון השירות שלכם יש הרשאות להצפנה ולפענוח, ושיש לכם את מזהה מקום האחסון של מפתח Cloud KMS שנדרש לשימוש ב-CMEK. מידע על אופן השימוש ב-CMEK עם שירות העברת הנתונים ל-BigQuery זמין במאמר ציון מפתח הצפנה באמצעות שאילתות מתוזמנות.
מגבלות
- שאילתות מתוזמנות שמופעלות בדיוק בתחילת השעה (לדוגמה, בשעה 09:00) עשויות להפעיל את עצמן כמה פעמים,
מה שעלול לגרום לתוצאות לא רצויות כמו שכפול נתונים מפעולות של
INSERT. כדי למנוע תוצאות לא רצויות כאלה, כדאי להשתמש בלוח זמנים שאינו עגול (לדוגמה, 08:58 או 09:03).
ההרשאות הנדרשות
כדי לתזמן שאילתה, אתם צריכים את הרשאות ה-IAM הבאות:
כדי ליצור את ההעברה, צריך לקבל את ההרשאות
bigquery.transfers.updateו-bigquery.datasets.get, או את ההרשאותbigquery.jobs.create,bigquery.transfers.getו-bigquery.datasets.get.כדי להריץ שאילתה מתוזמנת, אתם צריכים:
- הרשאות
bigquery.datasets.getבמערך הנתונים של היעד bigquery.jobs.create
- הרשאות
כדי לשנות או למחוק שאילתה מתוזמנת, צריך להיות בעלים של השאילתה המתוזמנת עם ההרשאה bigquery.transfers.update וbigquery.transfers.get, או עם ההרשאה bigquery.jobs.create.
תפקיד ה-IAM המוגדר מראש אדמין של BigQuery (roles/bigquery.admin) כולל את ההרשאות שדרושות לכם כדי לתזמן או לשנות שאילתה.
מידע נוסף על תפקידי IAM ב-BigQuery זמין במאמר תפקידים והרשאות מוגדרים מראש.
כדי ליצור או לעדכן שאילתות מתוזמנות שמופעלות על ידי חשבון שירות, צריך להיות לכם גישה לחשבון השירות הזה. מידע נוסף על מתן תפקיד בחשבון שירות למשתמשים זמין במאמר תפקיד משתמש בחשבון שירות. כדי לבחור חשבון שירות בממשק המשתמש של שאילתות מתוזמנות במסוףCloud de Confiance , צריך את הרשאות ה-IAM הבאות:
-
iam.serviceAccounts.listכדי להציג רשימה של חשבונות השירות. -
iam.serviceAccountUserכדי להקצות חשבון שירות לשאילתה מתוזמנת.
אפשרויות להגדרות אישיות
בקטעים הבאים מתוארות אפשרויות ההגדרה.
מחרוזת שאילתה
מחרוזת השאילתה צריכה להיות תקינה ולכלול GoogleSQL. כל הרצה של שאילתה מתוזמנת יכולה לקבל את הפרמטרים הבאים של השאילתה.
כדי לבדוק באופן ידני מחרוזת שאילתה עם הפרמטרים @run_time ו-@run_date לפני תזמון שאילתה, משתמשים בכלי שורת הפקודה של BigQuery.
פרמטרים זמינים
| פרמטר | סוג GoogleSQL | ערך |
|---|---|---|
@run_time |
TIMESTAMP |
מיוצג לפי זמן UTC. בשביל שאילתות שמתוזמנות באופן קבוע, run_time מייצג את שעת ההפעלה המיועדת. לדוגמה, אם השאילתה המתוזמנת מוגדרת ל'כל 24 שעות', ההפרש run_time בין שתי שאילתות עוקבות הוא בדיוק 24 שעות, למרות שזמן הביצוע בפועל עשוי להשתנות מעט. |
@run_date |
DATE |
מייצג תאריך לוגי ביומן. |
דוגמה
הפרמטר @run_time הוא חלק ממחרוזת השאילתה בדוגמה הזו, ששולחת שאילתה למערך נתונים ציבורי בשם hacker_news.stories.
SELECT @run_time AS time, title, author, text FROM `bigquery-public-data.hacker_news.stories` LIMIT 1000
טבלת היעד
אם טבלת היעד של התוצאות לא קיימת כשמגדירים את השאילתה המתוזמנת, מערכת BigQuery מנסה ליצור את הטבלה בשבילכם.
אם אתם משתמשים בשאילתת DDL או DML, במסוף Cloud de Confiance , בוחרים את מיקום העיבוד או האזור. צריך לציין מיקום עיבוד עבור שאילתות DDL או DML שיוצרות את טבלת היעד.
אם טבלת היעד קיימת ואתם משתמשים בWRITE_APPEND
העדפת הכתיבה, אפליקציית BigQuery מוסיפה נתונים לטבלת היעד ומנסה למפות את הסכימה.
BigQuery מאפשר באופן אוטומטי להוסיף שדות ולשנות את הסדר שלהם, וגם להתמודד עם שדות אופציונליים חסרים. אם הסכימה של הטבלה משתנה כל כך הרבה בין הרצות, כך ש-BigQuery לא יכול לעבד את השינויים באופן אוטומטי, השאילתה המתוזמנת נכשלת.
שאילתות יכולות להפנות לטבלאות מפרויקטים שונים וממערכי נתונים שונים. כשמגדירים שאילתה מתוזמנת, לא צריך לכלול את מערך הנתונים של היעד בשם הטבלה. מציינים את מערך נתוני היעד בנפרד.
מערך הנתונים והטבלה של היעד בשאילתה מתוזמנת צריכים להיות באותו פרויקט כמו השאילתה המתוזמנת.
העדפות כתיבה
העדפת הכתיבה שבוחרים קובעת איך תוצאות השאילתה ייכתבו לטבלת יעד קיימת.
-
WRITE_TRUNCATE: אם הטבלה קיימת, BigQuery מחליף את נתוני הטבלה. -
WRITE_APPEND: אם הטבלה קיימת, אפליקציית BigQuery מוסיפה את הנתונים לטבלה.
אם משתמשים בשאילתת DDL או DML, אי אפשר להשתמש באפשרות של העדפת כתיבה.
יצירה, חיתוך או הוספה של טבלת יעד מתבצעים רק אם מערכת BigQuery מצליחה להשלים את השאילתה. פעולות של יצירה, חיתוך או הוספה מתרחשות כעדכון אטומי אחד בסיום העבודה.
סידור באשכולות
שאילתות מתוזמנות יכולות ליצור אשכולות רק בטבלאות חדשות, כשהטבלה נוצרת באמצעות הצהרת DDL CREATE TABLE AS SELECT. אפשר לעיין במאמר יצירת טבלה מסודרת באשכולות מתוצאת שאילתה בדף שימוש בהצהרות של שפת הגדרת נתונים.
אפשרויות חלוקה למחיצות
שאילתות מתוזמנות יכולות ליצור טבלאות יעד עם מחיצות או בלי מחיצות. אפשר להשתמש בחלוקה למחיצות במסוף Cloud de Confiance , בכלי שורת הפקודה של BigQuery ובשיטות ההגדרה של ה-API. אם משתמשים בשאילתת DDL או DML עם חלוקה למחיצות, משאירים את השדה 'חלוקה למחיצות של טבלת היעד' ריק.
אפשר להשתמש בסוגים הבאים של חלוקת טבלאות למחיצות ב-BigQuery:
- חלוקה למחיצות של טווח מספרים שלמים:
טבלאות שמחולקות למחיצות על סמך טווחי ערכים בעמודה ספציפית
INTEGER. - חלוקה למחיצות לפי עמודה של יחידת זמן:
טבלאות שמחולקות למחיצות על סמך עמודה של
TIMESTAMP,DATE, אוDATETIME. - חלוקה למחיצות לפי זמני כתיבת הנתונים: טבלאות שמחולקות למחיצות לפי זמני כתיבת הנתונים. מערכת BigQuery מקצה באופן אוטומטי שורות למחיצות על סמך הזמן שבו BigQuery קולט את הנתונים.
כדי ליצור טבלה עם מחיצות באמצעות שאילתה מתוזמנת במסוףCloud de Confiance , משתמשים באפשרויות הבאות:
כדי להשתמש בחלוקה למחיצות של טווח מספרים שלמים, צריך להשאיר את השדה 'חלוקה למחיצות של טבלת היעד' ריק.
כדי להשתמש בחלוקה למחיצות לפי עמודה של יחידת זמן, צריך לציין את שם העמודה בשדה החלוקה למחיצות של טבלת היעד כשמגדירים שאילתה מתוזמנת.
כדי להשתמש בחלוקה למחיצות בזמן ההטמעה, משאירים את השדה של חלוקת טבלת היעד למחיצות ריק ומציינים את חלוקת התאריכים למחיצות בשם של טבלת היעד. לדוגמה,
mytable${run_date}. מידע נוסף זמין במאמר בנושא תחביר של תבניות פרמטרים.
פרמטרים זמינים
כשמגדירים שאילתה מתוזמנת, אפשר לציין איך רוצים לחלק את טבלת היעד באמצעות פרמטרים של זמן ריצה.
| פרמטר | סוג התבנית | ערך |
|---|---|---|
run_time |
חותמת זמן בפורמט | לפי שעון UTC, בהתאם ללוח הזמנים. בשביל שאילתות שמתוזמנות באופן קבוע, run_time מייצג את שעת ההפעלה המיועדת. לדוגמה, אם השאילתה המתוזמנת מוגדרת ל'כל 24 שעות', run_timeההפרש בין שתי שאילתות עוקבות הוא בדיוק 24 שעות, למרות שזמן הביצוע בפועל עשוי להשתנות מעט.מידע נוסף זמין במאמר TransferRun.runTime. |
run_date |
מחרוזת תאריך | התאריך של הפרמטר run_time בפורמט הבא: %Y-%m-%d. לדוגמה: 2018-01-01. הפורמט הזה תואם לטבלאות מחולקות למחיצות (Partitions) לפי זמני כתיבת הנתונים. |
מערכת תבניות
שאילתות מתוזמנות תומכות בפרמטרים של זמן ריצה בשם טבלת היעד עם תחביר של תבנית.
תחביר של תבניות פרמטרים
תחביר התבניות תומך בתבניות מחרוזות בסיסיות ובהזזת זמן. הפרמטרים מוזכרים בפורמטים הבאים:
{run_date}{run_time[+\-offset]|"time_format"}
| פרמטר | מטרה |
|---|---|
run_date |
הפרמטר הזה מוחלף בתאריך בפורמט YYYYMMDD. |
run_time |
הפרמטר הזה תומך במאפיינים הבאים:
|
- אסור להוסיף רווח לבן בין run_time, offset ו-time format.
- כדי לכלול בספרייה סוגריים מסולסלים, אפשר להשתמש בתו בריחה (escape)
'\{' and '\}'. - כדי לכלול מירכאות או קו אנכי ב-time_format, כמו
"YYYY|MM|DD", אפשר להשתמש בתו בריחה במחרוזת הפורמט כך:'\"'או'\|'.
דוגמאות ליצירת תבניות של פרמטרים
בדוגמאות האלה אפשר לראות איך מציינים שמות של טבלאות יעד עם פורמטים שונים של זמן, ואיך משנים את זמן הריצה.| run_time (UTC) | פרמטר מבוסס-תבנית | שם טבלת היעד של הפלט |
|---|---|---|
| 2018-02-15 00:00:00 | mytable |
mytable |
| 2018-02-15 00:00:00 | mytable_{run_time|"%Y%m%d"} |
mytable_20180215 |
| 2018-02-15 00:00:00 | mytable_{run_time+25h|"%Y%m%d"} |
mytable_20180216 |
| 2018-02-15 00:00:00 | mytable_{run_time-1h|"%Y%m%d"} |
mytable_20180214 |
| 2018-02-15 00:00:00 | mytable_{run_time+1.5h|"%Y%m%d%H"}
או mytable_{run_time+90m|"%Y%m%d%H"} |
mytable_2018021501 |
| 2018-02-15 00:00:00 | {run_time+97s|"%Y%m%d"}_mytable_{run_time+97s|"%H%M%S"} |
20180215_mytable_000137 |
שימוש בחשבון שירות
אפשר להגדיר שאילתה מתוזמנת שתאומת כחשבון שירות. חשבון שירות הוא חשבון מיוחד שמשויך לפרויקט שלכם ב- Cloud de Confiance by S3NS . חשבון השירות יכול להריץ משימות, כמו שאילתות מתוזמנות או צינורות לעיבוד ברצף (batch processing), באמצעות פרטי הכניסה שלו לשירות ולא באמצעות פרטי הכניסה של משתמש קצה.
מידע נוסף על אימות באמצעות חשבונות שירות זמין במאמר מבוא לאימות.
אפשר להגדיר את השאילתה המתוזמנת באמצעות חשבון שירות. אם נכנסתם באמצעות זהות מאוחדת, תצטרכו ליצור חשבון שירות כדי ליצור העברה. אם נכנסתם באמצעות חשבון Google, חשבון שירות להעברה הוא אופציונלי.
אפשר לעדכן שאילתה מתוזמנת קיימת באמצעות פרטי הכניסה של חשבון שירות עם כלי שורת הפקודה של BigQuery או עם Cloud de Confiance המסוף. מידע נוסף זמין במאמר בנושא עדכון פרטי הכניסה של שאילתות מתוזמנות.
ציון מפתח הצפנה בשאילתות מתוזמנות
אפשר לציין מפתחות הצפנה בניהול הלקוח (CMEK) כדי להצפין נתונים להרצת העברה. אפשר להשתמש ב-CMEK כדי לתמוך בהעברות משאילתות מתוזמנות.כשמציינים מפתח CMEK בהעברה, שירות העברת הנתונים ל-BigQuery מחיל את מפתח ה-CMEK על כל מטמון ביניים בדיסק של נתונים שהועברו, כך שכל תהליך העבודה של העברת הנתונים תואם ל-CMEK.
אי אפשר לעדכן העברה קיימת כדי להוסיף CMEK אם ההעברה לא נוצרה במקור עם CMEK. לדוגמה, אי אפשר לשנות טבלת יעד שהייתה מוצפנת כברירת מחדל כך שהיא תוצפן עכשיו באמצעות CMEK. באופן דומה, אי אפשר לשנות טבלת יעד מוצפנת באמצעות CMEK כך שתהיה לה הצפנה מסוג אחר.
אפשר לעדכן את מפתח ה-CMEK להעברה אם ההגדרה של ההעברה נוצרה במקור עם הצפנת CMEK. כשמעדכנים את ה-CMEK בהגדרות של העברה, שירות העברת הנתונים ל-BigQuery מעביר את ה-CMEK לטבלאות היעד בהפעלה הבאה של ההעברה. במהלך ההפעלה, שירות העברת הנתונים ל-BigQuery מחליף את כל ה-CMEK שהתיישנו ב-CMEK החדש. מידע נוסף זמין במאמר בנושא עדכון העברה.
אפשר גם להשתמש במקשי ברירת המחדל של הפרויקט. כשמציינים מפתח ברירת מחדל של פרויקט בהעברה, שירות העברת הנתונים ל-BigQuery משתמש במפתח ברירת המחדל של הפרויקט כמפתח ברירת המחדל לכל הגדרה חדשה של העברה.
הגדרה של שאילתות מתוזמנות באמצעות חשבון שירות
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Java API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Pythonהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Python API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
הצגת הסטטוס של שאילתה מתוזמנת
המסוף
כדי לראות את הסטטוס של השאילתות המתוזמנות, בתפריט הניווט לוחצים על תזמון ומסננים לפי שאילתה מתוזמנת. כדי לקבל פרטים נוספים על שאילתה מתוזמנת, לוחצים עליה.
BQ
שאילתות מתוזמנות הן סוג של העברה. כדי להציג את הפרטים של שאילתה מתוזמנת, אפשר קודם להשתמש בכלי שורת הפקודה של BigQuery כדי להציג את רשימת ההגדרות של ההעברה.
מזינים את הפקודה bq ls ומספקים את דגל ההעברה
--transfer_config. נדרשים גם הדגלים הבאים:
--transfer_location
לדוגמה:
bq ls \
--transfer_config \
--transfer_location=us
כדי להציג את הפרטים של שאילתה מתוזמנת אחת, מזינים את הפקודה bq show
ומספקים את transfer_path של אותה שאילתה מתוזמנת או של הגדרת ההעברה.
לדוגמה:
bq show \
--transfer_config \
projects/862514376110/locations/us/transferConfigs/5dd12f26-0000-262f-bc38-089e0820fe38
API
משתמשים בשיטה projects.locations.transferConfigs.list ומספקים מופע של המשאב TransferConfig.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Java API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Pythonהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Python API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
עדכון שאילתות מתוזמנות
המסוף
כדי לעדכן שאילתה מתוזמנת:
- בתפריט הניווט, לוחצים על Scheduled queries (שאילתות מתוזמנות) או על Scheduling (תזמון).
- ברשימת השאילתות המתוזמנות, לוחצים על שם השאילתה שרוצים לשנות.
- בדף פרטים של שאילתה מתוזמנת שנפתח, לוחצים על עריכה.
- אופציונלי: משנים את הטקסט של השאילתה בחלונית העריכה של השאילתה.
- לוחצים על תזמון שאילתה ואז על עדכון שאילתה מתוזמנת.
- אופציונלי: משנים אפשרויות אחרות לקביעת לוח הזמנים של השאילתה.
- לוחצים על עדכון.
BQ
שאילתות מתוזמנות הן סוג של העברה. כדי לעדכן שאילתה מתוזמנת, אפשר להשתמש בכלי שורת הפקודה של BigQuery כדי ליצור הגדרת העברה.
מזינים את הפקודה bq update עם הדגל --transfer_config הנדרש.
דגלים אופציונליים:
--project_idהוא מזהה הפרויקט. אם לא מציינים את--project_id, המערכת משתמשת בפרויקט שמוגדר כברירת מחדל.
--scheduleהיא התדירות שבה רוצים שהשאילתה תפעל. אם לא מציינים את--schedule, ברירת המחדל היא 'כל 24 שעות' על סמך זמן היצירה.המדיניות
--service_account_nameתקפה רק אם המדיניות--update_credentialsמוגדרת. מידע נוסף זמין במאמר בנושא עדכון פרטי הכניסה של שאילתות מתוזמנות.
--target_dataset(אופציונלי בשאילתות DDL ו-DML) היא דרך חלופית לתת שם למערך היעד של תוצאות השאילתה, כשמשתמשים בה עם שאילתות DDL ו-DML.
--display_nameהוא השם של השאילתה המתוזמנת.
--paramsהפרמטרים של הגדרת ההעברה שנוצרה בפורמט JSON. לדוגמה: --params='{"param":"param_value"}'.
--destination_kms_keyמציין את מזהה משאב המפתח של מפתח Cloud KMS אם משתמשים במפתח הצפנה בניהול הלקוח (CMEK) להעברה הזו. למידע על האופן שבו מפתחות הצפנה בניהול הלקוח (CMEK) פועלים עם שירות העברת הנתונים ל-BigQuery, אפשר לעיין במאמר ציון מפתח הצפנה בשאילתות מתוזמנות.
bq update \ --target_dataset=dataset \ --display_name=name \ --params='parameters' --transfer_config \ RESOURCE_NAME
מחליפים את מה שכתוב בשדות הבאים:
-
dataset. מערך נתוני היעד להגדרת ההעברה. הפרמטר הזה הוא אופציונלי בשאילתות DDL ו-DML. הוא נדרש לכל שאר השאילתות. -
name. השם המוצג של הגדרת ההעברה. השם המוצג יכול להיות כל ערך שתוכלו לזהות בהמשך אם תצטרכו לשנות את השאילתה. -
parameters. מכיל את הפרמטרים של הגדרת ההעברה שנוצרה בפורמט JSON. לדוגמה:--params='{"param":"param_value"}'.- בשביל שאילתה מתוזמנת, צריך לספק את הפרמטר
query. - הפרמטר
destination_table_name_templateהוא השם של טבלת היעד. הפרמטר הזה הוא אופציונלי בשאילתות DDL ו-DML. הוא נדרש לכל שאר השאילתות. - בפרמטר
write_disposition, אפשר לבחור באפשרותWRITE_TRUNCATEכדי לחתוך (לשכתב) את טבלת היעד, או באפשרותWRITE_APPENDכדי לצרף את תוצאות השאילתה לטבלת היעד. הפרמטר הזה הוא אופציונלי בשאילתות DDL ו-DML. הוא נדרש לכל שאר השאילתות.
- בשביל שאילתה מתוזמנת, צריך לספק את הפרמטר
- אופציונלי: הערך
--destination_kms_keyמציין את מזהה משאב המפתח של מפתח Cloud KMS, לדוגמה,projects/project_name/locations/us/keyRings/key_ring_name/cryptoKeys/key_name. -
RESOURCE_NAME: שם המשאב של ההעברה (נקרא גם הגדרות ההעברה). אם לא ידוע לכם שם המשאב של ההעברה, תוכלו למצוא אותו באמצעות:bq ls --transfer_config --transfer_location=location.
לדוגמה, הפקודה הבאה מעדכנת העברה של שאילתה מתוזמנת בשם My Scheduled Query באמצעות השאילתה SELECT 1
from mydataset.test. טבלת היעד mytable נחתכת בכל כתיבה, ומערך נתוני היעד הוא mydataset:
bq update \
--target_dataset=mydataset \
--display_name='My Scheduled Query' \
--params='{"query":"SELECT 1 from mydataset.test","destination_table_name_template":"mytable","write_disposition":"WRITE_TRUNCATE"}'
--transfer_config \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7
API
משתמשים בשיטה projects.transferConfigs.patch ומספקים את שם המשאב של ההעברה באמצעות הפרמטר transferConfig.name. אם אתם לא יודעים את שם המשאב של ההעברה, אתם יכולים להשתמש בפקודה bq ls --transfer_config --transfer_location=location כדי להציג רשימה של כל ההעברות, או להתקשר לשיטה projects.locations.transferConfigs.list ולספק את מזהה הפרויקט באמצעות הפרמטר parent.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Java API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Pythonהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Python API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
עדכון שאילתות מתוזמנות עם הגבלות בעלות
אם תנסו לעדכן שאילתה מתוזמנת שלא בבעלותכם, יכול להיות שהעדכון ייכשל ותוצג הודעת השגיאה הבאה:
Cannot modify restricted parameters without taking ownership of the transfer configuration.
הבעלים של השאילתה המתוזמנת הוא המשתמש שמשויך לשאילתה המתוזמנת או המשתמש שיש לו גישה לחשבון השירות שמשויך לשאילתה המתוזמנת. אפשר לראות את המשתמש המשויך בפרטי ההגדרה של השאילתה המתוזמנת. במאמר עדכון פרטי הכניסה של שאילתה מתוזמנת מוסבר איך לעדכן את השאילתה המתוזמנת כדי לקבל בעלות. כדי לתת למשתמשים גישה לחשבון שירות, צריך להיות לכם התפקיד Service Account User.
הפרמטרים שהבעלים הגביל בשאילתות מתוזמנות הם:
- הטקסט של השאילתה
- מערך נתוני היעד
- תבנית השם של טבלת היעד
עדכון פרטי הכניסה של שאילתה מתוזמנת
אם מתזמנים שאילתה קיימת, יכול להיות שיהיה צורך לעדכן את פרטי הכניסה של המשתמש בשאילתה. פרטי הכניסה מתעדכנים אוטומטית בשאילתות מתוזמנות חדשות.
אלה כמה מצבים נוספים שבהם יכול להיות שיהיה צורך לעדכן את פרטי הכניסה:
- אתם רוצים להריץ שאילתות על נתונים ב-Google Drive בשאילתה מתוזמנת.
מופיעה השגיאה INVALID_USER כשמנסים לתזמן את השאילתה:
Error code 5 : Authentication failure: User Id not found. Error code: INVALID_USERIDמופיעה הודעת השגיאה הבאה לגבי פרמטרים מוגבלים כשמנסים לעדכן את השאילתה:
Cannot modify restricted parameters without taking ownership of the transfer configuration.
המסוף
כדי לרענן את פרטי הכניסה הקיימים בשאילתה מתוזמנת:
איתור הסטטוס של שאילתה מתוזמנת
לוחצים על הלחצן עוד ובוחרים באפשרות עדכון פרטי הכניסה.
השינוי ייכנס לתוקף תוך 10 עד 20 דקות. יכול להיות שתצטרכו לנקות את המטמון של הדפדפן.
BQ
שאילתות מתוזמנות הן סוג של העברה. כדי לעדכן את פרטי הכניסה של שאילתה מתוזמנת, אפשר להשתמש בכלי שורת הפקודה של BigQuery כדי לעדכן את הגדרות ההעברה.
מזינים את הפקודה bq update ומספקים את דגל ההעברה
--transfer_config. נדרשים גם הדגלים הבאים:
--update_credentials
סימון אופציונלי:
-
--service_account_nameמשמש לאימות השאילתה המתוזמנת באמצעות חשבון שירות במקום באמצעות חשבון המשתמש האישי.
לדוגמה, הפקודה הבאה מעדכנת את ההגדרות של העברה מתוזמנת של שאילתה כדי לבצע אימות בתור חשבון שירות:
bq update \
--update_credentials \
--service_account_name=abcdef-test-sa@abcdef-test.s3ns.iam.gserviceaccount.com \
--transfer_config \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Java API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Pythonהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Python API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
הגדרת הפעלה ידנית בתאריכים היסטוריים
בנוסף לתזמון של שאילתה להפעלה בעתיד, אפשר גם להפעיל אותה באופן ידני באופן מיידי. הפעלת ריצה מיידית נדרשת אם השאילתה משתמשת בפרמטר run_date והיו בעיות במהלך ריצה קודמת.
לדוגמה, כל יום בשעה 09:00 אתם שולחים שאילתה לטבלת מקור כדי לאחזר שורות שתואמות לתאריך הנוכחי. עם זאת, גיליתם שהנתונים לא נוספו לטבלת המקור בשלושת הימים האחרונים. במצב כזה, אפשר להגדיר את השאילתה כך שתפעל על נתונים היסטוריים בטווח תאריכים שתציינו. השאילתה מופעלת באמצעות שילובים של הפרמטרים run_date ו-run_time שתואמים לתאריכים שהגדרתם בשאילתה המתוזמנת.
אחרי הגדרת שאילתה מתוזמנת, כך מריצים את השאילתה באמצעות טווח תאריכים היסטורי:
המסוף
אחרי שלוחצים על תזמון כדי לשמור את השאילתה המתוזמנת, אפשר ללחוץ על הלחצן שאילתות מתוזמנות כדי לראות את רשימת השאילתות המתוזמנות. לוחצים על שם התצוגה כדי לראות את פרטי התזמון של השאילתה. בפינה השמאלית העליונה של הדף, לוחצים על תזמון מילוי חוסרים כדי לציין טווח תאריכים היסטורי.
כל זמני הריצה שנבחרו נמצאים בטווח התאריכים שבחרתם, כולל התאריך הראשון ולא כולל התאריך האחרון.
דוגמה 1
השאילתה המתוזמנת מוגדרת להפעלה ב-every day 09:00 Pacific Time. חסרים לך נתונים מ-1 בינואר, מ-2 בינואר ומ-3 בינואר. בוחרים את טווח התאריכים ההיסטורי הבא:
Start Time = 1/1/19
End Time = 1/4/19
השאילתה מורצת באמצעות הפרמטרים run_date ו-run_time שמתאימים לזמנים הבאים:
- 1/1/19 09:00 שעון החוף המערבי
- 1/2/19 09:00 שעון החוף המערבי
- 1/3/19 09:00 שעון החוף המערבי
דוגמה 2
השאילתה המתוזמנת מוגדרת להפעלה ב-every day 23:00 Pacific Time. חסרים לך נתונים מ-1 בינואר, מ-2 בינואר ומ-3 בינואר. בוחרים את טווחי התאריכים ההיסטוריים הבאים (התאריכים המאוחרים יותר נבחרים כי השעה 23:00 לפי שעון החוף הפסיפי היא תאריך אחר לפי שעון UTC):
Start Time = 1/2/19
End Time = 1/5/19
השאילתה מורצת באמצעות הפרמטרים run_date ו-run_time שמתאימים לזמנים הבאים:
- 1/2/19 06:00 UTC או 1/1/2019 23:00 לפי שעון החוף המערבי
- 1/3/19 06:00 UTC או 1/2/2019 23:00 לפי שעון החוף המערבי
- 1/4/19 06:00 UTC או 1/3/2019 23:00 לפי שעון החוף המערבי
אחרי שמגדירים הפעלות ידניות, מרעננים את הדף כדי לראות אותן ברשימת ההפעלות.
BQ
כדי להריץ את השאילתה באופן ידני על טווח תאריכים היסטורי:
מזינים את הפקודה bq mk ומספקים את דגל ההרצה של ההעברה --transfer_run. נדרשים גם הדגלים הבאים:
--start_time--end_time
bq mk \ --transfer_run \ --start_time='start_time' \ --end_time='end_time' \ resource_name
מחליפים את מה שכתוב בשדות הבאים:
-
start_timeוגםend_timeחותמות זמן שמסתיימות באות Z או שמכילות היסט תקין מאזור הזמן. דוגמאות:- 2017-08-19T12:11:35.00Z
- 2017-05-25T00:00:00+00:00
-
resource_name. שם המשאב של השאילתה המתוזמנת (או ההעברה). שם המשאב נקרא גם הגדרת ההעברה.
לדוגמה, הפקודה הבאה מתזמנת מילוי חוסרים למשאב של שאילתה מתוזמנת (או להגדרת העברה):
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7.
bq mk \
--transfer_run \
--start_time 2017-05-25T00:00:00Z \
--end_time 2017-05-25T00:00:00Z \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7
מידע נוסף זמין במאמר bq mk --transfer_run.
API
משתמשים בשיטה projects.locations.transferConfigs.scheduleRun ומספקים נתיב של משאב TransferConfig.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Java API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Pythonהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Python API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
הגדרת התראות לגבי שאילתות מתוזמנות
אפשר להגדיר מדיניות התראות עבור שאילתות מתוזמנות על סמך מדדים של מספר השורות. מידע נוסף מפורט במאמר הגדרת התראות באמצעות שאילתות מתוזמנות.
מחיקת שאילתות מתוזמנות
המסוף
כדי למחוק שאילתה מתוזמנת בדף Scheduled queries במסוף Cloud de Confiance :
- בתפריט הניווט, לוחצים על Scheduled queries (שאילתות מתוזמנות).
- ברשימת השאילתות המתוזמנות, לוחצים על השם של השאילתה המתוזמנת שרוצים למחוק.
בדף פרטים של שאילתה מתוזמנת, לוחצים על מחיקה.
אפשר גם למחוק שאילתה מתוזמנת בדף תזמון של מסוף Cloud de Confiance :
- בתפריט הניווט, לוחצים על Scheduling (תזמון).
- ברשימת השאילתות המתוזמנות, לוחצים על התפריט פעולות של השאילתה המתוזמנת שרוצים למחוק.
בוחרים את האפשרות Delete.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Java API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Pythonהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Python API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
השבתה או הפעלה של שאילתות מתוזמנות
כדי להשהות את ההרצות המתוזמנות של שאילתה נבחרת בלי למחוק את התזמון, אפשר להשבית את התזמון.
כדי להשבית לוח זמנים של שאילתה נבחרת, פועלים לפי השלבים הבאים:
- בתפריט הניווט של מסוף Cloud de Confiance , לוחצים על Scheduling.
- ברשימת השאילתות המתוזמנות, לוחצים על התפריט פעולות של השאילתה המתוזמנת שרוצים להשבית.
בוחרים באפשרות השבתה.
כדי להפעיל שאילתה מתוזמנת שהושבתה, לוחצים על התפריט פעולות בשורה של השאילתה המתוזמנת שרוצים להפעיל ובוחרים באפשרות הפעלה.
מכסות
שאילתות מתוזמנות תמיד מורצות כמשימות של שאילתות באצווה, והן כפופות לאותן מכסות ומגבלות של BigQuery כמו שאילתות ידניות.
למרות ששאילתות מתוזמנות משתמשות בתכונות של שירות העברת הנתונים ל-BigQuery, הן לא העברות ולא חלות עליהן מכסות של עבודות טעינה.
הזהות שמשמשת להפעלת השאילתה קובעת אילו מכסות יחולו. זה תלוי בהגדרות של השאילתה המתוזמנת:
פרטי הכניסה של היוצר (ברירת מחדל): אם לא מציינים חשבון שירות, השאילתה המתוזמנת מופעלת באמצעות פרטי הכניסה של המשתמש שיצר אותה. החיוב על עבודת השאילתה חל על הפרויקט של היוצר, והוא כפוף למכסות של המשתמש והפרויקט.
פרטי כניסה של חשבון שירות: אם מגדירים את השאילתה המתוזמנת לשימוש בחשבון שירות, היא מורצת באמצעות פרטי הכניסה של חשבון השירות. במקרה כזה, העבודה עדיין מחויבת לפרויקט שמכיל את השאילתה המתוזמנת, אבל הביצוע כפוף למכסות של חשבון השירות שצוין.
תמחור
התמחור של שאילתות מתוזמנות זהה לזה של שאילתות BigQuery ידניות.
אזורים נתמכים
שאילתות מתוזמנות נתמכות במיקומים הבאים.
אזורים
בטבלה הבאה מפורטים האזורים באמריקה שבהם BigQuery זמין.| תיאור האזור | שם האזור | פרטים |
|---|---|---|
| קולומבוס, אוהיו | us-east5 |
|
| דאלאס | us-south1 |
|
| אייווה | us-central1 |
|
| לוס אנג'לס | us-west2 |
|
| לאס וגאס | us-west4 |
|
| מקסיקו | northamerica-south1 |
|
| מונטריאול | northamerica-northeast1 |
|
| צפון וירג'יניה | us-east4 |
|
| אוקלהומה | us-central2 |
|
| אורגון | us-west1 |
|
| סולט לייק סיטי | us-west3 |
|
| סאו פאולו | southamerica-east1 |
|
| סנטיאגו | southamerica-west1 |
|
| דרום קרוליינה | us-east1 |
|
| טורונטו | northamerica-northeast2 |
|
| תיאור האזור | שם האזור | פרטים |
|---|---|---|
| בנגקוק | asia-southeast3 |
|
| דלהי | asia-south2 |
|
| הונג קונג | asia-east2 |
|
| ג'קארטה | asia-southeast2 |
|
| מלבורן | australia-southeast2 |
|
| מומבאי | asia-south1 |
|
| אוסקה | asia-northeast2 |
|
| סיאול | asia-northeast3 |
|
| סינגפור | asia-southeast1 |
|
| סידני | australia-southeast1 |
|
| טייוואן | asia-east1 |
|
| טוקיו | asia-northeast1 |
| תיאור האזור | שם האזור | פרטים |
|---|---|---|
| בלגיה | europe-west1 |
|
| ברלין | europe-west10 |
|
| פינלנד | europe-north1 |
|
| פרנקפורט | europe-west3 |
|
| לונדון | europe-west2 |
|
| מדריד | europe-southwest1 |
|
| מילאנו | europe-west8 |
|
| הולנד | europe-west4 |
|
| פריז | europe-west9 |
|
| שטוקהולם | europe-north2 |
|
| טורינו | europe-west12 |
|
| ורשה | europe-central2 |
|
| ציריך | europe-west6 |
|
| תיאור האזור | שם האזור | פרטים |
|---|---|---|
| דמאם | me-central2 |
|
| דוחה | me-central1 |
|
| תל אביב | me-west1 |
| תיאור האזור | שם האזור | פרטים |
|---|---|---|
| יוהנסבורג | africa-south1 |
במספר אזורים
בטבלה הבאה מפורטים האזורים שבהם BigQuery זמין. כשבוחרים אזור מרובה, מאפשרים ל-BigQuery לבחור אזור יחיד בתוך האזור המרובה שבו הנתונים מאוחסנים ומעובדים.| תיאור של המיקום 'במספר אזורים' | השם של המיקום 'במספר אזורים' |
|---|---|
| מרכזי נתונים במדינות החברות באיחוד האירופי1 | EU |
| מרכזי נתונים בארצות הברית2 | US |
1 נתונים שנמצאים במיקום 'במספר אזורים' של EU מאוחסנים רק באחד מהמיקומים הבאים: europe-west1 (בלגיה) או europe-west4 (הולנד).
המיקום המדויק שבו הנתונים מאוחסנים ומעובדים נקבע באופן אוטומטי על ידי BigQuery.
2 נתונים שנמצאים במיקום 'במספר אזורים' של US מאוחסנים רק באחד מהמיקומים הבאים: us-central1 (איווה), us-west1 (אורגון) או us-central2 (אוקלהומה). המיקום המדויק שבו הנתונים מאוחסנים ומעובדים נקבע באופן אוטומטי על ידי BigQuery.
המאמרים הבאים
- דוגמה לשאילתה מתוזמנת שמשתמשת בחשבון שירות וכוללת את הפרמטרים
@run_dateו-@run_timeמופיעה במאמר יצירת תמונות מצב של טבלאות באמצעות שאילתה מתוזמנת.