ניתוח נתונים מרובי-אופנים ב-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:
AI.GENERATEAI.GENERATE_TEXTAI.GENERATE_TABLEAI.GENERATE_BOOLAI.GENERATE_DOUBLEAI.GENERATE_INTAI.GENERATE_EMBEDDINGAI.EMBEDAI.SIMILARITYAI.CLASSIFYAI.IFAI.SCORE
עבודה עם נתונים מולטי-מודאליים ב-Python
אפשר לנתח נתונים מולטימודאליים ב-Python באמצעות מחלקות ושיטות של BigQuery DataFrames.
DataFrames מולטי-מודאליים
יצירת DataFrame מולטי-מודאלי שמשלב נתונים מובְנים ולא מובְנים באמצעות השיטה read_gbq: יצירת DataFrame מולטי-מודאלי מטבלת אובייקטים.
כדי לנסות את התכונה, אפשר לעיין במדריך בנושא מסגרות נתונים מרובות מצבים ב-GitHub.
שיטות של AI גנרטיבי
אפשר להשתמש בשיטות הבאות כדי לבצע משימות של AI גנרטיבי על נתונים מולטי-מודאליים:
-
predictmethod of theGeminiTextGeneratorclass: generate text based on multimodal data. -
predictmethod of theMultimodalEmbeddingGeneratorclass: generate embeddings based on multimodal data.
טבלאות אובייקטים
לכל טבלה של אובייקט חדש שתיצרו תהיה עמודה 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.
מידע נוסף זמין בדפי התמחור הבאים:
- תמחור ב-BigQuery
- תמחור של פונקציות מוגדרות על ידי המשתמש (UDF) ב-BigQuery Python
- תמחור של Agent Platform
- תמחור של Cloud Storage
המאמרים הבאים
- מציינים עמודות
ObjectRefבסכימות של טבלאות. - ניתוח נתונים מרובי-אופנים באמצעות SQL.
- מידע נוסף על AI גנרטיבי ב-BigQuery ML
- מידע נוסף על BigQuery DataFrames