סכימה ודוגמאות לשאילתות לייצוא מלאי של Drive ב-BigQuery

התכונה הזו נתמכת במהדורות הבאות: Frontline Plus,‏ Enterprise Standard ו-Enterprise Plus,‏ Education Standard ו-Education Plus,‏ Enterprise Essentials Plus ו-Cloud Identity Premium. השוואה בין המהדורות

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

הערה: צריך להגדיר חיוב לפרויקט בענן ב-Google Cloud כי יש עלות לייצוא ולשאילתות של מטא-נתונים ב-Drive ב-BigQuery. איך מפעילים את החיוב בפרויקט .

סכימת ייצוא של מטא-נתונים ב-Drive

סכימת ייצוא של מטא-נתונים ב-Drive

הייצוא של מלאי Drive מתווסף למערך הנתונים ב-BigQuery עם הסכימה הבאה:

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

owner.user.id

לגבי פריטים שבבעלות משתמש, מזהה המשתמש של בעל הקובץ.

owner.user.email

לפריטים שבבעלות המשתמש, האימייל של בעל הקובץ.

owner.shared_drive.id

לפריטים באחסון שיתופי, מזהה האחסון השיתופי.

יוצר creator כתובת האימייל ומזהה המשתמש של יוצר הפריט. השדה הזה לא יאוכלס אם ליוצר כבר אין גישה לפריט.
חותמות הזמן של תמונות המצב snapshot_start_time_micros וגם snapshot_end_time_micros חותמות הזמן של תחילת וסיום יצירת הדוח.
זמן הקריאה read_time_micros חותמת הזמן של מועד הקריאה של המטא-נתונים של הפריט ב-Drive.
שם title שם הקובץ שהמשתמש ציין.
תיאור description תיאור קצר של הפריט.
סטטוס ההעברה לאשפה trashed האם הפריט הועבר לאשפה אבל עדיין לא נמחק.
סוג MIME mime_type סוג ה-MIME של הפריט. סוגי ה-MIME הנתמכים ב-Google Workspace וב-Google Drive
סיומת הקובץ file_extension הרכיב האחרון של סיומת הקובץ המלאה, שחולץ משדה השם. האפשרות הזו זמינה רק לפריטים עם תוכן בינארי ב-Google Drive
מועד היצירה create_time_micros חותמת הזמן של מועד יצירת הפריט.
זמן השינוי האחרון last_modified_time_micros חותמת הזמן של הפעם האחרונה שבה מישהו שינה את הפריט.
גודל בבייטים size_bytes הגודל בבייטים של קובצי Blob וקובצי עורכי Docs. לא מדווח על פריטים ללא גודל, כמו קיצורי דרך ותיקיות.
מכסה שנוצלה consumed_quota_bytes מספר הבייטים של מכסת האחסון שהפריט תופס. הם כוללים את הגרסה העדכנית ואת הגרסאות הקודמות שנשמרו.
יחידה ארגונית org_unit_path היחידה הארגונית של הבעלים של הפריט.
סכום ביקורת md5_checksum סכום הבדיקה (checksum) MD5 של תוכן הפריט.
הצפנה בצד-הלקוח client_side_encrypted ערך בוליאני שמציין אם הפריט מוצפן מצד הלקוח .
תיקיית אב parent המזהה של תיקיית ההורה של הפריט.

התיקייה הראשית לא תאוכלס במקרים הבאים:

  1. הקובץ נמצא בתיקייה ברמה העליונה בתיקייה 'האחסון שלי' של המשתמש.
  2. התיקייה הראשית לא בבעלות הדומיין.
התוויות שהוחלו* applied_labels.id המזהה של התווית שמוחלת על הפריט.
applied_labels.title שם המשאב של התווית שחלה על הפריט.
applied_labels.field_values.id

המזהה של שדה, ייחודי בתווית או בספרייה.

applied_labels.field_values.type

סוג השדה. יכול להיות אחת מהאפשרויות הבאות:

applied_labels.field_values.display_name

הטקסט שיוצג בממשק המשתמש כדי לזהות את השדה.
מזהה יעד של קיצור דרך shortcut_target_id המזהה של הקובץ או התיקייה שאליהם קיצור הדרך הזה מפנה.
הרשאות access.permissions.permission_id

המזהה של ההרשאה הזו. מזהה ייחודי של מקבל ההרשאה.

הערה: מזהה ההרשאה שונה ממזהה המשתמש.

access.permissions.name

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

  • ‫user – השם המלא של המשתמש, כפי שמוגדר בחשבון Google שלו, למשל 'Dana Cruz'
  • ‫group – שם הקבוצה, למשל "Example Admins"
  • ‫domain – שם דומיין מסוג מחרוזת, כמו example.com
  • ‫anyone – לא דווח שם
access.permissions.type

סוג ההרשאה. הערכים החוקיים הם:

  • user
  • group
  • domain
  • anyone
access.permissions.role

