עבודה עם סשנים
במסמך הזה מוסבר איך ליצור סשנים, להשתמש בהם, לסיים אותם ולראות רשימה שלהם.
לפני שמבצעים את השלבים האלה, צריך לוודא שיש לכם את ההרשאות הנדרשות.
יצירת סשן
כדי לתעד קבוצה של פעילויות SQL, צריך ליצור סשן ב-BigQuery. אחרי שיוצרים סשן, אפשר להריץ שאילתות אינטראקטיביות בסשן עד שהוא מסתיים. כל השאילתות בסשן מופעלות (מעובדות) במיקום שבו הסשן נוצר.
המסוף
במסוף Cloud de Confiance , כל סשן מוקצה לכרטיסיית עריכה.
במסוף Cloud de Confiance , עוברים לדף BigQuery.
לוחצים על Compose new query. תיפתח כרטיסייה חדשה בעורך.
לוחצים על אפשרויות נוספות > הגדרות של שאילתות. מופיעה החלונית הגדרות השאילתה.
בקטע ניהול סשנים, לוחצים על שימוש במצב סשן כדי להפעיל את מצב הסשן.
בקטע הגדרות נוספות > מיקום הנתונים, בוחרים את המיקום. אחרי שיוצרים את הסשן, כל השאילתות בסשן מוגבלות למיקום הזה ואי אפשר לשנות את המיקום.
לוחצים על Save.
כותבים שאילתה בכרטיסייה של העורך ומריצים אותה. הסשן החדש נוצר אחרי הפעלת השאילתה הראשונה.
BQ
פותחים את Cloud Shell ומזינים את הפקודה הבאה: bq query
bq query \ --nouse_legacy_sql \ --create_session [--location 'SESSION_LOCATION'] \ 'SQL_STATEMENT'
where:
- SESSION_LOCATION: קישור הסשן למיקום פיזי. הגבלת כל השאילתות בסשן למיקום הזה. זה שינוי אופציונלי.
- SQL_STATEMENT: הצהרת ה-SQL הראשונה בסשן.
מזהה הסשן מוחזר עם תוצאות השאילתה.
API
מבצעים קריאה לשיטה jobs.query עם הפרמטרים הבאים:
{ "query": "SQL_STATEMENT", "createSession": true, ["location": "SESSION_LOCATION"] }
where:
- SQL_STATEMENT: הצהרת ה-SQL הראשונה בסשן.
- SESSION_LOCATION: קישור הסשן למיקום פיזי. הגבלת כל השאילתות בסשן למיקום הזה. זה שינוי אופציונלי.
גוף התשובה אמור להיראות כך:
{
"jobReference": {
"projectId": "myProject",
"jobId": "job_123"
},
"statistics": {
"sessionInfo": {
"sessionId": "CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ"
}
}
}
הרצת שאילתה בסשן
אחרי שיוצרים סשן, אפשר להריץ שאילתות בסשן הזה:
המסוף
נכנסים לדף BigQuery במסוף Cloud de Confiance .
לוחצים על הכרטיסייה של העורך שמכילה את הסשן.
מוסיפים את השאילתה לסשן ולוחצים על הפעלה.
BQ
פותחים את Cloud Shell ומזינים את הפקודה הבאה: bq query
bq query \ --nouse_legacy_sql \ --session_id=SESSION_ID \ 'SQL_STATEMENT'
where:
- SESSION_ID: מחליפים את הערך הזה במזהה הסשן שרוצים לעבוד איתו.
- SQL_STATEMENT: הצהרת SQL להרצה בסשן.
אחרי התוצאות של השאילתה מופיע מזהה הסשן.
אם אתם מתכוונים להריץ הרבה שאילתות באמצעות Cloud Shell, אתם יכולים להוסיף את מזהה הסשן ל-[query] ב-.bigqueryrc כדי שלא תצטרכו להעתיק ולהדביק את מזהה הסשן בכל פקודה.
כך נראה מזהה הפעלה ב-.bigqueryrc:
[query]
--session_id=CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ
אחרי שמוסיפים את מזהה הסשן ל-.bigqueryrc, אפשר להשמיט את הדגל --session_id מהפקודה bq query. אם רוצים להשתמש בסשן אחר או אם סשן מסתיים, צריך לעדכן את קובץ .bigqueryrc.
API
מבצעים קריאה לשיטה jobs.query עם הפרמטרים הבאים:
{ "query": "SQL_STATEMENT", "connectionProperties": [{ "key": "session_id", "value": "SESSION_ID" }] }
where:
- SQL_STATEMENT: הצהרת ה-SQL הראשונה בסשן.
- SESSION_ID: מזהה הסשן.
סיום סשן
אפשר לסיים סשן באופן ידני או אוטומטי. ההיסטוריה של סשן שהסתיים זמינה למשך 20 יום אחרי הסיום.
סיום אוטומטי של סשן
סשן מסתיים אוטומטית אחרי 24 שעות של חוסר פעילות או אחרי 7 ימים, לפי מה שקורה קודם.
סיום הסשן הנוכחי
אפשר לסיים את הסשן הנוכחי באמצעות הצהרת SQL או במסוףCloud de Confiance , אם הסשן נוצר שם.
המסוף
נכנסים לדף BigQuery במסוף Cloud de Confiance .
מאתרים את הכרטיסייה של העורך שמכילה את הסשן וסוגרים אותה. הסשן מסתיים.
SQL
כדי לסיים את הסשן:
במסוף Cloud de Confiance , עוברים לדף BigQuery.
מזינים את ההצהרה הבאה בעורך השאילתות:
CALL BQ.ABORT_SESSION();
לוחצים על הפעלה.
מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.
סיום סשן לפי מזהה
אפשר לסיים סשן באמצעות המזהה שלו. לא צריך להיות בסשן כדי לסיים אותו בדרך הזו.
מקבלים את מזהה הסשן ומריצים את ההצהרה הבאה:
CALL BQ.ABORT_SESSION(SESSION_ID);
מחליפים את SESSION_ID במזהה של הסשן שרוצים לסיים.
איך מקבלים את המזהה של הסשן הפעיל
במצבים מסוימים, צריך להפנות לסשן כדי להמשיך לעבוד בו. לדוגמה, אם אתם עובדים עם Cloud Shell, אתם צריכים לכלול את מזהה הסשן בכל פעם שאתם מריצים פקודה בסשן הזה.
המסוף
לא צריך לספק את מזהה הסשן כדי להריץ שאילתה חדשה בסשן בתוך Cloud de Confiance המסוף. פשוט ממשיכים לעבוד בכרטיסיית העריכה שמכילה את הסשן. עם זאת, אם רוצים להפנות לסשן ב-Cloud Shell או בקריאה ל-API, צריך לדעת את המזהה של הסשן שנוצר במסוף.
לפני שמבצעים את השלבים האלה, חשוב לוודא שהפעלתם לפחות שאילתה אחת בסשן פעיל.
במסוף Cloud de Confiance , עוברים לדף BigQuery.
לוחצים על הכרטיסייה של העורך שמכילה את הסשן.
בקטע תוצאות השאילתה, לוחצים על פרטי המשרה.
ברשימה Job information (פרטי המשימה), מחפשים את מזהה הסשן:
Session ID: CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ
BQ
כדי להריץ פקודות של שאילתות בסשן ב-Cloud Shell, צריך לכלול את מזהה הסשן בפקודה. אפשר לקבל את מזהה הסשן כשיוצרים סשן או כשמציגים את רשימת הסשנים.
כשיוצרים סשן באמצעות Cloud Shell, מזהה הסשן שמוחזר נראה בערך כך:
In session: CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ
API
כדי להעביר פקודות SQL לסשן באמצעות קריאה ל-API, צריך לכלול את מזהה הסשן בקריאה ל-API. אפשר לקבל את מזהה הסשן כשיוצרים סשן או כשמציגים את רשימת הסשנים.
כשיוצרים סשן באמצעות קריאה ל-API, מזהה הסשן בתגובה נראה בערך כך:
sessionId: CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ
הצגת רשימה של סשנים פעילים ולא פעילים
כדי לקבל את מזהי הסשנים של סשנים פעילים וסשנים לא פעילים, פועלים לפי השלבים הבאים:
המסוף
במסוף Cloud de Confiance , עוברים לדף BigQuery.
בחלונית הימנית, לוחצים על כלי הניתוחים:

