ניתוח נתונים מרובי-אופנים ב-BigQuery

במאמר הזה מתוארות התכונות של BigQuery שבהן אפשר להשתמש כדי לנתח נתונים מרובי-אופנים. חלק מהתכונות זמינותGoogle Cloud במסוף ובכלי שורת הפקודה של BigQuery, ואחרות זמינות באמצעות BigQuery DataFrames ב-Python. אתם יכולים להשתמש בכמה מהתכונות האלה יחד כדי להקל על ניתוח נתונים מרובי-אופנים ועל תהליכי עבודה של שינוי נתונים.

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

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

יתרונות

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

  • קומפוזביליות: אפשר לאחסן ולנהל נתונים מובְנים ולא מובְנים באותה שורה בטבלה רגילה באמצעות ערכי ObjectRef. לדוגמה, אפשר לאחסן תמונות של מוצר באותה שורה שבה מאוחסן שאר המידע על המוצר. אפשר להשתמש בפונקציות SQL סטנדרטי כדי ליצור ולעדכן עמודות שמכילות ערכים של ObjectRef, וליצור ערכים של ObjectRef כפלט של פעולת שינוי באובייקט.
  • שימוש בנתוני אובייקטים בהנחיות ל-AI גנרטיבי: שימוש בערכים של ObjectRefRuntime כקלט לפונקציות של AI גנרטיבי. לדוגמה, אפשר ליצור הטמעות של נתוני תמונות וטקסט מאותה טבלה. כשיוצרים טקסט וערכים סקלריים, אפשר גם להפנות לכמה אובייקטים בהנחיה ששולחים למודל. לדוגמה, אפשר ליצור הנחיה שבה מבקשים מהמודל להשוות בין שתי תמונות של בעלי חיים, ואז להחזיר טקסט שמציין אם מופיע בהן אותו סוג של בעל חיים.
  • שמירת סדר המקטעים: אפשר לחלק אובייקטים למקטעים ואז לאחסן את המקטעים כמערך של ערכי ObjectRef בעמודה רגילה בטבלה, כדי לשמור על הסדר שלהם. לדוגמה, אפשר לנתח תמונות מסרטון ואז לאחסן אותן כמערך של ערכי ObjectRef, כך שהתמונות יישארו באותו סדר שבו הן מופיעות בסרטון המקורי.

ערכים של ObjectRef

ערך ObjectRef הוא ערך STRUCT שמופיע בפורמט ObjectRef. אפשר לאחסן מטא-נתונים של אובייקטים ב-Cloud Storage ואמצעי אימות משויך בטבלה רגילה ב-BigQuery על ידי יצירת עמודה מסוג STRUCT או ARRAY<STRUCT> שמשתמשת בפורמט הזה. הערך של אמצעי ההרשאה מזהה את החיבור למשאב Cloud שבו BigQuery משתמש כדי לגשת לאובייקט ב-Cloud Storage.

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

אפשר ליצור ולעדכן ערכי ObjectRef באמצעות הפונקציות הבאות של GoogleSQL:

  • OBJ.MAKE_REF: יצירת ערך ObjectRef שמכיל מטא-נתונים של אובייקט ב-Cloud Storage.
  • OBJ.FETCH_METADATA: אחזור מטא-נתונים של Cloud Storage עבור ערך ObjectRef שאוכלס באופן חלקי בערכים uri ו-authorizer.

מידע נוסף זמין במאמר בנושא ציון עמודות ObjectRef בסכימות של טבלאות.

ערכים של ObjectRefRuntime

ערך ObjectRefRuntime הוא ערך JSON שמשתמש בסכימת ObjectRefRuntime. הערך של ObjectRefRuntime מכיל את המטא-נתונים של האובייקט ב-Cloud Storage מהערך של ObjectRef ששימש ליצירתו, אמצעי הרשאה משויך וכתובות URL לגישה. אתם יכולים להשתמש בכתובות ה-URL לגישה כדי לקרוא את האובייקט ב-Cloud Storage או לשנות אותו.

אפשר להשתמש בערכים ObjectRefRuntime כדי לעבוד עם נתוני אובייקטים בתהליכי עבודה של ניתוח והמרה. תוקף כתובות ה-URL לגישה בערכים של ObjectRefRuntime פג אחרי 6 שעות לכל היותר, אבל אפשר להגדיר זמן קצר יותר לתפוגה. אם אתם שומרים ערכים של ObjectRefRuntime במקום כלשהו כחלק מתהליך העבודה, כדאי לרענן את הנתונים האלה באופן קבוע. כדי לשמור את המטא-נתונים של האובייקט, צריך לאחסן ערכים של ObjectRef ואז להשתמש בהם כדי ליצור ערכים של ObjectRefRuntime כשצריך אותם. אין צורך לרענן את הערכים של ObjectRef אלא אם האובייקטים הבסיסיים ב-Cloud Storage משתנים.

יוצרים ערכים של ObjectRefRuntime באמצעות הפונקציה OBJ.GET_ACCESS_URL.

פונקציות של AI גנרטיבי

יצירת טקסט, הטמעות וערכים סקלריים על סמך קלט של ObjectRefRuntime פונקציות AI גנרטיביות באמצעות מודלים של Gemini:

עבודה עם נתונים מרובי-אופנים ב-Python

אפשר לנתח נתונים מרובי-אופנים ב-Python באמצעות מחלקות ושיטות של BigQuery DataFrames.

‫Multimodal DataFrames

יוצרים DataFrame מרובה-אופנים שמשלב נתונים מובנים ולא מובנים באמצעות השיטות הבאות של Session:

שיטות להמרת אובייקטים

כדי לבצע טרנספורמציה של נתוני אובייקט, משתמשים בשיטות הבאות של Series.BlobAccessor:

שיטות של AI גנרטיבי

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

טבלאות אובייקטים

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

מגבלות

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

  • צריך להריץ כל שאילתה שמפנה לערכי ObjectRef באותו פרויקט שבו נמצאת הטבלה שמכילה את ערכי ObjectRef.
  • לא יכולות להיות יותר מ-20 חיבורים בפרויקט ובאזור שבהם אתם מריצים שאילתות שמפנות לערכים ObjectRef או ObjectRefRuntime. לדוגמה, אם אתם מריצים את השאילתות ב-asia-east1 ב-myproject, לא יכולות להיות יותר מ-20 חיבורים ב-asia-east1 ב-myproject.

עלויות

העלויות הבאות רלוונטיות לשימוש בנתונים מרובי-אופנים:

  • אחסון של מטא-נתונים של אובייקטים כערכים של ObjectRef בטבלאות סטנדרטיות תורם לעלות האחסון ב-BigQuery של הטבלה.
  • הפעלת שאילתות על ערכי ObjectRef כרוכה בעלויות מחשוב ב-BigQuery.
  • על אובייקטים חדשים שאתם יוצרים משינויים באובייקטים יחולו עלויות של Cloud Storage.
  • נתונים חדשים שאתם יוצרים ושומרים ב-BigQuery כרוכים בעלויות אחסון ב-BigQuery.
  • השימוש בפונקציות של AI גנרטיבי כרוך בעלויות של Vertex AI.
  • השימוש בפונקציות מוגדרות על ידי המשתמש (UDF) ב-Python ב-BigQuery, ובשיטות להמרת אובייקטים ולשינוי של מסגרות נתונים מרובות-אופנים ב-BigQuery DataFrames, גורם לעלויות של פונקציות UDF ב-Python.

מידע נוסף זמין בדפי התמחור הבאים:

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