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

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

במאמר הזה מוסבר איך ליצור הגדרה של מערך נתונים ולקשר אותה ל-BigQuery לצורך ניתוח נוסף. מידע נוסף זמין במאמר מערכי נתונים של Storage Insights.

לפני שמתחילים

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

התפקידים הנדרשים

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

להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

התפקידים המוגדרים מראש האלה כוללים את ההרשאות שנדרשות כדי להגדיר מערכי נתונים. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:

ההרשאות הנדרשות

כדי להגדיר מערכי נתונים, צריך את ההרשאות הבאות:

  • מגדירים מערך נתונים:
    • storageinsights.datasetConfigs.create
    • storage.buckets.getObjectInsights
  • קישור למערך הנתונים ב-BigQuery: storageinsights.datasetConfigs.linkDataset

יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.

הפעלת Storage Insights API

המסוף

הפעלת ה-API של storageinsights.googleapis.com

שורת הפקודה

כדי להפעיל את Storage Insights API בפרויקט הנוכחי, מריצים את הפקודה gcloud services enable:

gcloud services enable storageinsights.googleapis.com

במאמר הפעלה והשבתה של שירותים תוכלו לקרוא איך מפעילים שירותים לפרויקט ב- Google Cloud .

הגדרת Storage Intelligence

מוודאים ש-Storage Intelligence מוגדר לפרויקט, לתיקייה או לארגון שרוצים לנתח באמצעות מערכי נתונים.

יצירת הגדרה של מערך נתונים

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

המסוף

  1. במסוף Google Cloud , נכנסים לדף Storage Insights ב-Cloud Storage.

    כניסה לתובנות לגבי האחסון

  2. לוחצים על Configure dataset.

  3. בקטע Name your dataset, נותנים שם למערך הנתונים. אם רוצים, מזינים תיאור לקבוצת הנתונים. השמות מזהים את ההגדרות של קבוצות הנתונים ואי אפשר לשנות אותם. השם יכול להכיל עד 128 תווים, כולל אותיות, מספרים וקווים תחתונים, והוא חייב להתחיל באות.

  4. בקטע Define dataset scope:

    • בוחרים באחת מהאפשרויות הבאות:

      • כדי לקבל מטא-נתונים של אחסון לכל הפרויקטים בארגון הנוכחי, בוחרים באפשרות Include the organization.

      • כדי לקבל מטא-נתונים של אחסון לכל הפרויקטים בתיקיות שנבחרו, בוחרים באפשרות Include folders (Sub-organization/departments). איך מציגים רשימה של תיקיות ופרויקטים כדי להוסיף תיקיות:

        1. בשדה Folder 1, מזינים את מזהה התיקייה.
        2. אם רוצים להוסיף כמה מזהי תיקיות, לוחצים על ‎+ Add another folder.
      • כדי לקבל מטא-נתונים של אחסון לפרויקטים שנבחרו, בוחרים באפשרות Include projects by providing project numbers. איך מוצאים את השם, המספר והמזהה של הפרויקט כדי להוסיף פרויקטים:

        1. בשדה Project 1, מזינים את מספר הפרויקט.
        2. אם רוצים להוסיף כמה מספרי פרויקטים, לוחצים על ‎+ Add another project.
      • כדי להוסיף כמה פרויקטים או תיקיות בבת אחת, בוחרים באפשרות Upload a list of projects/folders via CSV file. קובץ ה-CSV צריך להכיל את מספרי הפרויקטים או את מזהי התיקיות שרוצים לכלול במערך הנתונים. אפשר לציין עד 10,000 פרויקטים או תיקיות בהגדרה אחת של מערך נתונים.

    • מציינים אם לכלול באופן אוטומטי קטגוריות עתידיות במשאב שנבחר.

    • אם רוצים להגדיר מסננים לקטגוריות לפי אזורים ותחיליות של קטגוריות, מרחיבים את הקטע Filters (optional). המסננים מופעלים באופן מצטבר על קטגוריות.

      אתם יכולים לכלול או להחריג קטגוריות מאזורים ספציפיים. לדוגמה, אתם יכולים להחריג קטגוריות באזורים me-central1 ו-me-central2. אפשר גם לכלול או להחריג קטגוריות לפי קידומת. לדוגמה, כדי להחריג קטגוריות שמתחילות ב-my-bucket, מזינים את הקידומת my-bucket*.

  5. לוחצים על Continue.

  6. בקטע Select retention period, בוחרים תקופת שמירה לנתונים במערך הנתונים.

  7. נתוני הפעילות נכללים במערך הנתונים כברירת מחדל, והם מקבלים את תקופת השמירה של מערך הנתונים. כדי לשנות את תקופת השמירה של מערך הנתונים, בוחרים באפשרות Specify a retention period for activity data, ואז בוחרים את מספר הימים לשמירת נתוני הפעילות. כדי להשבית את נתוני הפעילות, צריך להגדיר את תקופת השמירה ל-0 ימים.

  8. בקטע Select location to store configured dataset, בוחרים מיקום לאחסון של מערך הנתונים המקושר. לדוגמה: us-central1.

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

  9. בקטע Select service account type, בוחרים את סוג סוכן השירות של מערך הנתונים. בוחרים סוכן שירות ברמת ההגדרה או ברמת הפרויקט בשביל מערך הנתונים.

  10. לוחצים על הגדרה.

