ניתוח נתונים מרובי-אופנים ב-Python באמצעות BigQuery DataFrames
במדריך הזה מוסבר איך לנתח נתונים מרובי-אופנים במחברת Python באמצעות מחלקות ושיטות של BigQuery DataFrames.
במדריך הזה נעשה שימוש בקטלוג המוצרים ממערך הנתונים הציבורי של חנות חיות המחמד Cymbal.
כדי להעלות מחברת שכבר מאוכלסת במשימות שמוסברות במדריך הזה, אפשר לעיין במאמר בנושא BigFrames Multimodal DataFrame.
מטרות
- יצירה של מסגרות נתונים מולטי-מודאליות.
- לשלב נתונים מובנים ולא מובנים ב-DataFrame.
- שינוי תמונות.
- יצירת טקסט והטמעות על סמך נתוני תמונה.
- פיצול קובצי PDF לחלקים קטנים יותר לצורך ניתוח נוסף.
עלויות
במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:
- BigQuery: you incur costs for the data that you process in BigQuery.
- BigQuery Python UDFs: you incur costs for using BigQuery DataFrames image transformation and chunk PDF methods.
- Cloud Storage: you incur costs for the objects stored in Cloud Storage.
- Vertex AI: you incur costs for calls to Vertex AI models.
כדי ליצור הערכת עלויות בהתאם לשימוש החזוי, אפשר להשתמש במחשבון התמחור.
למידע נוסף, תוכלו לעיין בדפי התמחור הבאים:
- תמחור ב-BigQuery
- תמחור של פונקציות מוגדרות על ידי המשתמש (UDF) ב-Python ב-BigQuery
- תמחור של Cloud Storage
- תמחור של Vertex AI
לפני שמתחילים
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the BigQuery, BigQuery Connection, Cloud Storage, and Vertex AI APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות להשלמת המדריך הזה, אתם צריכים לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
-
יוצרים חיבור:
אדמין של חיבור ל-BigQuery (
roles/bigquery.connectionAdmin) -
הענקת הרשאות לחשבון השירות של החיבור:
אדמין IAM של פרויקט (
roles/resourcemanager.projectIamAdmin) -
יצירת קטגוריה של Cloud Storage:
אדמין אחסון (
roles/storage.admin) -
הפעלת משימות BigQuery:
BigQuery User (
roles/bigquery.user) -
יצירה של פונקציות מוגדרות על ידי המשתמש (UDF) ב-Python והפעלתן:
עריכה של נתוני BigQuery (
roles/bigquery.dataEditor) -
יצירת כתובות URL שמאפשרות לקרוא ולשנות אובייקטים ב-Cloud Storage:
BigQuery ObjectRef Admin (
roles/bigquery.objectRefAdmin) -
שימוש ב-notebooks:
-
BigQuery Read Session User (
roles/bigquery.readSessionUser) -
משתמש Notebook Runtime (
roles/aiplatform.notebookRuntimeUser) -
משתמש Notebook Runtime (
roles/aiplatform.notebookRuntimeUser) -
Code Creator (
roles/dataform.codeCreator)
-
BigQuery Read Session User (
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
הגדרה
בקטע הזה יוצרים את הקטגוריה של Cloud Storage, את החיבור ואת המחברת שבהם משתמשים במדריך הזה.
יצירת קטגוריה
יוצרים קטגוריה של Cloud Storage לאחסון אובייקטים שעברו טרנספורמציה:
נכנסים לדף Buckets במסוף Google Cloud .
לוחצים על יצירה.
בדף Create a bucket, בקטע Get started, מזינים שם ייחודי גלובלית שעומד בדרישות לשמות של קטגוריות.
לוחצים על יצירה.
יצירת חיבור
יוצרים חיבור למשאב בענן ומקבלים את חשבון השירות של החיבור. BigQuery משתמש בחיבור כדי לגשת לאובייקטים ב-Cloud Storage.
עוברים לדף BigQuery.
בחלונית Explorer, לוחצים על Add data.
תיבת הדו-שיח הוספת נתונים נפתחת.
בחלונית Filter By, בקטע Data Source Type, בוחרים באפשרות Business Applications.
אפשרות אחרת היא להזין
Vertex AIבשדה חיפוש מקורות נתונים.בקטע מקורות נתונים מומלצים, לוחצים על Vertex AI.
לוחצים על כרטיס הפתרון Vertex AI Models: BigQuery Federation.
ברשימה Connection type בוחרים באפשרות Vertex AI remote models, remote functions, BigLake and Spanner (Cloud Resource).
בשדה מזהה החיבור, מקלידים
bigframes-default-connection.לוחצים על יצירת קישור.
לוחצים על מעבר לחיבור.
בחלונית Connection info (פרטי החיבור), מעתיקים את מזהה חשבון השירות לשימוש בשלב מאוחר יותר.
מתן הרשאות לחשבון השירות של החיבור
מקצים לחשבון השירות של החיבור את התפקידים שנדרשים לו כדי לגשת ל-Cloud Storage ול-Vertex AI. צריך להעניק את התפקידים האלה באותו פרויקט שיצרתם או בחרתם בקטע לפני שמתחילים.
כדי להקצות את התפקיד, בצע את השלבים הבאים:
עוברים לדף IAM & Admin.
לוחצים על Grant access.
בשדה New principals, מזינים את מזהה חשבון השירות שהעתקתם קודם.
בשדה Select a role, בוחרים באפשרות Cloud Storage ואז באפשרות Storage Object User.
לוחצים על הוספת תפקיד נוסף.
בשדה Select a role (בחירת תפקיד), בוחרים באפשרות Vertex AI ואז באפשרות Vertex AI User (משתמש Vertex AI).
לוחצים על Save.
יצירת מחברת
יוצרים מחברת שבה אפשר להריץ קוד Python:
עוברים לדף BigQuery.
בסרגל הכרטיסיות של חלונית העריכה, לוחצים על החץ לתפריט הנפתח לצד שאילתת SQL ואז לוחצים על מחברת.
בחלונית להתחיל עם תבנית, לוחצים על סגירה.
לוחצים על Connect > Connect to a runtime (התחברות > התחברות לסביבת זמן ריצה).
אם יש לכם סביבת ריצה קיימת, מאשרים את הגדרות ברירת המחדל ולוחצים על Connect (חיבור). אם אין לכם זמן ריצה קיים, בוחרים באפשרות Create new Runtime (יצירת זמן ריצה חדש) ולוחצים על Connect (חיבור).
יכול להיות שיחלפו כמה דקות עד שסביבת זמן הריצה תוגדר.
יצירת DataFrame מולטימודאלי
יצירת DataFrame מרובה-אופנים שמשלב נתונים מובנים ולא מובנים באמצעות השיטה from_glob_path של הסיווג Session:
- במחברת, יוצרים תא קוד ומעתיקים אליו את הקוד הבא:
לוחצים על הפעלה.
הקריאה האחרונה אל
df_imageמחזירה את התמונות שנוספו ל-DataFrame. אפשר גם להפעיל את השיטה.display.
שילוב של נתונים מובנים ולא מובנים ב-DataFrame
משלבים נתוני טקסט ותמונה ב-DataFrame מולטי-מודאלי:
- במחברת, יוצרים תא קוד ומעתיקים אליו את הקוד הבא:
לוחצים על הפעלה .
הקוד מחזיר את נתוני ה-DataFrame.
במחברת, יוצרים תא קוד ומעתיקים אליו את הקוד הבא:
לוחצים על הפעלה .
הקוד מחזיר תמונות מ-DataFrame שבהן ערך העמודה
authorהואalice.
ביצוע טרנספורמציות של תמונות
אפשר לבצע טרנספורמציה של נתוני תמונות באמצעות השיטות הבאות של הסיווג Series.BlobAccessor:
התמונות שעברו שינוי נכתבות ב-Cloud Storage.
שינוי תמונות:
- במחברת, יוצרים תא קוד ומעתיקים אליו את הקוד הבא:
- מעדכנים את כל ההפניות אל
{dst_bucket}כך שיפנו אל המאגר שיצרתם, בפורמטgs://mybucket. לוחצים על הפעלה .
הקוד מחזיר את התמונות המקוריות וגם את כל השינויים שנעשו בהן.
יצירת טקסט
כדי ליצור טקסט מנתונים מרובי-אופנים, משתמשים בשיטה predict של הסיווג GeminiTextGenerator:
- במחברת, יוצרים תא קוד ומעתיקים אליו את הקוד הבא:
לוחצים על הפעלה .
הקוד מחזיר את שתי התמונות הראשונות ב-
df_image, יחד עם טקסט שנוצר בתגובה לשאלהwhat item is it?עבור שתי התמונות.במחברת, יוצרים תא קוד ומעתיקים אליו את הקוד הבא:
לוחצים על הפעלה .
הקוד מחזיר את שתי התמונות הראשונות ב-
df_image, עם טקסט שנוצר בתגובה לשאלהwhat item is it?לגבי התמונה הראשונה, וטקסט שנוצר בתגובה לשאלהwhat color is the picture?לגבי התמונה השנייה.
יצירת הטמעות
כדי ליצור הטמעות של נתונים מרובי-אופנים, משתמשים בשיטת predict של הסיווג MultimodalEmbeddingGenerator:
- במחברת, יוצרים תא קוד ומעתיקים אליו את הקוד הבא:
לוחצים על הפעלה .
הקוד מחזיר את ההטמעות שנוצרו על ידי קריאה למודל הטמעה.
חלוקת קובצי PDF לחלקים
מפצלים אובייקטים של PDF באמצעות method pdf_chunk של class Series.BlobAccessor:
- במחברת, יוצרים תא קוד ומעתיקים אליו את הקוד הבא:
לוחצים על הפעלה .
הקוד מחזיר את נתוני ה-PDF בחלקים.
הסרת המשאבים
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.