מבוא לשאילתות מתמשכות
במסמך הזה מתוארות שאילתות רציפות ב-BigQuery.
שאילתות מתמשכות ב-BigQuery הן הצהרות SQL שמופעלות באופן רציף. שאילתות רציפות מאפשרות לכם לנתח נתונים נכנסים ב-BigQuery בזמן אמת. אפשר להוסיף את שורות הפלט שנוצרות על ידי שאילתה מתמשכת לטבלה ב-BigQuery או לייצא אותן ל-Pub/Sub, ל-Bigtable או ל-Spanner. שאילתות רציפות יכולות לעבד נתונים שנכתבו בטבלאות BigQuery רגילות באחת מהשיטות הבאות:
- BigQuery Storage Write API
- השיטה
tabledata.insertAll - טעינה באצווה
- פקודת ה-DML
INSERT - כתיבה מתוצאות של שאילתת אצווה לטבלה קבועה
- כתיבה מתוצאות של שאילתה מתמשכת ב-BigQuery לטבלה קבועה
- הרשמה ל-Pub/Sub BigQuery
- פעולות כתיבה מ-Dataflow ל-BigQuery
- פעולות כתיבה מ-Datastream ל-BigQuery באמצעות מצב כתיבה של הוספה בלבד
אפשר להשתמש בשאילתות רציפות כדי לבצע משימות שרגישות לזמן, כמו יצירת תובנות ופעולה מיידית על סמך התובנות, הפעלת הסקה של למידת מכונה (ML) בזמן אמת ושכפול נתונים בפלטפורמות אחרות. כך תוכלו להשתמש ב-BigQuery כמנוע לעיבוד נתונים מבוסס-אירועים ללוגיקת ההחלטות של האפליקציה.
התרשים הבא מציג תהליכי עבודה נפוצים של שאילתות מתמשכות:
תרחישים לדוגמה
אלה כמה תרחישי שימוש נפוצים שבהם כדאי להשתמש בשאילתות רציפות:
- שירותים של אינטראקציה מותאמת אישית עם לקוחות: שימוש ב-AI גנרטיבי ליצירת הודעות מותאמות אישית לכל אינטראקציה עם לקוח.
- זיהוי אנומליות: בניית פתרונות שמאפשרים לכם לבצע זיהוי אנומליות ואיומים על נתונים מורכבים בזמן אמת, כדי שתוכלו להגיב לבעיות מהר יותר.
- צינורות עיבוד נתונים מותאמים אישית שמבוססים על אירועים: אפשר להשתמש בשילוב של שאילתה מתמשכת עם Pub/Sub כדי להפעיל אפליקציות במורד הזרם על סמך נתונים נכנסים.
- העשרת נתונים וחילוץ ישויות: אפשר להשתמש בשאילתות רציפות כדי לבצע העשרה וטרנספורמציה של נתונים בזמן אמת באמצעות פונקציות SQL ומודלים של ML.
- הפוך ETL: ביצוע הפוך ETL בזמן אמת למערכות אחסון אחרות שמתאימות יותר להצגת אפליקציות עם זמן אחזור נמוך. לדוגמה, ניתוח או שיפור של נתוני אירועים שנכתבים ב-BigQuery, ואז העברתם בסטרימינג ל-Bigtable או ל-Spanner לצורך הצגה באפליקציה.
פעולות נתמכות
הפעולות הבאות נתמכות בשאילתות רציפות:
- הפעלת הצהרות
INSERTכדי לכתוב נתונים משאילתה מתמשכת לטבלה ב-BigQuery. הפעלת הצהרות
EXPORT DATAכדי לפרסם פלט של שאילתות מתמשכות בנושאי Pub/Sub. מידע נוסף זמין במאמר בנושא ייצוא נתונים ל-Pub/Sub.מנושא Pub/Sub אפשר להשתמש בנתונים עם שירותים אחרים, למשל לבצע ניתוח נתונים בזמן אמת באמצעות Dataflow, או להשתמש בנתונים בתהליך עבודה של שילוב אפליקציות.
הפעלת הצהרות
EXPORT DATAכדי לייצא נתונים מ-BigQuery אל טבלאות Bigtable. מידע נוסף זמין במאמר בנושא ייצוא נתונים ל-Bigtable.הפעלת הצהרות
EXPORT DATAכדי לייצא נתונים מ-BigQuery לטבלאות Spanner. מידע נוסף זמין במאמר בנושא ייצוא נתונים ל-Spanner (תהליך ETL הפוך).הפעלת הפונקציות הבאות שמבוססות על AI גנרטיבי:
AI.GENERATE-
- כדי להשתמש בפונקציה הזו, צריך מודל מרוחק של BigQuery ML מעל מודל של Vertex AI.
הפעלת פונקציות ה-AI הבאות:
כדי להשתמש בפונקציות האלה, צריך מודל מרוחק של BigQuery ML דרך Cloud AI API.
נרמול של נתונים מספריים באמצעות הפונקציה
ML.NORMALIZER.שימוש בפונקציות של GoogleSQL בלי שמירת מצב – לדוגמה, פונקציות המרה. בפונקציות חסרות מצב, כל שורה מעובדת בנפרד משאר השורות בטבלה.
שימוש בפונקציה של היסטוריית השינויים
APPENDSכדי להתחיל עיבוד של שאילתה מתמשכת מנקודת זמן ספציפית.
הרשאה
Google Cloud אסימוני הגישה שמשמשים להרצת משימות של שאילתות מתמשכות, כוללים אורך חיים (TTL) של יומיים כשהם נוצרים על ידי חשבון משתמש. לכן, משימות כאלה מפסיקות לפעול אחרי יומיים. אסימוני הגישה שנוצרים על ידי חשבונות שירות יכולים לפעול למשך זמן ארוך יותר, אבל הם עדיין צריכים לעמוד בדרישות של זמן הריצה המקסימלי של השאילתה. מידע נוסף זמין במאמר הפעלת שאילתה מתמשכת באמצעות חשבון שירות.
מיקומים
רשימת האזורים הנתמכים זמינה במאמר מיקומים של שאילתות מתמשכות ב-BigQuery.
מגבלות
ההגבלות הבאות חלות על שאילתות מתמשכות:
- שאילתות רציפות ב-BigQuery לא שומרות את מצב הנתונים שהועברו. אין תמיכה בפעולות נפוצות שמסתמכות על מצב, כמו
JOIN, פונקציית צבירה או פונקציה אנליטית (window function). אי אפשר להשתמש ביכולות ה-SQL הבאות בשאילתה מתמשכת:
JOINפעולות- פונקציות צבירה
- פונקציות צבירה משוערות
הסעיפים הבאים של השאילתה:
האופרטורים הבאים של שאילתות:
פונקציות BigQuery ML שלא מופיעות בפעולות הנתמכות
הצהרות של שפת טיפול בנתונים (DML) חוץ מ-
INSERT.EXPORT DATAהצהרות שלא מכוונות ל-Bigtable, ל-Pub/Sub או ל-Spanner.
שאילתות רציפות לא תומכות במקורות הנתונים הבאים:
- טבלאות חיצוניות.
- תצוגות של סכימת מידע.
- טבלאות BigLake ל-Apache Iceberg ב-BigQuery.
- טבלאות עם תווים כלליים לחיפוש.
- עדכון נתונים (upsert) באמצעות סימון נתונים שהשתנו (CDC)
- תצוגות מהותיות.
- תצוגות שמוגדרות על ידי מגבלות אחרות של שאילתות מתמשכות, כמו פעולות
JOIN, פונקציות צבירה וטבלאות שמופעל בהן סימון נתונים שהשתנו (CDC).
שאילתות רציפות לא תומכות בתכונות האבטחה column- וברמת השורה.
הפלט של שאילתה מתמשכת כפוף למכסות ולמגבלות המובנות של שירות היעד שאליו מיוצא הפלט.
כשמייצאים נתונים ל-Bigtable, ל-Spanner או לנקודות קצה אזוריות של Pub/Sub, אפשר לטרגט רק משאבים של Bigtable, Spanner או Pub/Sub שנמצאים באותו גבול אזורי של מערך הנתונים ב-BigQuery שמכיל את הטבלה שממנה מתבצעת השאילתה. Google Cloudהמגבלה הזו לא חלה כשמייצאים נתונים לנקודות קצה (endpoints) גלובליות של Pub/Sub. מידע נוסף על ייצוא למדיניות ניתוב של פרופיל אפליקציה ב-Bigtable זמין במאמר שיקולים לגבי מיקום.
אי אפשר להריץ שאילתה מתמשכת מקנבס נתונים.
אי אפשר לשנות את ה-SQL שמשמש בשאילתה מתמשכת בזמן שהעבודה של השאילתה המתמשכת פועלת. מידע נוסף זמין במאמר בנושא שינוי ה-SQL של שאילתה מתמשכת.
אם משימת שאילתה מתמשכת מפגרת בעיבוד הנתונים הנכנסים והעיכוב של סימן המים של הפלט הוא יותר מ-48 שעות, המשימה נכשלת. אפשר להריץ את השאילתה שוב ולהשתמש בפונקציה
APPENDSשל היסטוריית השינויים כדי להמשיך את העיבוד מהנקודה בזמן שבה הפסקתם את משימת השאילתה המתמשכת הקודמת. מידע נוסף זמין במאמר בנושא הפעלת שאילתה מתמשכת מנקודת זמן מסוימת.שאילתה מתמשכת שהוגדרה עם חשבון משתמש יכולה לפעול עד יומיים. שאילתה מתמשכת שהוגדרה עם חשבון שירות יכולה לפעול למשך עד 150 ימים. כשהשאילתה מגיעה לזמן הריצה המקסימלי, היא נכשלת ומפסיקה לעבד נתונים נכנסים.
למרות ששאילתות רציפות מבוססות על תכונות האמינות של BigQuery, יכולות להתרחש בעיות זמניות מדי פעם. בעיות עלולות להוביל לעיבוד מחדש אוטומטי של חלק מהשאילתה המתמשכת, מה שעלול לגרום לשכפול נתונים בפלט של השאילתה המתמשכת. חשוב לתכנן את המערכות במורד הזרם כך שיוכלו להתמודד עם תרחישים כאלה.
מגבלות על הזמנות
- כדי להריץ שאילתות רציפות, צריך ליצור הזמנות במהדורת Enterprise או במהדורת Enterprise Plus. שאילתות רציפות לא תומכות במודל החיוב על פי דרישה.
- כשיוצרים
CONTINUOUSהקצאת הזמנה, ההזמנה המשויכת מוגבלת ל-500 משבצות לכל היותר. כדי לבקש להגדיל את המגבלה הזו, אפשר לפנות לכתובת bq-continuous-queries-feedback@google.com. - אי אפשר ליצור הקצאת הזמנה שמשתמשת בסוג עבודה שונה באותה הזמנה כמו הקצאת הזמנה של שאילתה מתמשכת.
- אי אפשר להגדיר את הבו-זמניות של שאילתה מתמשכת. BigQuery קובע באופן אוטומטי את מספר השאילתות המתמשכות שיכולות לפעול בו-זמנית, על סמך הקצאות הזמנות זמינות שמשתמשות בסוג העבודה
CONTINUOUS. - כשמריצים כמה שאילתות רציפות באמצעות אותה הזמנה, יכול להיות שהמשאבים הזמינים לא יחולקו באופן הוגן בין המשימות השונות, כפי שמוגדר בהוגנות ב-BigQuery.
התאמה אוטומטית לעומס של מיקומי מודעות
שאילתות מתמשכות יכולות להשתמש בהתאמה אוטומטית לעומס של משבצות כדי לשנות באופן דינמי את גודל הקיבולת שהוקצתה בהתאם לעומס העבודה. ככל שעומס העבודה של השאילתות הרציפות גדל או קטן, BigQuery משנה את יחידות הקיבולת באופן דינמי.
אחרי שמתחילים להריץ שאילתה רציפה, היא מאזינה באופן פעיל לנתונים נכנסים, וזה צורך משאבי משבצות. הזמנה עם שאילתה מתמשכת פעילה לא מצטמצמת לאפס משבצות, אבל שאילתה מתמשכת בלי פעילות שמיועדת בעיקר להאזנה לנתונים נכנסים צפויה לצרוך כמות מינימלית של משבצות, בדרך כלל משבצת אחת.
שיתוף משבצות זמן פנויות
שאילתות מתמשכות יכולות להשתמש בשיתוף של משבצות זמן פנויות כדי לשתף משאבים של משבצות זמן לא בשימוש עם הזמנות אחרות וסוגי משימות.
- עדיין נדרש
CONTINUOUSהקצאת הזמנה כדי להריץ שאילתה מתמשכת, ואי אפשר להסתמך רק על משבצות זמן פנויות מהזמנות אחרות. לכן, הקצאת הזמנה שלCONTINUOUSמחייבת הגדרת בסיס של משבצות זמן שאינו אפס או הגדרת קנה מידה אוטומטי של משבצות זמן שאינו אפס. - אפשר לשתף רק משבצות זמן בסיסיות פנויות או משבצות זמן שהוקצו מתוך הקצאת הזמנה של
CONTINUOUS. אי אפשר לשתף משבצות שגודלן משתנה אוטומטית כמשבצות פנויות להזמנות אחרות.
תמחור
שאילתות רציפות משתמשות בתמחור של קיבולת מחשוב ב-BigQuery, שנמדדת ביחידות קיבולת (Slot).
כדי להריץ שאילתות רציפות, צריך הזמנה שמשתמשת במהדורות Enterprise או Enterprise Plus, והקצאת הזמנה שמשתמשת בסוג המשימה CONTINUOUS.
השימוש במשאבים אחרים של BigQuery, כמו הטמעה ואחסון של נתונים, מחויב לפי התעריפים שמופיעים בתמחור של BigQuery.
השימוש בשירותים אחרים שמקבלים תוצאות של שאילתות מתמשכות או שמתבצעת אליהם קריאה במהלך העיבוד של שאילתות מתמשכות, מחויב בתעריפים שפורסמו עבור השירותים האלה. למידע על התמחור של שירותים אחרים של Google Cloud שאילתות רציפות, אפשר לעיין בנושאים הבאים:
המאמרים הבאים
אפשר לנסות ליצור שאילתה מתמשכת.