מבוא לשאילתות מתמשכות

במסמך הזה מתוארות שאילתות רציפות ב-BigQuery.

שאילתות מתמשכות ב-BigQuery הן הצהרות SQL שמופעלות באופן מתמשך. שאילתות רציפות מאפשרות לכם לנתח נתונים נכנסים ב-BigQuery בזמן אמת. אתם יכולים לכתוב או לייצא את שורות הפלט שנוצרו על ידי שאילתה מתמשכת ליעדים הבאים:

שאילתות רציפות יכולות לעבד נתונים שנכתבו בטבלאות BigQuery רגילות באחת מהשיטות הבאות:

אפשר להשתמש בשאילתות רציפות כדי לבצע משימות שרגישות לזמן, כמו יצירת תובנות ופעולה מיידית על סמך התובנות, החלת מסקנות של למידת מכונה (ML) בזמן אמת ושכפול נתונים בפלטפורמות אחרות. כך תוכלו להשתמש ב-BigQuery כמנוע לעיבוד נתונים מבוסס-אירועים ללוגיקת ההחלטות של האפליקציה.

התרשים הבא מציג תהליכי עבודה נפוצים של שאילתות מתמשכות:

דיאגרמה שממחישה תהליכי עבודה נפוצים של שאילתות מתמשכות ב-BigQuery, כולל הטמעת נתונים, עיבוד וייצוא ליעדים כמו Bigtable ו-Pub/Sub.

תרחישים לדוגמה

אלה כמה תרחישי שימוש נפוצים שבהם כדאי להשתמש בשאילתות רציפות:

  • שירותים מותאמים אישית לאינטראקציה עם לקוחות: שימוש ב-AI גנרטיבי ליצירת הודעות מותאמות אישית לכל אינטראקציה עם לקוח.
  • זיהוי אנומליות: אפשר לבנות פתרונות שיאפשרו לכם לזהות אנומליות ואיומים בנתונים מורכבים בזמן אמת, כדי שתוכלו להגיב לבעיות מהר יותר.
  • פייפליינים מותאמים אישית מבוססי-אירועים: אפשר להשתמש בשילוב של שאילתות מתמשכות עם Pub/Sub כדי להפעיל אפליקציות במורד הזרם על סמך נתונים נכנסים.
  • העשרת נתונים וחילוץ ישויות: אפשר להשתמש בשאילתות רציפות כדי לבצע העשרה וטרנספורמציה של נתונים בזמן אמת באמצעות פונקציות SQL ומודלים של ML.
  • העברת נתונים הפוכה של ETL: ביצוע העברת נתונים הפוכה של ETL בזמן אמת למערכות אחסון אחרות שמתאימות יותר להצגת אפליקציות עם זמן אחזור נמוך. לדוגמה, ניתוח או שיפור של נתוני אירועים שנכתבים ב-BigQuery, ואז העברתם בסטרימינג ל-Bigtable, ל-Spanner או לטבלאות מנוהלות של Apache Iceberg להצגה באפליקציה.
  • הפעלת סוכן אוטונומי: הפעלת צינורות נתונים מבוססי-סוכן בזמן אמת על סמך אירועים מורכבים שזוהו בפידים של נתונים בזמן אמת. לדוגמה, אפשר לעיין ב-Codelab בנושא יצירת סוכן נתונים מבוסס-אירועים באמצעות BigQuery ו-Agent Development Kit (ADK).
  • מעקב אחרי סוכנים אוטונומיים: פיתוח מעקב אוטומטי בזמן אמת והתראות לגבי אינטראקציות של סוכנים בזמן אמת באמצעות התוסף BigQuery agent analytics, שמעביר בסטרימינג את כל נתוני המעקב של הסוכנים, השימוש בכלים ויומני הפעילות ישירות ל-BigQuery כדי לספק תובנות מעמיקות לגבי כוח העבודה של ה-AI.

פונקציונליות נתמכת

הפעולות הבאות נתמכות בשאילתות רציפות:

פעולות נתמכות עם שמירת מצב

כדי לבקש תמיכה או לשלוח משוב על התכונה הזו, אפשר לשלוח אימייל לכתובת bq-continuous-queries-feedback@google.com.