התפקיד שמוענק על ידי ההרשאה הזו. הערכים החוקיים הם:

  • owner
  • organizer
  • fileOrganizer
  • writer
  • commenter
  • reader

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

access.permissions.view

אם ההרשאה שייכת לתצוגה, הערך הוא published.

access.permissions.allow_file_discovery

האם ההרשאה מאפשרת לחפש את הקובץ. הערך הזה מדווח רק לגבי הרשאות מהסוגים domain או anyone.
access.permissions.email כתובת האימייל של המשתמש או הקבוצה שאליהם מתייחסת ההרשאה.
access.permissions.domain שם הדומיין של הישות שההרשאה הזו מתייחסת אליה. המאפיין הזה מופיע כשסוג ההרשאה הוא user, group או domain.
access.permissions.user_id מזהה המשתמש שמשויך לאימייל בהרשאות.
access.permissions.permission_details
.permission_type
סוג ההרשאה של המשתמש.
access.permissions.permission_details.role התפקיד הראשי של המשתמש.
access.permissions.permission_details
.inherited_from
המזהה של הפריט שממנו ההרשאה הזו עוברת בירושה. השדה הזה מאוכלס רק עבור פריטים בתיקיות אחסון שיתופי.
access.permissions.permission_details
.inherited
ערך בוליאני שמציין אם ההרשאה היא בירושה.
access.permissions.inherited_permissions
_disabled
האם ההרשאות שעברו בירושה הושבתו לפריט הזה. הערך הזה נכון רק לתיקיות עם גישה מוגבלת.
האם זו סכימת תבנית is_template ערך בוליאני שמציין אם הפריט הוא תבנית.

* הכוונה היא לתוויות שמוחלות על פריטים ב-Drive.

סכימה של תיקיות אחסון שיתופי

טבלת תיקיות אחסון שיתופי

בטבלה מפורטת הסכימה של שדות ספציפיים לתיקיות אחסון שיתופי בייצוא של מלאי Drive.

שם שדה סכימה תיאור
מזהה האחסון השיתופי shared_drive_id המזהה הייחודי של האחסון השיתופי.
שם האחסון השיתופי name השם של האחסון השיתופי, כפי שהמשתמש נתן לו.
זמן הקריאה read_time_micros חותמת הזמן של מועד הקריאה של המטא-נתונים של האחסון השיתופי, במיקרו-שניות.

סכימת שיתוף חיצוני

סכימה והגדרות של שיתוף עם גורמים חיצוניים

נתוני השיתוף החיצוני נוספים למערך הנתונים ב-BigQuery (אותו מערך נתונים כמו סכימת הייצוא של מלאי Drive) עם הסכימה הבאה:

שם שדה סכימה תיאור
יש שיתוף עם גורמים חיצוניים access.has_external_sharing העמודה הזו מציגה אם הקובץ משותף עם משתמשים חיצוניים או חשבונות שירות, כולל משתמשים עם גישה עקיפה באמצעות חברות בקבוצה.
  • השדה הזה מוגדר כ-True אם יש לקובץ משתמשים חיצוניים ששותפו איתם, כולל מקרים שבהם:
    • כל המשתפים הם חשבונות שירות.
    • הגישה מותרת על ידי אמצעי בקרה של מדיניות.
    • הקובץ פורסם באופן גלוי לכולם.
    • הקובץ משותף עם כולם.
  • השדה מוגדר כ-False אם הקובץ לא משותף עם גורמים חיצוניים, או אם אמצעי הבקרה של המדיניות חוסמים את הגישה של כל מי ששותף איתו הקובץ.
יש שיתוף חיצוני (לא כולל חשבונות שירות) access.has_external_sharing_excluding_service_accounts מציין אם יש לקובץ לפחות משתמש אחד ששותף איתו מחוץ לארגון. הערך שמוגדר כאן הוא False אם כל המשתפים החיצוניים הם חשבונות שירות.
פורסם מחוץ לארגון access.is_published_externally מציין אם הקובץ פורסם מחוץ לארגון.
משותף עם כולם access.is_shared_with_everyone האם הקובץ משותף עם כולם.
משתמשים חיצוניים ששותפו איתם קבצים

access.external_sharees.type

הסוג של המשתמש החיצוני ששיתפו איתו את הקובץ. הרשימה הבאה כוללת דוגמאות לכל סוג הרשאה:

  • משתמש
  • קבוצה
  • לא צוין – רוב החשבונות בקטגוריה הזו הם חשבונות לא מאומתים

access.external_sharees.email

מוצגת כתובת האימייל של המשתמש החיצוני ששיתפתם איתו.

access.external_sharees.is_service_account

מציין אם המשתמש החיצוני שאיתו משתפים הוא חשבון שירות.

access.external_sharees.access_blocked_by_policy_control

העמודה הזו מציגה אם הגישה נחסמת על ידי מדיניות (לדוגמה, DLP או כללים להרשאת שיתוף). אם הערך הוא True, המשתמש שאיתו משתפים את הרשימה לא נכלל בחישובים של has_external_sharing ושל has_external_sharing_excluding_service_accounts.

