סנכרון של מערכי נתונים אונליין ואופליין באמצעות BigQuery DataFrames
באמצעות Bigtable עם BigQuery, אפשר ליצור מסד נתונים של ניתוח בזמן אמת ולהשתמש בו בצינורות של למידת מכונה (ML). כך תוכלו לשמור על סנכרון הנתונים, לתמוך במניפולציה של נתונים ובפיתוח מודלים (גישה אופליין) ובשירות אפליקציות עם זמן אחזור נמוך (גישה אונליין).
כדי ליצור מסד נתונים לניתוח בזמן אמת, אפשר להשתמש ב-BigQuery DataFrames, שהם קבוצה של ספריות Python בקוד פתוח לעיבוד נתונים ב-BigQuery. באמצעות BigQuery DataFrames אפשר לפתח ולאמן מודלים ב-BigQuery, ולשכפל אוטומטית עותק של ערכי הנתונים האחרונים שמשמשים למודלים של למידת מכונה ב-Bigtable לצורך הצגה אונליין.
במאמר הזה מוסבר איך להשתמש ב-bigframes.streaming API כדי ליצור משימות BigQuery שמשכפלות ומסנכרנות באופן אוטומטי מערכי נתונים ב-BigQuery וב-Bigtable. לפני שתקראו את המסמך הזה, חשוב שתבינו את המסמכים הבאים:
- סקירה כללית של Bigtable
- סקירה כללית על BigQuery
- איך יוצרים מסד נתונים לניתוח בזמן אמת באמצעות Bigtable ו-BigQuery
BigQuery DataFrames
בעזרת BigQuery DataFrames אפשר לפתח ולאמן מודלים ב-BigQuery, ולשכפל באופן אוטומטי עותק של ערכי הנתונים העדכניים ביותר שמשמשים למודלים של למידת מכונה ב-Bigtable לצורך הצגה אונליין. היא מאפשרת לכם:
- פיתוח טרנספורמציות של נתונים בממשק שתואם ל-Pandas (
bigframes.pandas) ישירות מול נתונים ב-BigQuery - אימון מודלים באמצעות API שדומה ל-scikit-learn (
bigframes.ML) - סנכרון הנתונים שנדרשים להסקת מסקנות עם זמן אחזור נמוך באמצעות Bigtable (
bigframes.streaming) כדי לתמוך באפליקציות שפונות למשתמשים
BigFrames StreamingDataFrame
bigframes.streaming.StreamingDataFrame הוא סוג של DataFrame בחבילת BigQuery DataFrames. הוא מאפשר ליצור אובייקט StreamingDataFrame שאפשר להשתמש בו כדי ליצור משימה שפועלת ברציפות ומזרימה נתונים מטבלת BigQuery ייעודית אל Bigtable לצורך הצגה באינטרנט. הפעולה הזו מתבצעת על ידי יצירה של
שאילתות רציפות ב-BigQuery.
BigFrames StreamingDataFrame יכול לבצע את הפעולות הבאות:
- יצירת
StreamingDataFrameמטבלה ייעודית ב-BigQuery - אופציונלי: מבצעים פעולות נוספות של Pandas כמו בחירה, סינון ותצוגה מקדימה של התוכן.
- יצירה וניהול של משימות סטרימינג ל-Bigtable
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות לשימוש ב-BigQuery DataFrames במחברת BigQuery, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
כדי לקבל את ההרשאות שדרושות לכתיבת נתונים לטבלת Bigtable, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
קדימה, מתחילים
BigQuery DataFrames היא חבילה בקוד פתוח. כדי להתקין את הגרסה העדכנית, מריצים את הפקודה pip install --upgrade bigframes.
כדי ליצור את BigFrames StreamingDataFrame הראשון ולסנכרן נתונים בין BigQuery ל-Bigtable, מריצים את קטע הקוד הבא.
דוגמת הקוד המלאה זמינה במחברת GitHub BigFrames
StreamingDataFrame.
import bigframes.streaming as bst
bigframes.options._bigquery_options.project = "PROJECT"
sdf = bst.read_gbq_table("birds.penguins_bigtable_streaming")
job = sdf.to_bigtable(instance="BIGTABLE_INSTANCE",
table="TABLE",
app_profile=None,
truncate=True,
overwrite=True,`
auto_create_column_families=True,
bigtable_options={},
job_id=None,
job_id_prefix= "test_streaming_",)
print(job.running())
print(job.error_result)
מחליפים את מה שכתוב בשדות הבאים:
- PROJECT: מזהה הפרויקט ב- Google Cloud
- BIGTABLE_INSTANCE: המזהה של מופע Bigtable שמכיל את הטבלה שכותבים אליה
- TABLE: המזהה של טבלת Bigtable שכותבים אליה
אחרי שהמשימה מאותחלת, היא פועלת כשאילתה רציפה ב-BigQuery ומעבירה בסטרימינג את כל שינויי הנתונים אל Bigtable.
עלויות
אין חיובים נוספים על שימוש ב-BigQuery BigFrames API, אבל יש חיובים על המשאבים הבסיסיים שמשמשים לשאילתות רציפות, ל-Bigtable ול-BigQuery.
שאילתות רציפות משתמשות בתמחור של יכולת החישוב של BigQuery, שנמדדת ביחידות קיבולת (Slot). כדי להריץ שאילתות מתמשכות, צריך מקום שמור שמשתמש במהדורת Enterprise או Enterprise Plus והקצאת מקום שמור שמשתמשת בסוג העבודה CONTINUOUS.
השימוש במשאבים אחרים של BigQuery, כמו הטמעה ואחסון של נתונים, מחויב לפי התעריפים שמופיעים בתמחור של BigQuery.
השימוש בשירותי Bigtable שמקבלים תוצאות של שאילתות מתמשכות מחויב לפי התעריפים של תמחור Bigtable.
מגבלות
כל המגבלות שקשורות לתכונות ולמיקום שחלות על שאילתות רציפות חלות גם על מסגרות נתונים של סטרימינג.
המאמרים הבאים
- איך מתחילים להשתמש ב-Feast on Google Cloud
- ייעול הפיתוח של למידת מכונה באמצעות Feast
- שליחת שאילתות לנתוני Bigtable שמאוחסנים בטבלה חיצונית
- ייצוא נתונים מ-BigQuery ל-Bigtable