פעולות עם שמירת מצב מאפשרות לביצוע שאילתות רציפות של ניתוח מורכב שדורש שמירת מידע בכמה שורות או מרווחי זמן. פונקציות בלי שמירת מצב מעבדות כל שורה בנפרד, אבל פעולות עם שמירת מצב שומרות את המצב של הנתונים שהוטמעו כדי לתמוך בפונקציות כמו JOINs, צבירות וצבירות של חלונות. היכולת הזו מאפשרת לכם ליצור קורלציה בין אירועים ממקורות שונים או לחשב מדדים לאורך זמן – כמו ממוצע של 30 דקות – על ידי אחסון הנתונים הנדרשים בזיכרון בזמן שהשאילתה פועלת.

שאילתות מתמשכות תומכות בפעולות הבאות עם שמירת מצב:

הרשאה

Google Cloud טוקני הגישה שמשמשים להרצת משימות של שאילתות מתמשכות, כוללים אורך חיים (TTL) של יומיים כשהם נוצרים על ידי חשבון משתמש. לכן, עבודות כאלה מפסיקות לפעול אחרי יומיים. אסימוני הגישה שנוצרים על ידי חשבונות שירות יכולים לפעול למשך זמן ארוך יותר, אבל הם עדיין צריכים לעמוד בדרישות של זמן הריצה המקסימלי של השאילתה. מידע נוסף זמין במאמר בנושא הפעלת שאילתה מתמשכת באמצעות חשבון שירות.

מיקומים

רשימת האזורים הנתמכים מופיעה במאמר מיקומים של שאילתות מתמשכות ב-BigQuery.

מגבלות

השאילתות המתמשכות כפופות למגבלות הבאות:

מגבלות על הזמנות

  • כדי להריץ שאילתות רציפות, צריך ליצור הזמנה של מהדורת Enterprise או מהדורת Enterprise Plus עם סוג הקצאה CONTINUOUS. שאילתות מתמשכות לא תומכות במודל החיוב על פי דרישה של Compute.
  • כשיוצרים CONTINUOUS הקצאת הזמנה, ההזמנה המשויכת מוגבלת ל-500 משבצות לכל היותר. כדי לבקש להגדיל את המגבלה הזו, אפשר לפנות אלינו בכתובת bq-continuous-queries-feedback@google.com.
  • אי אפשר ליצור הקצאת הזמנה שמשתמשת בסוג עבודה שונה באותה הזמנה כמו הקצאת הזמנה של שאילתה מתמשכת.
  • מערכת BigQuery קובעת את מספר השאילתות הרציפות שאפשר להריץ בו-זמנית לכל פרויקט על סמך הגודל המוגדר של הקצאת השמורה שמשתמשת בCONTINUOUS סוג העבודה. כדי לאפשר הרצה של משימות חדשות, BigQuery דורש סף של 10 יחידות קיבולת לכל משימת שאילתה רציפה. השאילתה לא בהכרח צורכת את כל 10 המשבצות במהלך הביצוע הרגיל. הסף הזה מבטיח שלכל שאילתה רציפה שפועלת תהיה קיבולת בסיסית מספקת של מחשוב כדי לטפל בעליות פתאומיות בנפח הנתונים הנכנסים, בלי שהעיבוד יתעכב או שהשיהוי יהיה גבוה.

    כדי לוודא שהשאילתות יתקבלו בהצלחה בלי להגיע למגבלות של מספר הפעולות בו-זמנית, מומלץ להשתמש בשינוי אוטומטי של מספר המשבצות. התאמה אוטומטית לעומס מאפשרת לשנות את השימוש הכולל במשבצות באופן דינמי על סמך הביקוש בפועל למשאבים. אתם יכולים להגדיר הקצאה קטנה יותר של משאבים כבסיס, ולהגדיר מגבלה מקסימלית של שינוי גודל אוטומטי שתכסה בנוחות את סף 10 המשבצות לכל שאילתה עבור השאילתות המקבילות הצפויות.

  • כשמריצים כמה שאילתות רציפות באמצעות אותה הזמנה, יכול להיות שהמשימות לא יחלקו את המשאבים הזמינים באופן הוגן, כפי שמוגדר בהוגנות ב-BigQuery.

התאמה אוטומטית לעומס של מכונות מזל

בשאילתות רציפות אפשר להשתמש בשינוי גודל אוטומטי של משבצות כדי לשנות באופן דינמי את הקיבולת שהוקצתה בהתאם לעומס העבודה. ככל שעומס העבודה של השאילתות הרציפות גדל או קטן, BigQuery מתאים את יחידות הקיבולת באופן דינמי.