שורת הפקודה

  1. כדי ליצור הגדרה של מערך נתונים, מריצים את הפקודה gcloud storage insights dataset-configs create עם הדגלים הנדרשים:

    gcloud storage insights dataset-configs create DATASET_CONFIG_ID \
      --location=LOCATION \
      --organization=SOURCE_ORG_NUMBER \
      --retention-period-days=DATASET_RETENTION_PERIOD_DAYS \
      (SCOPE_FLAG)
    

    מחליפים את:

    • ‫DATASET_CONFIG_ID בשם של הגדרת מערך הנתונים. השמות מזהים את ההגדרות של קבוצות הנתונים ואי אפשר לשנות אותם. השם יכול להכיל עד 128 תווים, כולל אותיות, מספרים וקווים תחתונים, והוא חייב להתחיל באות.

    • ‫LOCATION עם המיקום שבו רוצים לאחסן את מערך הנתונים המקושר. לדוגמה, us-central1.

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

    • ‫SOURCE_ORG_NUMBER במזהה של הארגון שאליו שייכים פרויקטי המקור. כדי למצוא את מזהה הארגון, קראו את המאמר קבלת המזהה של משאב הארגון.

    • ‫DATASET_RETENTION_PERIOD_DAYS עם תקופת השמירה של הנתונים במערך הנתונים.

    • SCOPE_FLAG עם אחד מהדגלים הבאים שמגדירים את היקף הנתונים שצריך לאסוף:

      • ‫--enable-organization-scope: מאפשר לקבוצת הנתונים לאסוף תובנות מכל הקטגוריות בארגון.
      • --source-folders=[SOURCE_FOLDER_NUMBERS,...]: רשימה של מספרי תיקיות לכלול בקבוצת הנתונים. כדי ללמוד איך למצוא מספר תיקייה, קראו את המאמר הצגת רשימה של כל הפרויקטים והתיקיות בהיררכיה.
      • --source-folders-file=FILE_PATH: מציינים כמה מספרי תיקיות על ידי העלאת קובץ CSV לקטגוריה.
      • ‫--source-projects=[SOURCE_PROJECT_NUMBERS,...]: רשימה של מספרי פרויקטים שייכללו במערך הנתונים. לדוגמה, 464036093014. כדי למצוא את מספר הפרויקט, קראו את המאמר איתור השם, המספר והמזהה של הפרויקט.
      • ‫--source-projects-file=FILE_PATH: העלאת קובץ CSV לקטגוריה כדי לציין כמה מספרי פרויקטים.

    אפשר להשתמש בדגלים הנוספים הבאים כדי להגדיר את מערך הנתונים:

    • משתמשים ב---include-buckets=BUCKET_NAMES_OR_REGEX כדי לכלול קטגוריות ספציפיות לפי שם או ביטוי רגולרי. אי אפשר להשתמש בדגל הזה עם --exclude-buckets.

    • אפשר להשתמש ב---exclude-buckets=BUCKET_NAMES_OR_REGEX כדי להחריג קטגוריות ספציפיות לפי שם או ביטוי רגולרי. אי אפשר להשתמש בדגל הזה עם --include-buckets.

    • משתמשים ב---project=DESTINATION_PROJECT_ID כדי לציין פרויקט לאחסון ההגדרות של קבוצת הנתונים וקבוצת הנתונים שנוצרה. אם לא משתמשים בדגל הזה, פרויקט היעד הוא הפרויקט הפעיל. מידע נוסף על מזהי פרויקטים זמין במאמר יצירה וניהול של פרויקטים.

    • אפשר להשתמש ב---auto-add-new-buckets כדי לכלול באופן אוטומטי את כל הקטגוריות שיתווספו לפרויקטים של המקור בעתיד.

    • אפשר להשתמש ב---skip-verification כדי לדלג על בדיקות וכשלים בתהליך האימות, כולל בדיקות של הרשאות IAM נדרשות. אם משתמשים בדגל הזה, יכול להיות שחלק מהקטגוריות או כולן לא ייכללו במערך הנתונים.

    • משתמשים ב---identity=IDENTITY_TYPE כדי לציין את ההיקף של סוכן השירות שנוצר באמצעות הגדרת מערך הנתונים. הערכים האפשריים הם IDENTITY_TYPE_PER_CONFIG או IDENTITY_TYPE_PER_PROJECT. אם לא מציינים ערך, ברירת המחדל היא IDENTITY_TYPE_PER_CONFIG. למידע נוסף, קראו את המאמר סוג סוכן השירות.

    • משתמשים ב---description=DESCRIPTION כדי להוסיף תיאור להגדרת קבוצת הנתונים.

    • משתמשים ב---activity-data-retention-period-days=ACTIVITY_RETENTION_PERIOD_DAYS כדי לציין את תקופת השמירה של נתוני הפעילות במערך הנתונים. כברירת מחדל, נתוני הפעילות נכללים במערך הנתונים, והם מקבלים את תקופת השמירה של מערך הנתונים. כדי לשנות את תקופת השמירה של מערך הנתונים, צריך לציין את מספר הימים שבהם רוצים לשמור את נתוני הפעילות. כדי להחריג נתוני פעילות, מגדירים את ACTIVITY_RETENTION_PERIOD_DAYS לערך 0.

    בדוגמה הבאה נוצרת הגדרה של מערך נתונים בשם my-dataset באזור us-central1, לארגון עם המזהה 123456789, עם תקופת שמירה של 30 ימים והיקף שמוגבל לפרויקטים 987654321 ו-123123123:

    gcloud storage insights dataset-configs create my-dataset \
    --location=us-central1 \
    --organization=123456789 \
    --retention-period-days=30 \
    --source-projects=987654321,123123123
    

