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

במאמר הזה מתוארות התכונות של BigQuery שבהן אפשר להשתמש כדי ליצור ולנתח נתונים מולטימודליים. אפשר להשתמש בתכונות האלה ב-BigQuery עם GoogleSQL ועם Python באמצעות BigQuery DataFrames.

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

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

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

יתרונות

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

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

ערכים של ObjectRef

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

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

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

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

מידע נוסף זמין במאמר בנושא עבודה עם ערכי 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 גנרטיבי

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

עבודה עם נתונים מולטי-מודאליים ב-Python

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

‫DataFrames מולטי-מודאליים

יצירת DataFrame מולטי-מודאלי שמשלב נתונים מובְנים ולא מובְנים באמצעות השיטה read_gbq: יצירת DataFrame מולטי-מודאלי מטבלת אובייקטים.

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

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

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

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

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

מערכי נתונים של Storage Insights

מערך נתונים של Storage Insights הוא מערך נתונים מקושר של BigQuery שאפשר לשלוח אליו שאילתות כדי לנתח ולהמחיש את הנתונים ב-Cloud Storage. העמודה ref מכילה ערכים של ObjectRef שאפשר להשתמש בהם כדי לנתח נתוני אובייקטים ומטא-נתונים.

מגבלות

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

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

תמחור

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

  • האחסון של מטא-נתונים של אובייקטים כערכים של ObjectRef בטבלאות סטנדרטיות תורם לעלות האחסון של הטבלה ב-BigQuery.
  • הפעלת שאילתות על ערכים של ObjectRef כרוכה בעלויות מחשוב ב-BigQuery.
  • על אובייקטים חדשים שאתם יוצרים משינויים באובייקטים חלות עלויות של Cloud Storage.
  • נתונים חדשים שאתם יוצרים ושומרים ב-BigQuery כרוכים בעלויות אחסון ב-BigQuery.
  • כשמשתמשים בפונקציות של AI גנרטיבי, נושאים בעלויות של Gemini Enterprise Agent Platform.
  • כשמשתמשים ב-UDF של Python ב-BigQuery, ב-DataFrames מרובי-מוֹדָל ובשיטות להמרת אובייקטים ב-BigQuery DataFrames, נושאים בעלויות של UDF של Python.
  • הפונקציות OBJ, כמו OBJ.LIST ו-OBJ.GET_READ_URL, מעבדות רק מטא-נתונים, ולא את הבייטים של הקובץ הבסיסי. תחויבו בעלויות כשמעבירים את ההפניה לאובייקט שמוחזר לפונקציית AI downstream שקוראת את תוכן הקובץ, לדוגמה, AI.GENERATE או AI.IF.

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

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