Schema und Beispielabfragen für Exporte von Drive-Inventar in BigQuery

Unterstützte Versionen für diese Funktion: Frontline Plus; Enterprise Standard und Enterprise Plus; Education Standard und Education Plus; Enterprise Essentials Plus; Cloud Identity Premium. Versionen vergleichen

Nachdem Sie Exporte des Drive-Inventars eingerichtet haben, können Sie das Dataset in BigQuery analysieren. Auf dieser Seite werden das Tabellenschema und Beispielabfragen für häufig verwendete Berichte beschrieben, die Sie mit BigQuery erstellen können.

Hinweis:Sie müssen die Abrechnung für Ihr Google Cloud-Projekt einrichten, da das Exportieren und Abfragen Ihres Drive-Inventars in BigQuery kostenpflichtig ist. Abrechnung für ein Projekt aktivieren .

Schema für den Export von Google Drive-Inventar

Schema und Definitionen

Der Export von Drive-Inventar wird dem BigQuery-Dataset mit dem folgenden Schema hinzugefügt:

Name Schemafeld Beschreibung
Artikel-ID id Die eindeutige Drive-Element-ID des Elements.
Version version Die neueste Versionsnummer der Datei. Die Dateiversion ist eine monoton steigende Zahl. Hier wird jede Änderung an der Datei auf dem Server angezeigt, auch wenn sie für den Nutzer nicht sichtbar ist.

Inhaber

owner.user.id

Für Elemente, die einem Nutzer gehören, die Nutzer-ID des Dateiinhabers.

owner.user.email

Für Elemente, die einem Nutzer gehören, die E-Mail-Adresse des Dateieigentümers.

owner.shared_drive.id

Für Elemente in einer geteilten Ablage die ID der geteilten Ablage.

Ersteller creator Die E-Mail-Adresse und die Nutzer-ID des Erstellers des Elements. Dieses Feld ist leer, wenn der Ersteller keinen Zugriff mehr auf das Element hat.
Snapshot-Zeitstempel snapshot_start_time_micros und snapshot_end_time_micros Die Zeitstempel für den Beginn und das Ende der Berichterstellung.
Lesezeit read_time_micros Der Zeitstempel für den Zeitpunkt, zu dem die Metadaten des Drive-Elements gelesen wurden.
Titel title

Der vom Nutzer angegebene Dateititel.

Beschreibung description Eine kurze Beschreibung des Elements
Status „In den Papierkorb verschoben“ trashed Gibt an, ob das Element in den Papierkorb verschoben, aber noch nicht gelöscht wurde.
MIME-Typ mime_type Der MIME-Typ des Elements. Unterstützte MIME-Typen für Google Workspace und Google Drive
Dateiendung file_extension Die letzte Komponente der vollständigen Dateiendung, die aus dem Feld „Name“ extrahiert wird. Diese Funktion ist nur für Elemente mit binärem Inhalt in Google Drive verfügbar.
Erstellungszeit create_time_micros Der Zeitstempel für den Zeitpunkt, zu dem das Element erstellt wurde.
Uhrzeit der letzten Aktualisierung last_modified_time_micros Der Zeitstempel der letzten Änderung des Elements durch einen Nutzer.
Größe (Byte) size_bytes Die Größe von Blobs und Dateien aus den Docs-Editoren in Byte. Wird nicht für Elemente ohne Größe wie Verknüpfungen und Ordner gemeldet.
Verbrauchtes Kontingent consumed_quota_bytes Die Anzahl der vom Element verwendeten Speicherkontingent-Byte. Dazu gehören die aktuelle Version sowie frühere Versionen, die beibehalten wurden.
Organisationseinheit org_unit_path Die Organisationseinheit des Inhabers des Elements.
Prüfsumme md5_checksum Die MD5-Prüfsumme für den Inhalt des Artikels.
Clientseitige Verschlüsselung client_side_encrypted Ein boolescher Wert, der angibt, ob das Element clientseitig verschlüsselt ist .
Übergeordneter Ordner parent Die ID des übergeordneten Ordners für das Element.

In den folgenden Fällen wird der übergeordnete Ordner nicht ausgefüllt:

  1. Die Datei befindet sich im Ordner der obersten Ebene von „Meine Ablage“ eines Nutzers.
  2. Der übergeordnete Ordner gehört nicht zur Domain.
Angewendete Labels* applied_labels.id Die ID des Labels, das auf den Artikel angewendet wurde.
applied_labels.title Der Ressourcenname des Labels, das auf das Element angewendet wird.
applied_labels.field_values.id

Die ID eines Felds, die innerhalb eines Labels oder einer Bibliothek eindeutig ist.

applied_labels.field_values.type

Der Typ des Felds. folgende Arten von Werten sind möglich:

applied_labels.field_values.display_name

Der Text, der in der Benutzeroberfläche angezeigt wird, um das Feld zu identifizieren.
ID des Verknüpfungsziels shortcut_target_id Die ID der Datei oder des Ordners, auf die diese Verknüpfung verweist.
Berechtigungen access.permissions.permission_id

Die ID dieser Berechtigung. Dies ist eine eindeutige Kennung für den Empfänger.

Hinweis: Die Berechtigungs-ID ist nicht mit der Nutzer-ID identisch.

access.permissions.name

Der „hübsche“ Name des Berechtigungswerts. Im Folgenden finden Sie eine Liste mit Beispielen für die einzelnen Berechtigungstypen:

  • user: Der vollständige Name des Nutzers, wie er für sein Google-Konto definiert ist, z. B. „Dana Cruz“
  • group: Name der Gruppe, z. B. „Beispieladministratoren“
  • domain: String-Domainname, wie z. B. „beispiel.de“
  • anyone: Kein Name gemeldet