‫API בפורמט JSON

  1. להתקין ולהפעיל את ה-CLI של gcloud, שמאפשר ליצור אסימון גישה לכותרת Authorization.

  2. יוצרים קובץ JSON שמכיל את הפרטים הבאים:

    {
      "sourceProjects": {
        "project_numbers": ["PROJECT_NUMBERS", ...]
      },
      "retentionPeriodDays": "RETENTION_PERIOD_DAYS",
      "activityDataRetentionPeriodDays": "ACTIVITY_DATA_RETENTION_PERIOD_DAYS",
      "identity": {
        "type": "IDENTITY_TYPE"
      }
    }

    מחליפים את:

    • ‫PROJECT_NUMBERS במספרי הפרויקטים שרוצים לכלול במערך הנתונים. אפשר לציין פרויקט אחד או כמה פרויקטים. צריך לציין את הפרויקטים כרשימה של מחרוזות.

      לחלופין, אפשר להוסיף ארגון, או תיקייה אחת או יותר שמכילות קטגוריות ואובייקטים שאת המטא-נתונים שלהם רוצים לעדכן. כדי לכלול תיקיות או ארגונים, משתמשים בשדות sourceFolders או organizationScope. למידע נוסף, עיינו במאמרי העזרה של DatasetConfig.

    • ‫RETENTION_PERIOD_DAYS במספר הימים של הנתונים שרוצים לתעד בתמונת המצב של מערך הנתונים. לדוגמה, 90.

    • ACTIVITY_DATA_RETENTION_PERIOD_DAYS במספר הימים של נתוני הפעילות שרוצים לתעד בתמונת המצב של מערך הנתונים. כברירת מחדל, נתוני הפעילות נכללים במערך הנתונים, ותקופת השמירה שלהם זהה לזו של מערך הנתונים. כדי לשנות את תקופת השמירה של מערך הנתונים, צריך לציין את מספר הימים שבהם רוצים לשמור את נתוני הפעילות. כדי להחריג נתוני פעילות, מגדירים את ACTIVITY_RETENTION_PERIOD_DAYS לערך 0.

    • ‫IDENTITY_TYPE עם סוג חשבון השירות שנוצר לצד הגדרת מערך הנתונים. הערכים האפשריים הם IDENTITY_TYPE_PER_CONFIG או IDENTITY_TYPE_PER_PROJECT. למידע נוסף, קראו את המאמר סוג סוכן השירות.

  3. כדי ליצור את הגדרת קבוצת הנתונים, מפעילים את הפקודה cURL כדי לקרוא ל-API בפורמט JSON עם בקשת ‎DatasetConfig Create:

    curl -X POST --data-binary @JSON_FILE_NAME \
    "https://storageinsights.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasetConfigs?datasetConfigId=DATASET_CONFIG_ID" \
      --header "Authorization: Bearer $(gcloud auth print-access-token --impersonate-service-account=SERVICE_ACCOUNT)" \
      --header "Accept: application/json" \
      --header "Content-Type: application/json"

    מחליפים את:

    • ‫JSON_FILE_NAME בנתיב לקובץ ה-JSON שיצרתם בשלב הקודם. לחלופין, אפשר להעביר מופע של DatasetConfig בגוף הבקשה.

    • ‫PROJECT_ID במזהה הפרויקט שאליו ישויכו הגדרת מערך הנתונים ומערך הנתונים עצמו.

    • ‫LOCATION עם המיקום שבו יישמרו מערך הנתונים וההגדרות שלו. לדוגמה: us-central1.

    • ‫DATASET_CONFIG_ID בשם של הגדרת מערך הנתונים. השמות מזהים את ההגדרות של קבוצות הנתונים ואי אפשר לשנות אותם. השם יכול להכיל עד 128 תווים, כולל אותיות, מספרים וקווים תחתונים, והוא חייב להתחיל באות.

    • ‫SERVICE_ACCOUNT עם חשבון השירות. לדוגמה, test-service-account@test-project.iam.gserviceaccount.com.