פרטי DLP access.dlp_info.matching_dlp_rules רשימה של כללי ה-DLP התואמים שהוחלו על הפריט הזה.

שיקולים לגבי ביצועים: אם יש לכם קבוצות עם כמה משתמשים מקוננים, יכול להיות שייקח יותר זמן לחשב את השדות של שיתוף חיצוני. העיכוב הזה עלול להשפיע על עדכניות הנתונים (לדוגמה, בדוחות יומיים).

דוגמאות לשאילתות

הדוגמאות האלה לשאילתות מבוססות על SQL מדור קודם. מידע נוסף על שאילתות של נתונים ב-BigQuery

מחליפים את project_name.dataset_name בשם הפרויקט ובשם מערך הנתונים.

השאילתה הזו מחזירה טבלה עם מזהה הקובץ, השם, כתובת האימייל של הבעלים והסוג.

SELECT id, title, mime_type, owner.user.email
FROM project_name.dataset_name
WHERE EXISTS (
  SELECT 1
  FROM UNNEST(access.permissions) AS permission
  WHERE permission.allow_file_discovery = true
)

חיפוש פריטים עם תווית ספציפית

מחליפים את project_name.dataset_name בשם הפרויקט ובשם מערך הנתונים. מחליפים את label_id במזהה התווית, שאפשר למצוא במרכז ניהול התוויות.

השאילתה הזו מחזירה טבלה עם מזהה הקובץ, השם, כתובת האימייל של הבעלים והסוג.

SELECT id, title, mime_type, owner.user.email
FROM project_name.dataset_name
WHERE EXISTS (
  SELECT 1
  FROM UNNEST(applied_labels) AS label
  WHERE label.id = label_id
)

איתור משתמשים שחורגים מסף השימוש בנפח האחסון ב-Drive

מחליפים את project_name.dataset_name בשם הפרויקט ובשם מערך הנתונים. מחליפים את threshold בסף הרצוי במגה-בייט. לדוגמה, כדי למצוא משתמשים שמשתמשים ביותר מ-15GB של אחסון ב-Drive, השורה הלפני האחרונה היא HAVING total_storage_mb > 15000.

השאילתה הזו מחזירה טבלה עם כתובות האימייל של המשתמשים וסך השימוש שלהם בנפח האחסון ב-Drive, בסדר יורד.

SELECT owner.user.email AS user_email,
  SUM(size_bytes) / (1000000) AS total_storage_mb
FROM project_name.dataset_name
GROUP BY user_email
HAVING total_storage_mb > threshold
ORDER BY total_storage_mb DESC

איך בודקים אילו סוגי פריטים תופסים הכי הרבה מקום

מחליפים את project_name.dataset_name בשם הפרויקט ובשם מערך הנתונים.

השאילתה הזו מחזירה טבלה של סוגי פריטים לפי גודל בסדר יורד.

SELECT mime_type, SUM(consumed_quota_bytes) AS total_consumed
FROM project_name.dataset_name
GROUP BY mime_type
ORDER BY total_consumed DESC

חיפוש פריטים שהוצפנו באמצעות הצפנה מצד הלקוח (CSE)

מחליפים את project_name.dataset_name בשם הפרויקט ובשם מערך הנתונים.

SELECT id, owner.user.email, title
FROM project_name.dataset_name
WHERE mime_type LIKE '%.encrypted'

חיפוש פריטים ששותפו עם משתמש ספציפי

מחליפים את project_name.dataset_name בשם הפרויקט ובשם מערך הנתונים. מחליפים את user@example.com במשתמש הספציפי שלכם.

הערה: השאילתה הזו לא מוצאת שיתוף של המשתמש דרך קבוצות או חברות בקהל יעד.

SELECT id, title, mime_type, owner.user.email as owner_email
FROM project_name.dataset_name
WHERE EXISTS (
  SELECT 1
  FROM UNNEST(access.permissions) AS permissions
  WHERE permissions.email = user@example.com
)

חיפוש פריטים לפי שם של אחסון שיתופי

מחליפים את project_name.dataset_name בשם הפרויקט ובשם מערך הנתונים.

השאילתה הזו מחזירה טבלה עם שם הפריט ב-Drive ושם האחסון השיתופי.

SELECT i.title, s.name
FROM project_name.dataset_name.inventory AS i
JOIN project_name.dataset_name.shared_drives AS s
ON i.owner.shared_drive.id = s.shared_drive_id;

חיפוש מספר הפריטים באחסון השיתופי

מחליפים את project_name.dataset_name בשם הפרויקט ובשם מערך הנתונים.

השאילתה הזו מחזירה טבלה עם שם האחסון השיתופי ומספר הפריטים.

SELECT  s.name as shared_drive, count(*) as item_count
FROM project_name.dataset_name.inventory AS i
JOIN project_name.dataset_name.shared_drives AS s
ON i.owner.shared_drive.id = s.shared_drive_id
GROUP BY shared_drive;