BigQuery でドライブのインベントリをエクスポートするためのスキーマとサンプルクエリ

この機能に対応しているエディション: Frontline Plus、Enterprise Standard、Enterprise Plus、Education Standard、Education Plus、Enterprise Essentials Plus、Cloud Identity Premium。エディションを比較する

ドライブのインベントリのエクスポートを設定したら、BigQuery でデータセットを分析できます。このページでは、BigQuery から取得できる一般的なレポートのテーブル スキーマとクエリ例について説明します。

注: BigQuery でドライブのインベントリをエクスポートしてクエリするには費用がかかるため、Google Cloud プロジェクトの課金を設定する必要があります。プロジェクトの課金を有効にする

ドライブのインベントリのエクスポート スキーマ

スキーマと定義

ドライブ インベントリのエクスポートは、次のスキーマで BigQuery データセットに追加されます。

名前 スキーマ フィールド 説明
アイテム ID id アイテムの固有の Google ドライブ アイテム ID。
バージョン version ファイルの最新バージョン番号。ファイル バージョンの数値は単調に増加します。ユーザーには表示されない変更も含め、サーバー上のファイルに加えられたすべての変更が反映されます。
所有者 ID owner.user.id

ユーザーが所有するアイテムの場合は、ファイルのオーナーのユーザー ID。

オーナーのメールアドレス owner.user.email ユーザーが所有するアイテムの場合は、ファイルのオーナーのメールアドレス。
共有ドライブ ID owner.shared_drive.id 共有ドライブ内のアイテムの場合は、共有ドライブ ID。
作成者 creator アイテムの作成者のメールアドレスとユーザー ID。クリエイターがアイテムにアクセスできなくなった場合、このフィールドには値が入力されません。
スナップショットのタイムスタンプ snapshot_start_time_microssnapshot_end_time_micros レポート生成の開始時刻と終了時刻のタイムスタンプ。
読み取り時間 read_time_micros ドライブ アイテムのメタデータが読み取られたときのタイムスタンプ。
タイトル title

ユーザーが指定したファイルのタイトル。

説明 description アイテムの短い説明です。
ゴミ箱のステータス trashed アイテムがゴミ箱に移動されているがまだ削除されていないかどうか。
MIME タイプ mime_type アイテムの MIME タイプ。Google Workspace と Google ドライブのサポートされている MIME タイプをご覧ください。
ファイル拡張子 file_extension 完全なファイル拡張子の最後のコンポーネント。名前フィールドから抽出されます。これは、Google ドライブ内のバイナリ コンテンツを含むアイテムでのみ使用できます。
作成時間 create_time_micros アイテムが作成されたときのタイムスタンプ。
最終更新時間 last_modified_time_micros アイテムが最後に変更された時刻のタイムスタンプ。
ファイルサイズ file_size_bytes blob とドキュメント エディタ ファイルのサイズ(バイト単位)。ショートカットやフォルダなど、サイズのないアイテムについては報告されません。
消費した割り当て consumed_quota_bytes アイテムによって使用された保存容量のバイト数。これには、HEAD リビジョンと保持された以前のリビジョンが含まれます。
共有ドライブ ID shared_drive_id 共有ドライブ内のアイテムの場合は、共有ドライブ ID。
組織部門 org_unit_path アイテムのオーナーの組織部門。
チェックサム md5_checksum アイテムのコンテンツの MD5 チェックサム。
クライアントサイドの暗号化 client_side_encrypted アイテムがクライアントサイド暗号化されているかどうかを示すブール値。
親フォルダ parent アイテムの親フォルダの ID。
適用されたラベル* applied_labels.id アイテムに適用されるラベルの ID。
applied_labels.title アイテムに適用されるラベルのリソース名。
applied_labels.field_values.id

ラベルまたはライブラリ内で一意のフィールド ID。

applied_labels.field_values.type

フィールドのタイプ。次のいずれかになります

applied_labels.field_values.display_name

UI に表示する、フィールドを識別するテキスト。
ショートカットのターゲット ID shortcut_target_id このショートカットが指すファイルまたはフォルダの ID。
権限 access.permissions.permission_id

この権限の ID。これは、権限を付与されたユーザー向けの固有の識別子です。

注: 権限 ID はユーザー 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 この権限が参照するエンティティのドメイン名。権限の種類が usergroupdomain のいずれかである場合に表示されます。
access.permissions.user_id 権限のメールアドレスに関連付けられているユーザー ID。
access.permissions.permission_details
.permission_type
ユーザーの権限タイプ。
access.permissions.permission_details.role ユーザーのメインのロール。
access.permissions.permission_details
.inherited_from
この権限が継承されるアイテムの ID。共有ドライブ内のアイテムにのみ入力されます。
access.permissions.permission_details
.inherited
権限が継承されるかどうかを示すブール値。
access.permissions.inherited_permissions
_disabled
このアイテムで継承された権限が無効になっているかどうか。アクセス制限付きのフォルダの場合のみ true。

* ドライブのアイテムに適用されたラベルを指します。

クエリの例

こうしたクエリでは、レガシー SQL が使用されます。project_name.dataset_name の部分を、実際のプロジェクト名とデータセット名に置き換えてください。詳しくは、BigQuery データのクエリをご覧ください。

project_name.dataset_nameproject_name.dataset_name の部分を、実際のプロジェクト名とデータセット名に置き換えてください。

ファイル ID、タイトル、オーナーのメールアドレス、タイプを含むテーブルを返します。

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_nameproject_name.dataset_name の部分を、実際のプロジェクト名とデータセット名に置き換えてください。label_id は、ラベル マネージャーで確認できるラベル ID に置き換えます。

このクエリは、ファイル 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
)

ドライブ ストレージの使用量のしきい値を超えているユーザーを検索する

project_name.dataset_nameproject_name.dataset_name の部分を、実際のプロジェクト名とデータセット名に置き換えてください。[しきい値] は、MB 単位のしきい値に置き換えます。たとえば、ドライブ ストレージの使用量が 15 GB を超えるユーザーを検索するには、最後から 2 番目の行を HAVING total_storage_mb > 15000 にします。

このクエリは、ユーザーのメールアドレスとドライブ ストレージの合計使用量(MB)を降順で返します。

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_nameproject_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_nameproject_name.dataset_name の部分を、実際のプロジェクト名とデータセット名に置き換えてください。

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

特定のユーザーと共有しているアイテムを探す

project_name.dataset_nameproject_name.dataset_name の部分を、実際のプロジェクト名とデータセット名に置き換えてください。user@example.comuser@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
)