כדי לפתור שגיאות בעיבוד של תמונות מצב שנרשמו ב-error_attributes_view, קראו את המאמר שגיאות במערך הנתונים של Storage Insights.

מתן ההרשאות הנדרשות לסוכן השירות

‫Google Cloud יוצר סוכן שירות ברמת ההגדרות או ברמת הפרויקט כשיוצרים הגדרות של מערך נתונים. השם של סוכן השירות פועל לפי הפורמט service-PROJECT_NUMBER@gcp-sa-storageinsights.iam.gserviceaccount.com, והוא מופיע בדף IAM במסוף Google Cloud כשמסמנים את התיבה Include Google-provided role grants. אפשר גם למצוא את השם של סוכן השירות על ידי צפייה במשאב DatasetConfig באמצעות ה-API בפורמט JSON.

כדי שהשירות Storage Insights יוכל ליצור ולכתוב מערכי נתונים, מבקשים מהאדמין להקצות לסוכן השירות את התפקיד Storage Insights Collector Service‏ (roles/storage.insightsCollectorService) בארגון שכולל את פרויקטי המקור. צריך להקצות את התפקיד הזה לכל סוכן שירות ברמת ההגדרה שנוצר לכל הגדרה של מערך נתונים שרוצים לקבל ממנו נתונים. אם אתם משתמשים בסוכן שירות ברמת הפרויקט, אתם צריכים להקצות את התפקיד הזה רק פעם אחת לסוכן השירות כדי לקרוא ולכתוב מערכי נתונים לכל ההגדרות של מערכי הנתונים בפרויקט.

במאמר ניהול הגישה מוסבר איך להקצות תפקידים לפרויקטים.