access.permissions.type

Der Typ der Berechtigung. Gültige Werte sind:

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

Die Rolle, die durch diese Berechtigung gewährt wird. Gültige Werte sind:

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

Hinweis: Weitere Informationen zum Typ finden Sie unter Rollen und Berechtigungen.

access.permissions.view

Wenn die Berechtigung zu einer Ansicht gehört, lautet der Wert published.

access.permissions.allow_file_discovery

Gibt an, ob die Datei aufgrund der Berechtigung durchsucht werden kann. Wird nur für Berechtigungen vom Typ domain oder anyone gemeldet.
access.permissions.email Die E‑Mail-Adresse des Nutzers oder der Gruppe, auf die sich diese Berechtigung bezieht.
access.permissions.domain Der Domainname der Entität, auf die sich diese Berechtigung bezieht. Dieser ist vorhanden, wenn der Berechtigungstyp user, group oder domain ist.
access.permissions.user_id Die Nutzer-ID, die mit der E-Mail-Adresse in den Berechtigungen verknüpft ist.
access.permissions.permission_details
.permission_type
Der Berechtigungstyp für den Nutzer.
access.permissions.permission_details.role Die primäre Rolle für den Nutzer.
access.permissions.permission_details
.inherited_from
Die ID des Elements, von dem diese Berechtigung übernommen wird. Wird nur für Elemente in geteilten Ablagen ausgefüllt.
access.permissions.permission_details
.inherited
Ein boolescher Wert, der angibt, ob die Berechtigung übernommen wird.
access.permissions.inherited_permissions
_disabled
Gibt an, ob übernommene Berechtigungen für dieses Element deaktiviert sind. Gilt nur für Ordner mit eingeschränktem Zugriff.

* Bezieht sich auf Labels, die auf Elemente in Drive angewendet werden.

Schema für geteilte Ablagen

Tabelle „Geteilte Ablagen“

In der Tabelle wird das Schema für die spezifischen Felder für geteilte Ablagen im Drive-Inventarexport beschrieben.

Name Schemafeld Beschreibung
ID der geteilten Ablage shared_drive_id Die eindeutige ID der geteilten Ablage.
Name der geteilten Ablage name Der vom Nutzer angegebene Name der geteilten Ablage.
Lesezeit read_time_micros Der Zeitstempel, wann die Metadaten der geteilten Ablage gelesen wurden, in Mikrosekunden.

Beispielabfragen

Für die Abfragen wird Legacy-SQL vorausgesetzt. Weitere Informationen zum Abfragen von BigQuery-Daten

Ersetzen Sie project_name.dataset_name durch Ihren eigenen Projektnamen und Dataset-Namen.

Diese Abfrage gibt eine Tabelle mit Datei-ID, Titel, E-Mail-Adresse des Eigentümers und Typ zurück.

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
)

Elemente mit einem bestimmten Label finden

Ersetzen Sie project_name.dataset_name durch Ihren eigenen Projektnamen und Dataset-Namen. Ersetzen Sie label_id durch Ihre Label-ID, die Sie in der Label-Verwaltung finden.

Diese Abfrage gibt eine Tabelle mit Datei-ID, Titel, E-Mail-Adresse des Eigentümers und Typ zurück.

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
)

Nutzer finden, die einen bestimmten Grenzwert für die Drive-Speichernutzung überschreiten

Ersetzen Sie project_name.dataset_name durch Ihren eigenen Projektnamen und Dataset-Namen. Ersetzen Sie threshold durch Ihren Schwellenwert in MB. Wenn Sie beispielsweise Nutzer mit mehr als 15 GB Drive-Speicherplatznutzung ermitteln möchten, lautet die vorletzte Zeile HAVING total_storage_mb > 15000.

Diese Abfrage gibt eine Tabelle mit der E-Mail-Adresse des Nutzers und der gesamten Drive-Speichernutzung in MB in absteigender Reihenfolge zurück.

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

Herausfinden, welche Elementtypen am meisten Speicherplatz belegen

Ersetzen Sie project_name.dataset_name durch Ihren eigenen Projektnamen und Dataset-Namen.

Diese Abfrage gibt eine Tabelle mit Artikeltypen in absteigender Größe zurück.

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

Elemente mit clientseitiger Verschlüsselung (CSE) finden

Ersetzen Sie project_name.dataset_name durch Ihren eigenen Projektnamen und Dataset-Namen.

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

Elemente finden, die für einen bestimmten Nutzer freigegeben wurden

Ersetzen Sie project_name.dataset_name durch Ihren eigenen Projektnamen und Dataset-Namen. Ersetzen Sie user@example.com durch den entsprechenden Nutzer.

Hinweis: Mit dieser Abfrage werden keine Freigaben für den Nutzer über Gruppen oder Zielgruppen gefunden.

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
)

Elemente mit Namen von geteilten Ablagen finden

Ersetzen Sie project_name.dataset_name durch Ihren eigenen Projektnamen und Dataset-Namen.

Diese Abfrage gibt eine Tabelle mit dem Titel des Drive-Elements und dem Namen der geteilten Ablage zurück.

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;

Anzahl der Elemente in einer geteilten Ablage ermitteln

Ersetzen Sie project_name.dataset_name durch Ihren eigenen Projektnamen und Dataset-Namen.

Diese Abfrage gibt eine Tabelle mit dem Namen der geteilten Ablage und der Anzahl der Elemente zurück.

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;