אם החלונית הימנית לא מוצגת, לוחצים על הרחבת החלונית הימנית כדי לפתוח אותה.
בחלונית Explorer לוחצים על Job history.
בוחרים את סוג היסטוריית התעסוקה:
- כדי להציג מידע על המשרות האחרונות, לוחצים על היסטוריה אישית.
- כדי להציג מידע על משימות שבוצעו לאחרונה בפרויקט, לוחצים על Project history.
בעמודה מזהה הפעלה אפשר לראות את מזהי ההפעלה של העבודות.
SQL
כדי לקבל רשימה של שלושת הסשנים האחרונים, כולל הסשנים הפעילים והסשנים שהסתיימו, מריצים את השאילתה הבאה בכרטיסיית העריכה:
במסוף Cloud de Confiance , עוברים לדף BigQuery.
מזינים את ההצהרה הבאה בעורך השאילתות:
SELECT session_id, MAX(creation_time) AS last_modified_time FROM
region-us.INFORMATION_SCHEMA.VIEW WHERE session_id IS NOT NULL AND creation_time > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 20 DAY) GROUP BY session_id ORDER BY last_modified_time DESC;מחליפים את מה שכתוב בשדות הבאים:
-
VIEW: התצוגהINFORMATION_SCHEMA:-
JOBS_BY_USER: מחזירה רק את המשימות שנוצרו על ידי המשתמש הנוכחי בפרויקט הנוכחי -
SESSIONS_BY_USER: מחזירה רק את הסשנים שנוצרו על ידי המשתמש הנוכחי בפרויקט הנוכחי -
SESSIONS_BY_PROJECT: מחזירה את כל הסשנים בפרויקט הנוכחי
-
-
לוחצים על הפעלה.
מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.
התוצאה אמורה להיראות כך:
+-------------------------------------------------------------------------+ | session_id | last_modified_time | +-------------------------------------------------------------------------+ | CgwKCmZhbGl1LXRlc3QQARokMGQ5YWWYzZmE0YjhkMDBm | 2021-06-01 23:04:26 | | CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZTczwZjA1NDc2 | 2021-05-30 22:43:02 | | CgwKCmZhbGl1LXRlc3QQY2MzLTg4ZDEtYzVhOWZiYmM5NzZk | 2021-04-07 22:31:21 | +-------------------------------------------------------------------------+
צפייה בהיסטוריית הסשנים
בסשן מתועדות פעולות ה-SQL שלכם במסגרת זמן מסוימת. המידע הזה נשמר בהיסטוריה של הסשן. היסטוריית הסשנים מאפשרת לכם לעקוב אחרי השינויים שביצעתם בסשן. אם משימה נכשלת או מצליחה, היא נרשמת בהיסטוריית הסשנים, כך שתוכלו לחזור אליה מאוחר יותר ולראות מה עשיתם.
המסוף
כדי לראות את ההיסטוריה של סשן במסוף, אפשר לסנן את ההיסטוריה האישית או את ההיסטוריה של הפרויקט לפי מזהה הסשן כדי לראות את כל שאילתות ה-SQL שהופעלו בסשן ספציפי. Cloud de Confiance
נכנסים לדף BigQuery במסוף Cloud de Confiance .
בחלונית הימנית, לוחצים על כלי הניתוחים:

בחלונית Explorer לוחצים על Job history.
בוחרים את סוג היסטוריית המשרות שרוצים לראות:
- כדי להציג מידע על העבודות האחרונות, לוחצים על היסטוריה אישית.
- כדי להציג מידע על משימות שבוצעו לאחרונה בפרויקט, לוחצים על Project history (היסטוריית הפרויקט).
לוחצים על מסנן ואז בוחרים באפשרות מזהה סשן.
בשדה מזהה הפעלה, מחפשים את מזהה ההפעלה:
Session ID: CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ
SQL
כדי לראות נתונים היסטוריים של סשן ספציפי, קודם צריך לקבל את מזהה הסשן, ואז לפעול לפי השלבים הבאים:
במסוף Cloud de Confiance , עוברים לדף BigQuery.
מזינים את ההצהרה הבאה בעורך השאילתות:
SELECT * FROM region-us.INFORMATION_SCHEMA.VIEW WHERE session_info.session_id = 'SESSION_ID';
מחליפים את מה שכתוב בשדות הבאים:
VIEW: התצוגה
INFORMATION_SCHEMAשרוצים לעבוד איתהבוחרים באחד מהתצוגות הבאות:
-
JOBS_BY_USER: מחזירה רק את המשימות שנוצרו על ידי המשתמש הנוכחי בפרויקט הנוכחי -
SESSIONS_BY_USER: מחזירה רק את הסשנים שנוצרו על ידי המשתמש הנוכחי בפרויקט הנוכחי -
SESSIONS_BY_PROJECT: מחזירה את כל הסשנים בפרויקט הנוכחי
-
- SESSION_ID: המזהה של הסשן שעבורו רוצים לאחזר נתונים היסטוריים
לוחצים על הפעלה.
מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.
דוגמה
הפונקציה הבאה מחזירה את ההיסטוריה של סשן עם מזהה הסשן CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0. אפשר להחליף את מזהה הסשן הזה במזהה משלכם.
SELECT creation_time, query FROM region-us.INFORMATION_SCHEMA.JOBS_BY_USER WHERE session_info.session_id = 'CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0' AND creation_time > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 20 DAY);
התוצאה אמורה להיראות כך:
+---------------------+------------------------------------------------------------------------------------------+
| creation_time | query |
+---------------------+------------------------------------------------------------------------------------------+
| 2021-06-01 23:04:26 | SELECT * FROM Purchases; |
| 2021-06-01 23:02:51 | CREATE TEMP TABLE Purchases(total INT64) AS SELECT * FROM UNNEST([10,23,3,14,55]) AS a; |
+---------------------+------------------------------------------------------------------------------------------+