כדי לקשר מערך נתונים ל-BigQuery, מבצעים את השלבים הבאים:

  1. במסוף Google Cloud , נכנסים לדף Storage Insights של Cloud Storage.

    כניסה לתובנות לגבי האחסון

  2. לוחצים על השם של הגדרת מערך הנתונים שיצרה את מערך הנתונים שרוצים לקשר.

  3. בקטע BigQuery linked dataset, לוחצים על Link dataset כדי לקשר את מערך הנתונים.

  1. כדי לקשר מערך נתונים ל-BigQuery, מריצים את הפקודה gcloud storage insights dataset-configs create-link:

    gcloud storage insights dataset-configs create-link DATASET_CONFIG_ID --location=LOCATION

    מחליפים את:

    • ‫DATASET_CONFIG_ID בשם של הגדרת מערך הנתונים שיצרה את מערך הנתונים שרוצים לקשר.

    • ‫LOCATION במיקום של מערך הנתונים. לדוגמה, us-central1.

    אפשר גם לציין נתיב מלא להגדרת מערך הנתונים. לדוגמה:

    gcloud storage insights dataset-configs create-link projects/DESTINATION_PROJECT_ID/locations/LOCATION/datasetConfigs/DATASET_CONFIG_ID

    מחליפים את:

    • ‫DESTINATION_PROJECT_ID במזהה הפרויקט שכולל את הגדרת מערך הנתונים. מידע נוסף על מזהי פרויקטים זמין במאמר יצירה וניהול של פרויקטים.

    • ‫DATASET_CONFIG_ID בשם של הגדרת מערך הנתונים שיצרה את מערך הנתונים שרוצים לקשר.

    • ‫LOCATION עם המיקום של מערך הנתונים וההגדרות שלו. לדוגמה, us-central1.

  1. להתקין ולהפעיל את ה-CLI של gcloud, שמאפשר ליצור אסימון גישה לכותרת Authorization.

  2. משתמשים ב-cURL כדי לשלוח קריאה ל-API בפורמט JSON באמצעות בקשת DatasetConfig של linkDataset:

    curl -X POST \
      "https://storageinsights.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasetConfigsDATASET_CONFIG_ID:linkDataset?" \
        --header "Authorization: Bearer $(gcloud auth print-access-token --impersonate-service-account=SERVICE_ACCOUNT)" \
        --header "Accept: application/json" \
        --header "Content-Type: application/json"
    

    מחליפים את:

    • ‫JSON_FILE_NAME בנתיב לקובץ ה-JSON שיצרתם.

    • ‫PROJECT_ID במזהה הפרויקט שאליו שייכת הגדרת מערך הנתונים.

    • ‫LOCATION במיקום שבו נמצאים מערך הנתונים וההגדרות שלו. לדוגמה: us-central1.

    • ‫DATASET_CONFIG_ID בשם של הגדרת מערך הנתונים שיצרה את מערך הנתונים שרוצים לקשר.

    • ‫SERVICE_ACCOUNT עם חשבון השירות. לדוגמה, test-service-account@test-project.iam.gserviceaccount.com.

ניתוח נתונים ומטא-נתונים של אובייקטים באמצעות BigQuery

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

יצירת קישור למשאבים ב-Cloud ב-BigQuery

ב-BigQuery, יוצרים קישור למשאבים ב-Cloud עם גישה ל-Cloud Storage. הקישור למשאבים ב-Cloud מאפשר ל-BigQuery לגשת לנתוני האובייקטים ולמטא-נתונים ב-Cloud Storage באמצעות חשבון שירות משלו. פרטים נוספים זמינים במאמר יצירת קישור למשאבים ב-Cloud.

שימוש בקישור למשאבים ב-Cloud עם מערך הנתונים של Storage Insights

כדי לנתח את הנתונים שמופיעים בעמודה ref ומוחזרים כחלק מקבוצת הנתונים של Storage Insights, משתמשים בפונקציה OBJ.MAKE_REF כדי לשלב את URI מהעמודה ref עם החיבור שיצרתם:

SELECT
OBJ.GET_ACCESS_URL(OBJ.MAKE_REF(ref.uri, "CONNECTION_ID"), "r")
FROM `PROJECT_ID.INSIGHTS_DATASET.object_attributes_view` WHERE LOCATION = "US";

מחליפים את:

  • ‫CONNECTION_ID: המזהה של החיבור למשאבים ב-Cloud שיצרתם.
  • ‫PROJECT_ID: מזהה הפרויקט שמכיל את קבוצת הנתונים של Storage Insights.
  • ‫INSIGHTS_DATASET: השם של מערך הנתונים של Storage Insights. לדוגמה, storageinsights_dataset.

ניתוח של קבוצת נתוני Storage Insights באמצעות מודל בהתאמה אישית

