מבוא לשאילתות מתמשכות
במסמך הזה מתוארות שאילתות רציפות ב-BigQuery.
שאילתות מתמשכות ב-BigQuery הן הצהרות SQL שמופעלות באופן רציף. שאילתות רציפות מאפשרות לכם לנתח נתונים נכנסים ב-BigQuery בזמן אמת. אפשר להוסיף את שורות הפלט שנוצרו על ידי שאילתה מתמשכת לטבלה ב-BigQuery או לייצא אותן ל-Pub/Sub, ל-Bigtable או ל-Spanner. שאילתות רציפות יכולות לעבד נתונים שנכתבו בטבלאות BigQuery רגילות באחת מהשיטות הבאות:
- BigQuery Storage Write API
tabledata.insertAllשיטה- טעינה באצווה
- פקודת ה-DML
INSERT - שינוי של הצהרות בשפת טיפול בנתונים (DML) כמו
DELETE,UPDATEו-MERGEכשמייצאים נתונים ל-Pub/Sub. - כתיבה מתוצאות של שאילתת אצווה לטבלה קבועה
- כתיבה מתוצאות של שאילתה מתמשכת ב-BigQuery לטבלה קבועה
- הרשמה ל-Pub/Sub BigQuery
- פעולות כתיבה מ-Dataflow ל-BigQuery
- פעולות כתיבה מ-Datastream ל-BigQuery באמצעות מצב כתיבה של הוספה בלבד
אפשר להשתמש בשאילתות רציפות כדי לבצע משימות שרגישות לזמן, כמו יצירת תובנות ופעולה מיידית על סמך התובנות, הפעלת הסקה של למידת מכונה (ML) בזמן אמת ושכפול נתונים בפלטפורמות אחרות. כך תוכלו להשתמש ב-BigQuery כמנוע לעיבוד נתונים מבוסס-אירועים ללוגיקת ההחלטות של האפליקציה.
התרשים הבא מציג תהליכי עבודה נפוצים של שאילתות מתמשכות:
תרחישים לדוגמה
אלה כמה תרחישי שימוש נפוצים שבהם כדאי להשתמש בשאילתות רציפות:
- שירותים של אינטראקציות מותאמות אישית עם לקוחות: שימוש ב-AI גנרטיבי ליצירת הודעות מותאמות אישית לכל אינטראקציה עם לקוח.
- זיהוי אנומליות: בניית פתרונות שמאפשרים לכם לזהות אנומליות ואיומים בנתונים מורכבים בזמן אמת, כדי שתוכלו להגיב לבעיות מהר יותר.
- פייפליינים מותאמים אישית שמבוססים על אירועים: אפשר להשתמש בשילוב של שאילתה מתמשכת עם Pub/Sub כדי להפעיל אפליקציות downstream על סמך נתונים נכנסים.
- העשרת נתונים וחילוץ ישויות: שימוש בשאילתות רציפות כדי לבצע העשרה וטרנספורמציה של נתונים בזמן אמת באמצעות פונקציות SQL ומודלים של ML.
- העברת נתונים הפוכה של ETL: ביצוע העברת נתונים הפוכה של ETL בזמן אמת למערכות אחסון אחרות שמתאימות יותר להצגת אפליקציות עם זמן אחזור נמוך. לדוגמה, ניתוח או שיפור של נתוני אירועים שנכתבים ב-BigQuery, ואז העברתם ל-Bigtable או ל-Spanner כדי להציג אותם באפליקציה.
- הפעלת סוכנים אוטונומיים: הפעלת צינורות נתונים מבוססי-סוכנים בזמן אמת על סמך אירועים מורכבים שזוהו בפידים של נתונים בזמן אמת. לדוגמה, אפשר לעיין ב-Codelab בנושא יצירת סוכן נתונים מבוסס-אירועים באמצעות BigQuery ו-ADK.
- מעקב אחר סוכנים אוטונומיים: פיתוח מעקב אוטומטי והתראות בזמן אמת לגבי אינטראקציות של סוכנים בזמן אמת באמצעות התוסף BigQuery agent analytics, שמעביר בסטרימינג את כל נתוני המעקב של הסוכנים, השימוש בכלים ויומני הפעילות ישירות ל-BigQuery, כדי לספק תובנות מעמיקות לגבי כוח העבודה של ה-AI.
פונקציונליות נתמכת
הפעולות הבאות נתמכות בשאילתות רציפות:
- הפעלת הצהרות
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 שפועל על מודל של פלטפורמת הסוכנים של Gemini Enterprise.
הפעלת פונקציות ה-AI הבאות:
כדי להשתמש בפונקציות האלה, צריך מודל מרוחק של BigQuery ML דרך Cloud AI API.
נרמול של נתונים מספריים באמצעות הפונקציה
ML.NORMALIZER.ניתוח ועיבוד של נתוני
JSON, כולל תמיכה בפונקציות JSON ובביטול קינון של JSON.שימוש בפונקציות של GoogleSQL בלי שמירת מצב – לדוגמה, פונקציות המרה. בפונקציות חסרות מצב, כל שורה מעובדת בנפרד משאר השורות בטבלה.
שימוש בפעולות עם שמירת מצב – לדוגמה,
JOINs, צבירות וצבירות של חלונות. בפעולות עם שמירת מצב, המצב של הנתונים שהוזנו נשמר בכמה שורות או מרווחי זמן כדי לחשב תוצאה מדויקת.שימוש בפונקציה של היסטוריית השינויים
APPENDSכדי לעבד נתונים שצורפו מנקודת זמן ספציפית.שימוש בפונקציה של היסטוריית השינויים
CHANGESכדי לעבד נתונים שהשתנו, כולל נתונים שנוספו ושינויים, מנקודת זמן ספציפית כשמייצאים נתונים ל-Pub/Sub. עם זאת, אי אפשר להשתמש ב-CHANGESכשמבצעים פעולה עם שמירת מצב.
פעולות נתמכות עם שמירת מצב
כדי לבקש תמיכה או לשלוח משוב על התכונה הזו, אפשר לשלוח אימייל לכתובת bq-continuous-queries-feedback@google.com.
פעולות עם שמירת מצב מאפשרות לביצוע שאילתות רציפות ניתוח מורכב שדורש שמירת מידע בכמה שורות או מרווחי זמן. פונקציות בלי שמירת מצב מעבדות כל שורה בנפרד, אבל פעולות עם שמירת מצב שומרות את המצב של הנתונים שהוטמעו כדי לתמוך בפונקציות כמו JOINs, צבירות וצבירות של חלונות. היכולת הזו מאפשרת לכם ליצור קורלציה בין אירועים ממקורות שונים או לחשב מדדים לאורך זמן – כמו ממוצע של 30 דקות – על ידי אחסון הנתונים הנדרשים בזיכרון בזמן שהשאילתה פועלת.
שאילתות רציפות תומכות בפעולות הבאות עם שמירת מצב:
הרשאה
Cloud de Confiance אסימוני הגישה שמשמשים להרצת משימות של שאילתות מתמשכות, כוללים אורך חיים (TTL) של יומיים כשהם נוצרים על ידי חשבון משתמש. לכן, משימות כאלה מפסיקות לפעול אחרי יומיים. אסימוני הגישה שנוצרים על ידי חשבונות שירות יכולים לפעול למשך זמן ארוך יותר, אבל הם עדיין צריכים לעמוד בדרישות של זמן הריצה המקסימלי של השאילתה. מידע נוסף זמין במאמר בנושא הפעלת שאילתה מתמשכת באמצעות חשבון שירות.
מיקומים
רשימת האזורים הנתמכים זמינה במאמר מיקומים של שאילתות מתמשכות ב-BigQuery.
מגבלות
השאילתות המתמשכות כפופות למגבלות הבאות:
- המצב של הנתונים שהועברו נשמר רק עבור פעולות ספציפיות עם שמירת מצב בגרסת Preview.
למרות ששאילתות רציפות תומכות עכשיו בסוגים מסוימים של
JOIN, צבירות וצבירות של חלונות, הן מוגבלות לפעולות ספציפיות עם שמירת מצב. לא כל סוגי הפעולות עם שמירת מצב נתמכים. אי אפשר להשתמש ביכולות ה-SQL הבאות בשאילתה מתמשכת, אלא אם הן מופיעות כפעולה נתמכת עם שמירת מצב:
האופרטורים הבאים של שאילתות:
פונקציות BigQuery ML שלא מופיעות בפונקציונליות נתמכת
הצהרות של שפת טיפול בנתונים (DML) חוץ מ-
INSERT.EXPORT DATAהצהרות שלא מכוונות ל-Bigtable, ל-Pub/Sub או ל-Spanner.
שאילתות רציפות לא תומכות במקורות הנתונים הבאים:
- טבלאות חיצוניות.
- תצוגות של סכימת מידע.
- טבלאות מנוהלות של Apache Iceberg.
- טבלאות עם תווים כלליים לחיפוש.
- עדכון או הוספה של נתונים (upsert) באמצעות סימון נתונים שהשתנו (CDC) data.
- תצוגות מהותיות.
- תצוגות שמוגדרות על ידי מגבלות אחרות של שאילתות מתמשכות, כמו
JOINפעולות, פונקציות צבירה, פונקציות בהגדרת המשתמש או טבלאות שמופעל בהן סימון נתונים שהשתנו.
שאילתות רציפות לא תומכות בתכונות האבטחה column- וברמת השורה.
הפלט של שאילתה מתמשכת כפוף למכסות ולמגבלות המובנות של שירות היעד שאליו מיוצא הפלט.
כשמייצאים נתונים ל-Bigtable, ל-Spanner או לנקודות קצה אזוריות של Pub/Sub, אפשר לטרגט רק משאבים של Bigtable, Spanner או Pub/Sub שנמצאים באותו Cloud de Confianceגבול אזורי כמו מערך הנתונים ב-BigQuery שמכיל את הטבלה שמתבצעת עליה שאילתה. המגבלה הזו לא חלה כשמייצאים נתונים לנקודות קצה (endpoints) גלובליות של Pub/Sub. מידע נוסף על ייצוא אל פרופיל אפליקציה של Bigtable ומדיניות ניתוב זמין במאמר שיקולים לגבי מיקום.
אי אפשר להריץ שאילתה מתמשכת מקנבס נתונים.
אי אפשר לשנות את ה-SQL שמשמש בשאילתה מתמשכת בזמן שהעבודה של השאילתה המתמשכת פועלת. מידע נוסף זמין במאמר בנושא שינוי ה-SQL של שאילתה מתמשכת.
אם משימת שאילתה מתמשכת לא מצליחה לעבד את הנתונים הנכנסים בזמן ויש לה פיגור של חותמת זמן של פלט של יותר מ-48 שעות, היא נכשלת. אפשר להריץ את השאילתה שוב ולהשתמש בפונקציה של היסטוריית השינויים
APPENDSאוCHANGESכדי להמשיך את העיבוד מהנקודה בזמן שבה הפסקתם את העיבוד של משימת השאילתה המתמשכת הקודמת. מידע נוסף זמין במאמר בנושא הפעלת שאילתה מתמשכת מנקודת זמן מסוימת.שאילתה מתמשכת שהוגדרה עם חשבון משתמש יכולה לפעול עד יומיים. שאילתה מתמשכת שהוגדרה עם חשבון שירות יכולה לפעול למשך עד 150 ימים. כשהשאילתה מגיעה לזמן הריצה המקסימלי, היא נכשלת ומפסיקה לעבד נתונים נכנסים.
למרות ששאילתות רציפות מבוססות על תכונות האמינות של BigQuery, יכולות להתרחש בעיות זמניות מדי פעם. בעיות עלולות להוביל לעיבוד מחדש אוטומטי של חלק מהשאילתה המתמשכת, מה שעלול לגרום לשכפול נתונים בפלט של השאילתה המתמשכת. כדאי לתכנן את המערכות במורד הזרם כך שיוכלו להתמודד עם תרחישים כאלה.
מגבלות על הזמנות
- כדי להריץ שאילתות רציפות, צריך ליצור הזמנות במהדורת Enterprise או במהדורת Enterprise Plus. שאילתות רציפות לא תומכות במודל החיוב על פי דרישה.
- כשיוצרים
CONTINUOUSהקצאת הזמנה, ההזמנה המשויכת מוגבלת ל-500 משבצות לכל היותר. כדי לבקש להגדיל את המגבלה הזו, אפשר לפנות לכתובת bq-continuous-queries-feedback@google.com. - אי אפשר ליצור הקצאת מקום שמור שמשתמשת בסוג העבודה שונה באותו מקום שמור כמו הקצאת מקום שמור של שאילתה מתמשכת.
- אי אפשר להגדיר את הבו-זמניות של שאילתה מתמשכת. BigQuery קובע באופן אוטומטי את מספר השאילתות המתמשכות שיכולות לפעול בו-זמנית, על סמך הקצאות מקום שמור זמינות שמשתמשות בסוג העבודה
CONTINUOUS. - כשמריצים כמה שאילתות רציפות באמצעות אותה הזמנה, יכול להיות שהמשימות לא יחלקו את המשאבים הזמינים באופן הוגן, כפי שמוגדר בהוגנות ב-BigQuery.
התאמה אוטומטית לעומס של מיקומי מודעות
בשאילתות מתמשכות אפשר להשתמש בהתאמה אוטומטית לעומס של יחידות קיבולת כדי לשנות באופן דינמי את הקיבולת שהוקצתה בהתאם לעומס העבודה. ככל שעומס העבודה של השאילתות הרציפות גדל או קטן, BigQuery משנה את יחידות הקיבולת באופן דינמי.
אחרי שמתחילים להריץ שאילתה רציפה, היא מאזינה באופן פעיל לנתונים נכנסים, מה שצורך משאבי משבצות. מקום שמור עם שאילתה מתמשכת פעילה לא מצטמצם לאפס יחידות קיבולת (Slots), אבל שאילתה מתמשכת בלי פעילות שמיועדת בעיקר להאזנה לנתונים נכנסים צפויה לצרוך כמות מינימלית של יחידות קיבולת (Slots), בדרך כלל יחידת קיבולת (Slot) אחת.
שיתוף משבצות זמן פנויות
שאילתות מתמשכות יכולות להשתמש בשיתוף של יחידות קיבולת פנויות כדי לשתף משאבים של יחידות קיבולת לא בשימוש עם מקומות שמורים אחרים וסוגי משימות.
- עדיין נדרש
CONTINUOUSהקצאת מקום שמור כדי להריץ שאילתה מתמשכת, ואי אפשר להסתמך רק על יחידות קיבולת (Slot) פנויות ממקומות שמורים אחרים. לכן, הקצאת הזמנה שלCONTINUOUSמחייבת הגדרה של בסיס לאפס משבצות או של קנה מידה אוטומטי לאפס משבצות. - אפשר לשתף רק משבצות בסיס פנויות או משבצות שהוקצו מתוך הזמנה של
CONTINUOUS. אי אפשר לשתף יחידות קיבולת בהתאמה אוטומטית לעומס כיחידות קיבולת פנויות למקומות שמורים אחרים.
תמחור
שאילתות רציפות יכולות להשתמש בשינוי גודל דינמי ב-BigQuery.
שאילתות רציפות משתמשות בתמחור של קיבולת מחשוב ב-BigQuery, שנמדדת ביחידות קיבולת (Slot).
כדי להריץ שאילתות רציפות, צריך הזמנה שמשתמשת במהדורות Enterprise או Enterprise Plus, והקצאת הזמנה שמשתמשת בסוג העבודה CONTINUOUS.
השימוש במשאבים אחרים של BigQuery, כמו הטמעה ואחסון של נתונים, מחויב לפי התעריפים שמופיעים בתמחור של BigQuery.
השימוש בשירותים אחרים שמקבלים תוצאות של שאילתות מתמשכות או שמתבצעת אליהם קריאה במהלך העיבוד של שאילתות מתמשכות, מחויב בתעריפים שפורסמו עבור השירותים האלה. למידע על התמחור של שירותים אחרים של Cloud de Confiance by S3NS שאילתות רציפות, אפשר לעיין בנושאים הבאים:
המאמרים הבאים
אפשר לנסות ליצור שאילתה מתמשכת.