אחרי שמתחילה הרצה של שאילתה רציפה, היא מאזינה באופן פעיל לנתונים נכנסים, וזה צורך משאבי משבצות. מקום שמור עם שאילתה מתמשכת פעילה לא מצטמצם אנכית לאפס יחידות קיבולת (Slots), אבל שאילתה מתמשכת בלי פעילות שמיועדת בעיקר להאזנה לנתונים נכנסים צפויה לצרוך כמות מינימלית של יחידות קיבולת (Slots), בדרך כלל יחידת קיבולת (Slot) אחת.

שיתוף משבצות זמן פנויות

שאילתות מתמשכות יכולות להשתמש בשיתוף יחידות קיבולת פנויות כדי לשתף משאבי יחידות קיבולת לא בשימוש עם מקומות שמורים אחרים וסוגי עבודות.

  • עדיין נדרש CONTINUOUS הקצאת מקום שמור כדי להריץ שאילתה מתמשכת, ואי אפשר להסתמך רק על יחידות קיבולת (Slot) פנויות ממקומות שמורים אחרים. לכן, הקצאת הזמנה של CONTINUOUS מחייבת הגדרה של בסיס משבצות שאינו אפס או הגדרה של שינוי גודל אוטומטי של משבצות שאינו אפס.
  • אפשר לשתף רק משבצות זמן פנויות או משבצות זמן שהוקצו מתוך הקצאת הזמנה של CONTINUOUS. אי אפשר לשתף יחידות קיבולת שגודלן משתנה אוטומטית כיחידות קיבולת פנויות למקומות שמורים אחרים.

תמחור

שאילתות רציפות יכולות להשתמש בהתאמה גמישה לעומס ב-BigQuery.

שאילתות רציפות משתמשות בתמחור של קיבולת מחשוב ב-BigQuery, שנמדדת ביחידות קיבולת (Slot). כדי להריץ שאילתות מתמשכות, צריך מקום שמור שמשתמש במהדורת Enterprise או Enterprise Plus והקצאת מקום שמור שמשתמשת בסוג העבודה CONTINUOUS.

השימוש במשאבים אחרים של BigQuery, כמו הטמעה ואחסון של נתונים, מחויב לפי התעריפים שמופיעים בתמחור של BigQuery.

השימוש בשירותים אחרים שמקבלים תוצאות של שאילתות מתמשכות או שמופעלים במהלך העיבוד של שאילתות מתמשכות מחויב בתעריפים שפורסמו עבור השירותים האלה. למידע על התמחור של שירותים אחרים של Google Cloud שאילתות רציפות, אפשר לעיין בנושאים הבאים:

הערכה של דרישות הקיבולת של יחידות הקיבולת (Slot)

מכיוון שכל עומס עבודה הוא שונה, לרוב אי אפשר להעריך מראש את מספר המשבצות המדויק עבור שאילתות רציפות. מספר המשבצות שנדרשות לשאילתות הרציפות תלוי בשילוב של כמה גורמים:

  • מספר השאילתות המתמשכות שפועלות בו-זמנית.
  • מורכבות הצהרת ה-SQL.
  • השימוש בפונקציות עיבוד עם שמירת מצב, כולל משכי זמן של חלונות, JOINs, וצבירות.
  • הקצב או המהירות של הנתונים הנכנסים.
  • המבנה והגודל של הנתונים שמועברים.

מבחינה קונספטואלית, אפשר להעריך את מספר יחידות הקיבולת (Slot) הכולל שנדרש כפונקציה של עומס העבודה של השאילתות המתמשכות:

Estimated Slots ≈ Number of continuous queries x ∑ (Data rate x Query complexity)

מכיוון שצריכת הסלוטים בפועל תלויה מאוד בעומס העבודה ובדפוסי הנתונים הייחודיים שלכם, הדרך הכי מדויקת להערכת העלות היא מעקב אחרי עבודה שמתבצעת. אפשר למדוד את השימוש המקסימלי ביחידת קיבולת (Slot) בהרצה מבודדת של שאילתה מתמשכת באמצעות תצוגות INFORMATION_SCHEMA. הוראות מפורטות ושאילתות לדוגמה למעקב אחר השימוש במשבצות לאורך זמן מופיעות במאמר בנושא הצגת מידע על צריכת משבצות.

המאמרים הבאים

אפשר לנסות ליצור שאילתה מתמשכת.