ב-BigQuery אי אפשר ליצור מודלים ישירות בתוך מערך נתונים מקושר. כדי לנתח את נתוני Storage Insights באמצעות מודל בהתאמה אישית, צריך ליצור את המודל ולאחסן אותו במערך נתונים סטנדרטי של BigQuery. אחר כך תוכלו להפנות למודל הזה בשאילתות שלכם, תוך טירגוט מערך הנתונים המקושר לצורך ניתוח:

  1. יוצרים מודל במערך נתונים של BigQuery‏ (MODEL_DATASET) באותו פרויקט שבו נמצא מערך הנתונים המקושר (INSIGHTS_DATASET):

    CREATE OR REPLACE MODEL `MODEL_DATASET.gemini_model`
    REMOTE WITH CONNECTION `CONNECTION_ID`
    OPTIONS (ENDPOINT = 'gemini-2.0-flash');

    מחליפים את:

    • ‫MODEL_DATASET: השם של מערך הנתונים שבו רוצים ליצור את המודל.
    • ‫CONNECTION_ID: המזהה של החיבור למשאבים ב-Cloud שיצרתם.
  2. מריצים שאילתה שמפנה למודל כדי לנתח את הנתונים בקבוצת הנתונים של Storage Insights. בדוגמה הבאה מוסיפים תיאור לתמונות במערך הנתונים:

    SELECT
     name,
     result AS ai_description
    FROM
     AI.GENERATE_TEXT(
       MODEL `MODEL_DATASET.gemini_model`,
       (
         SELECT
           name,
           (
             'Describe this image',
             OBJ.GET_ACCESS_URL(
               OBJ.FETCH_METADATA(
                 OBJ.MAKE_REF(
                   ref.uri,
                   'CONNECTION_ID'
                 )
               ),
               'r'
             )
           ) AS prompt
         FROM
           `INSIGHTS_DATASET.object_attributes_view`
         WHERE
           contentType LIKE 'image/%'
           AND NOT name LIKE '%/'
         LIMIT 3
       )
     );

    מחליפים את:

    • ‫INSIGHTS_DATASET: השם של מערך הנתונים של Storage Insights.
    • ‫MODEL_DATASET: שם מערך הנתונים שבו יצרתם את המודל.
    • ‫CONNECTION_ID: המזהה של החיבור למשאבים ב-Cloud שיצרתם.

ניתוח של קבוצת נתוני Storage Insights באמצעות מודל ברירת מחדל

אתם יכולים להשתמש במודל ברירת המחדל כדי ליצור תובנות שנוצרו על ידי AI מנתונים לא מובְנים ולזהות מידע רגיש.

יצירת תובנות מנתונים לא מובְנים

שאילתת הדוגמה הבאה יוצרת תיאורים לתמונות JPEG:

SELECT AI.GENERATE(
   (
     'Return a JSON object with fields: "description" (max 20 words)',
     OBJ.GET_ACCESS_URL(
       OBJ.MAKE_REF(ref.uri, `CONNECTION_ID`),
       'r'
     )
   )
)
FROM  `PROJECT_ID.INSIGHTS_DATASET.object_attributes_view`
WHERE  name LIKE 'returns/electronics/%'
  AND contentType = 'image/jpeg';

מחליפים את:

  • ‫CONNECTION_ID: המזהה של החיבור למשאבים ב-Cloud שיצרתם.
  • ‫PROJECT_ID: מזהה הפרויקט שמכיל את קבוצת הנתונים של Storage Insights.
  • ‫INSIGHTS_DATASET: השם של מערך הנתונים של Storage Insights.

זיהוי אוטומטי של מידע אישי רגיש

אתם יכולים להשתמש במודלים מולטי-מודאליים כדי לזהות מידע רגיש במסמכים, כמו פרטים אישיים מזהים (PII).

השאילתה הבאה מדגימה איך אפשר לסרוק מסמכי PDF כדי לבדוק אם יש בהם מידע רגיש:

SELECT AI.GENERATE(
   (
     'Does this document contain any credit card numbers or home addresses? Answer "SAFE" or "SENSITIVE".',
     OBJ.GET_ACCESS_URL(
       OBJ.MAKE_REF(ref.uri, `CONNECTION_ID`),
       'r'
     )
   )
)
FROM  `PROJECT_ID.INSIGHTS_DATASET.object_attributes_view`
WHERE contentType = 'application/pdf';

מחליפים את:

  • ‫CONNECTION_ID: המזהה של החיבור למשאבים ב-Cloud שיצרתם.
  • ‫PROJECT_ID: מזהה הפרויקט שמכיל את קבוצת הנתונים של Storage Insights.
  • ‫INSIGHTS_DATASET: השם של מערך הנתונים של Storage Insights.

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

אם מערך הנתונים כולל את object_contexts_catalog_view, אתם יכולים לשלוח שאילתות לגבי הקשרים של אובייקטים ונתונים מורחבים (גרסת טרום-השקה (Preview)) (כמו תוויות, זיהוי פנים ותיבות תוחמות) ישירות ב-BigQuery.

