זמינות התכונות של SQL מדור קודם
במסמך הזה מתוארות הגבלות עתידיות על הזמינות של BigQuery SQL מדור קודם, שמבוססות על השימוש במהלך תקופת הערכה ויחולו אחרי 1 ביוני 2026. השינויים האלה הם חלק מהמעבר של BigQuery מ-SQL מדור קודם ל-GoogleSQL, הדיאלקט המומלץ, שתואם ל-ANSI, עבור BigQuery.
למעבר ל-GoogleSQL יש יתרונות בהשוואה ל-SQL מדור קודם:
- יכול להיות שיהיה יותר חסכוני להשתמש בסביבת זמן הריצה המתקדמת של BigQuery כדי לשפר את הביצועים.
- הוא מאפשר להשתמש בתכונות שלא נתמכות ב-SQL מדור קודם, כמו הצהרות DML ו-DDL, ביטויים של טבלאות משותפות (CTEs), שאילתות משנה מורכבות ופרדיקטים של הצטרפות, תצוגות מהותיות, אינדקסים של חיפוש ופונקציות של AI גנרטיבי.
איך עובדת הזמינות של התכונות
מערכת BigQuery עוקבת אחרי השימוש בתכונות של SQL מדור קודם במהלך תקופת הערכה. בארגונים ובפרויקטים שלא משתמשים ב-SQL מדור קודם בין 1 בנובמבר 2025 ל-1 ביוני 2026, SQL מדור קודם לא יהיה זמין אחרי שתקופת ההערכה תסתיים. בארגונים ובפרויקטים שמשתמשים ב-SQL מדור קודם במהלך תקופת ההערכה, אפשר להמשיך להריץ שאילתות באמצעות קבוצת התכונות הספציפית של SQL מדור קודם שבה אתם משתמשים.
השימוש בתכונות נצבר ברמת הארגון. אם פרויקט כלשהו בארגון משתמש בתכונה מסוימת, התכונה הזו תמשיך להיות זמינה לכל שאר הפרויקטים בארגון. בפרויקטים שלא משויכים לארגון, הזמינות של התכונות מנוהלת ברמת הפרויקט.
קבוצות התכונות של SQL מדור קודם
היכולות של SQL מדור קודם מאורגנות בשלוש קבוצות של תכונות: יכולות בסיסיות של השפה, יכולות מורחבות של השפה וקיבוצים של פונקציות. בקטעים הבאים מפורטים המאפיינים בכל קבוצה.
יכולות שפה בסיסיות
התכונות האלה הן הליבה של SQL מדור קודם. כל התכונות האלה זמינות לכל ארגון או פרויקט עצמאי שמריץ לפחות שאילתת SQL מדור קודם במהלך תקופת ההערכה.
| קטגוריה | תכונות |
|---|---|
| תחביר של שאילתות |
|
| לוגיקה של ביטויים | Literals:
אופרטורים לוגיים:
פונקציות השוואה:
הוראות בקרה על זרימת נתונים:
|
| פעולות בסיסיות | אופרטורים אריתמטיים:
פונקציות צבירה בסיסיות:
|
| רכיבי נתונים | סוגי נתונים בסיסיים:
סוגי נתונים מובְנים שנתמכים באופן חלקי:
פונקציות של Cast:
המרה כפויה: כל ההמרות הכפויות האוטומטיות של סוגי נתונים כלולות. |
יכולות שפה מורחבות
הקטגוריה הזו כוללת תכונות ספציפיות של SQL מדור קודם, שהן מעבר לסט הבסיסי. בניגוד ליכולות בסיסיות או לקבוצות של פונקציות, כל תכונה בקטגוריה הזו מתועדת בנפרד. כדי שהתכונה תמשיך להיות זמינה, צריך להשתמש בה באופן מפורש במהלך תקופת ההערכה.
קיבוצים של פונקציות
הפונקציות המובנות מאורגנות בקטגוריות קשורות. אם משתמשים בפונקציה אחת בתוך קבוצה במהלך תקופת ההערכה, כל הפונקציות בקבוצה הזו יהיו זמינות.
| קיבוץ פונקציות | פונקציות |
|---|---|
| פונקציות מתקדמות (window functions) |
|
| פונקציות צבירה לנתונים סטטיסטיים |
|
| פונקציות צבירה שמחזירות שדה חוזר |
|
| פונקציות צבירה עם פעולות על ביטים |
|
| פונקציות צבירה עם שרשור |
|
| פונקציות צבירה עם מיון |
|
| פונקציות בסיסיות (window functions) |
|
| פונקציות לביצוע פעולות ברמת הביטים |
|
| ביטויים מותנים |
|
| פונקציות המרה |
|
| פונקציות של השעה הנוכחית |
|
| פונקציות של המשתמש הנוכחי |
|
| פונקציות של תאריך ושעה |
|
| הפונקציה RAND |
|
| פונקציות שמחזירות שדה חוזר |
|
| פונקציות גיבוב (hashing) |
|
| פונקציות IP |
|
| פונקציות JSON |
|
| פונקציות מתמטיות |
|
| פונקציות מתמטיות היפרבוליות |
|
| חלק מפונקציות של חותמות זמן |
|
| פונקציות של ביטויים רגולריים |
|
| פונקציות מחרוזת |
|
| פונקציות של כתובות URL |
|
| פונקציות של חותמת זמן ב-UNIX |
|
דוגמאות לזמינות של תכונות
בדוגמאות הבאות מוסבר איך עובדת הזמינות של התכונות.
דוגמה: גישה ליכולות שפה בסיסיות
פרויקט מריץ שאילתת SQL מדור קודם במהלך תקופת ההערכה. נניח שהטבלה T מכילה עמודה X מסוג INTEGER.
#legacySQL
SELECT X FROM T
השימוש הזה מבטיח שכל הפרויקטים בארגון יוכלו להריץ שאילתות שמשתמשות בכל תכונה מתוך קבוצת היכולות הבסיסיות של השפה. לדוגמה, השאילתה הבאה ממשיכה לפעול:
#legacySQL
SELECT X FROM T WHERE X > 10
דוגמה: שימוש בקבוצות של פונקציות
פרויקט משתמש בפונקציה אחת מתוך קבוצת פונקציות ספציפית. נניח שהטבלה T
מכילה עמודה X מסוג FLOAT.
#legacySQL
SELECT SIN(X) FROM T
השימוש בפונקציה SIN() מאפשר להשתמש בכל הפונקציות המתמטיות. לכן, כל הפרויקטים בארגון יכולים להשתמש בכל פונקציה אחרת מהקיבוץ הזה, כמו COS().
#legacySQL
SELECT COS(X) FROM T
לעומת זאת, השאילתה הבאה תיכשל אחרי תקופת ההערכה אם אף פרויקט בארגון לא משתמש בפונקציה כלשהי מתוך פונקציות הצבירה לקיבוץ נתונים סטטיסטיים.
#legacySQL
SELECT STDDEV(X) FROM T
דוגמה: שמירת תכונות בטבלאות שונות
נניח שלטבלה X יש עמודה A (INTEGER) ולטבלה Y יש עמודה B (FLOAT). פרויקט מריץ את השאילתה הבאה במהלך תקופת ההערכה:
#legacySQL
SELECT SIN(A) FROM X
הארגון יכול להריץ את השאילתה הבאה אחרי תקופת ההערכה.
השאילתה פועלת כי התכונה של פונקציות מתמטיות נשמרה על ידי השאילתה הראשונה. השמירה לא תלויה בטבלה הספציפית, בשם העמודה או בסוג הנתונים שבהם נעשה שימוש, כי גם INTEGER וגם FLOAT הם חלק מהיכולות הבסיסיות של השפה.
#legacySQL
SELECT COS(B) FROM Y
דוגמה: שאילתה מורכבת
נניח שהטבלה T מכילה עמודה X מסוג STRING. במהלך תקופת ההערכה, הפרויקט מריץ את השאילתה הבאה:
#legacySQL
SELECT value, AVG(FLOAT(value)) OVER (ORDER BY value) AS avg
FROM (
SELECT LENGTH(SPLIT(X, ',')) AS value
FROM T
)
השאילתה הזו משתמשת בתכונות של יכולות השפה הבסיסיות ובשלוש קבוצות של פונקציות: פונקציות חלון בסיסיות, פונקציות מחרוזת ופונקציות שמחזירות ערכים חוזרים. כל הפרויקטים בארגון ימשיכו לכלול את התכונות האלה. לכן, שאילתה חדשה שמשתמשת בשילוב אחר של פונקציות מאותן קבוצות תכונות שנשמרו תצליח.
#legacySQL
SELECT value, COUNT(STRING(value)) OVER (ORDER BY value) as count
FROM (
SELECT CONCAT(SPLIT(X, ','), '123') AS value
FROM T
)
שאלות נפוצות
האם ארגון חדש יכול להשתמש ב-SQL מדור קודם?
אחרי תקופת ההערכה, SQL מדור קודם לא זמין לארגונים או לפרויקטים חדשים. במקרים מיוחדים, אפשר לבקש פטור. אם אין לכם גישה ל-Google Forms, אתם יכולים לשלוח אימייל לכתובת bq-legacysql-support@google.com עם מזהה הארגון, רמות השימוש הנוכחיות, תאריך השימוש האחרון, אתגרים בהעברה וציר זמן משוער למעבר ל-GoogleSQL.
האם שאילתות קיימות של SQL מדור קודם יפסיקו לפעול?
שאילתות קיימות ימשיכו לפעול כל עוד נעשה שימוש בכל התכונות של SQL מדור קודם שבהן הן משתמשות לפחות בפרויקט אחד בארגון במהלך תקופת ההערכה. יכול להיות ששאילתה תיכשל אם היא מסתמכת על תכונה שלא הייתה בשימוש במהלך התקופה הזו, ולכן מומלץ לוודא שכל השאילתות החשובות מופעלות.
האם ארגון קיים שמשתמש ב-SQL מדור קודם יכול ליצור פרויקטים חדשים שמשתמשים גם הם ב-SQL מדור קודם?
כן. כל התכונות שפרויקט כלשהו בארגון שלכם ניגש אליהן במהלך תקופת ההערכה ממשיכות להיות זמינות לכל הפרויקטים בארגון, ישנים וחדשים.
האם יש כלי לבדיקה של תכונות SQL מדור קודם שבהן הארגון שלי משתמש?
אין כלי לביקורת של שימוש בתכונות ספציפיות. אפשר לעקוב אחרי השימוש ב-SQL מדור קודם באמצעות שאילתות בתצוגות INFORMATION_SCHEMA.JOBS, כמו שמתואר במאמר ספירת משימות של שאילתות SQL מדור קודם לכל פרויקט.
אפשר גם לבדוק את יומני השאילתות ב-Cloud Logging כדי לראות איך נעשה שימוש בתחביר ספציפי.
האם צריך לעבור ל-GoogleSQL?
ההעברה לא נדרשת, אבל מומלצת. GoogleSQL הוא הניב המודרני, המומלץ והמלא.
מה קורה אם שאילתת SQL מדור קודם שלא נמצאת בשימוש לעיתים קרובות לא מופעלת במהלך תקופת ההערכה?
כדי לוודא ששאילתה ממשיכה לפעול, מריצים אותה פעם אחת במהלך תקופת ההערכה. אם לא תוכלו להפעיל אותו בזמן הזה, תוכלו לבקש פטור. אם אין לכם גישה ל-Google Forms, אפשר לשלוח אימייל לכתובת bq-legacysql-support@google.com עם מזהה הארגון, רמות השימוש הנוכחיות, תאריך השימוש האחרון, אתגרים בהעברה וציר זמן משוער למעבר ל-GoogleSQL.
המאמרים הבאים
- כדי להעביר את השאילתות מ-SQL מדור קודם ל-GoogleSQL, אפשר לעיין במדריך להעברת נתונים.