BigQuery 中云端硬盘资产清单导出操作的架构和查询示例

支持此功能的版本:一线员工 Plus 版;企业标准版和企业 Plus 版;教育标准版和教育 Plus 版;企业基本功能 Plus 版;Cloud Identity 专业版。 版本对比

设置云端硬盘资产清单导出后,您便可以在 BigQuery 中分析数据集。本页面介绍了您可以从 BigQuery 获取的常见报告的表架构和查询示例。

注意:您必须为 Google Cloud 项目设置结算,因为在 BigQuery 中导出和查询云端硬盘资产清单需要付费。为项目启用结算功能

云端硬盘资产清单导出架构

架构和定义

将云端硬盘资产清单导出数据添加到 BigQuery 数据集,其架构如下:

名称 架构字段 说明
商品 ID 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 内容是否已移至回收站但尚未删除。
MimeType mime_type 内容的 MIME 类型。请参阅 Google Workspace 和 Google 云端硬盘支持的 MIME 类型
文件扩展名 file_extension 完整文件扩展名的最后一个组成部分,从名称字段中提取。此架构仅适用于 Google 云端硬盘中的二进制内容项
创建时间 create_time_micros 相应内容创建时间的时间戳。
上次修改时间 last_modified_time_micros 表示上次有人修改相应内容的时间的时间戳。
文件大小 file_size_bytes blob 和文档编辑器文件的大小(以字节为单位)。系统不会针对没有大小的内容(例如快捷方式和文件夹)报告大小。
已用配额 consumed_quota_bytes 内容使用的存储空间配额字节数。这包括头部修订版本以及已保留的先前修订版本。
共享云端硬盘 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

用于标识字段的界面文本。
快捷方式目标 ID shortcut_target_id 相应快捷方式所指向的文件或文件夹的 ID。
权限 access.permissions.permission_id

相应权限的 ID。这是被授权者的唯一标识符。

注意:权限 ID 不同于用户 ID。

access.permissions.name

权限值的“适当”名称。以下是适用于每种权限类型的示例列表:

  • user - 用户的全名(如“Dana Cruz”)(针对其 Google 账号定义)
  • 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

权限是否允许对文件进行搜索。仅针对 domainanyone 类型的权限报告。
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
相应项是否停用了继承的权限。仅适用于访问权限受限的文件夹。

* 指应用于云端硬盘中的内容的标签

查询示例

这些查询示例假设您使用旧版 SQL。请将 project_name.dataset_nameproject_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_idlabel_id 替换为您的标签 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 替换为您的项目名称和数据集名称。请将 threshold 替换为您的阈值(以 MB 为单位)。例如,如需查找云端硬盘存储空间用量超过 15 GB 的用户,倒数第二行为 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.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
)