תוויות לתמונות: חיפוש אובייקטים עם תווית ספציפית

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

SELECT
  t.project,
  t.bucket,
  t.name,
  t.generation,
  label
FROM
  `PROJECT_ID.INSIGHTS_DATASET.object_contexts_catalog_view` AS t,
  UNNEST(t.contexts) AS context,
  UNNEST(JSON_QUERY_ARRAY(context.extendedData.labelAnnotationGroup.labelAnnotations)) AS label
WHERE
  context.key = "google:annotation:label-detector-v1"
  AND LOWER(STRING(label.description)) = 'LABEL_DESCRIPTION'
  AND FLOAT64(label.score) > 0.75;

מחליפים את:

  • ‫PROJECT_ID: מזהה הפרויקט שמכיל את מערך הנתונים של Storage Insights.
  • ‫INSIGHTS_DATASET: השם של מערך הנתונים של Storage Insights.
  • ‫LABEL_DESCRIPTION: תיאור התווית שרוצים לחפש (לדוגמה, car או clothing).

זיהוי פנים: חיפוש תמונות עם חיוכים

השאילתה הבאה מסננת תמונות שמכילות פנים שבהן ההסתברות לשמחה גדולה מ-0.5:

WITH
  face_stats AS (
    SELECT
      t.project,
      t.bucket,
      t.name,
      t.generation,
      FLOAT64(face.joyProbability) AS joy_probability,
      FLOAT64(face.rollAngle) AS roll_angle,
      FLOAT64(face.panAngle) AS pan_angle,
      FLOAT64(face.tiltAngle) AS tilt_angle
    FROM
      `PROJECT_ID.INSIGHTS_DATASET.object_contexts_catalog_view` AS t,
      UNNEST(t.contexts) AS context,
      UNNEST(JSON_QUERY_ARRAY(context.extendedData.faceAnnotationGroup.faceAnnotations)) AS face
    WHERE context.key = 'google:annotation:face-detector-v1'
  )
SELECT *
FROM face_stats
WHERE
  joy_probability > 0.5
  AND roll_angle BETWEEN -10 AND 10
  AND pan_angle BETWEEN -10 AND 10
  AND tilt_angle BETWEEN -10 AND 10
LIMIT 10;

מחליפים את:

  • ‫PROJECT_ID: מזהה הפרויקט שמכיל את מערך הנתונים של Storage Insights.
  • ‫INSIGHTS_DATASET: השם של מערך הנתונים של Storage Insights.

זיהוי אובייקטים: מציאת קואורדינטות של תיבות תוחמות לאובייקטים שזוהו

השאילתה הבאה מחלצת את הקואורדינטות של התיבה התוחמת (bounding box) של אובייקטים שזוהו עם ציון סמך גבוה מ-0.50:

SELECT
  t.project,
  t.bucket,
  t.name AS object_name,
  t.generation,
  STRING(object.name) AS detected_object_name,
  FLOAT64(object.score) AS confidence_score,
  (
    SELECT AS STRUCT
      MIN(FLOAT64(v.x)) AS x_min,
      MIN(FLOAT64(v.y)) AS y_min,
      MAX(FLOAT64(v.x)) AS x_max,
      MAX(FLOAT64(v.y)) AS y_max
    FROM UNNEST(JSON_QUERY_ARRAY(object.boundingPoly.normalizedVertices)) AS v
  ).*
FROM
  `PROJECT_ID.INSIGHTS_DATASET.object_contexts_catalog_view` AS t,
  UNNEST(t.contexts) AS context,
  UNNEST(JSON_QUERY_ARRAY(context.extendedData.objectAnnotationGroup.objectAnnotations)) AS object
WHERE
  context.key = 'google:annotation:object-detector-v1'
  AND LOWER(STRING(object.name)) = 'DETECTED_OBJECT_NAME'
  AND FLOAT64(object.score) > 0.50
LIMIT 20;

מחליפים את:

  • ‫PROJECT_ID: מזהה הפרויקט שמכיל את מערך הנתונים של Storage Insights.
  • ‫INSIGHTS_DATASET: השם של מערך הנתונים של Storage Insights.
  • ‫DETECTED_OBJECT_NAME: השם של סוג האובייקט שזוהה ושרוצים לחפש (לדוגמה, drink או car).

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