Схема и примеры запросов для экспорта данных о ресурсах Диска в BigQuery

Эта функция доступна в версиях Frontline Plus, Enterprise Standard, Enterprise Plus, Education Standard, Education Plus, Enterprise Essentials Plus и Cloud Identity Premium. Сравнение версий

После экспорта данных о ресурсах Диска вы можете проанализировать их в BigQuery. На этой странице вы найдете схему таблицы и примеры запросов для создания отчетов в BigQuery.

Примечание. Для вашего облачного проекта Google Cloud нужно настроить платежные функции, поскольку за экспорт данных о ресурсах Диска в BigQuery взимается плата. Включить оплату для проекта.

Схема экспорта данных о ресурсах Диска

Схема экспорта данных о ресурсах Диска

Схема данных о ресурсах Диска, которые добавляются в набор данных BigQuery, приведена ниже.

Схема и определения
Название Поле схемы Описание
Идентификатор объекта id Уникальный идентификатор объекта на Диске.
Версия version Номер последней версии файла. Номер версии файла – это число, которое увеличивается от версии к версии. Оно отражает каждое изменение, внесенное в файл на сервере, даже когда эти изменения невидимы для пользователя.
Владелец

owner.user.id

Для объектов, которые принадлежат пользователю, – идентификатор пользователя файла.

owner.user.email

Для объектов, которые принадлежат пользователю, – адрес электронной почты владельца файла.

owner.shared_drive.id

Для объектов на общем диске – идентификатор общего диска.

Автор creator Адрес электронной почты и идентификатор пользователя, создавшего файл. Это поле не заполняется, если автор больше не имеет доступа к объекту.
Временные метки снимков snapshot_start_time_micros и snapshot_end_time_micros Временные метки начала и окончания создания отчета.
Время чтения read_time_micros Временная метка, указывающая, когда были прочитаны метаданные объекта на Диске.
Название title Заданное пользователем название файла.
Описание description Краткое описание объекта.
Статус перемещенного в корзину trashed Перемещен ли объект в корзину (но ещё не удален).
MIME-тип mime_type MIME-тип объекта. Ознакомьтесь с перечнем поддерживаемых MIME-типов для Google Workspace и Google Диска.
Расширение имени файла file_extension Последний компонент полного расширения имени файла, извлеченный из поля названия. Он доступен только для объектов с двоичным контентом на Google Диске.
Время создания create_time_micros Временная метка, указывающая, когда создан файл.
Время последнего изменения last_modified_time_micros Временная метка, указывающая, когда файл в последний раз был кем-либо изменен.
Размер в байтах size_bytes Размер в байтах BLOB-объектов и файлов редакторов Документов. Не указывается для объектов, не имеющих размера, таких как ярлыки и папки.
Израсходованная квота consumed_quota_bytes Количество байт квоты на хранение, которые использованы объектом. Включает размер основной версии и сохраненных предыдущих версий.
Организационное подразделение org_unit_path Организационное подразделение, к которому относится владелец объекта.
Контрольная сумма md5_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, например "Ирина Иванова"
  • group – название группы, например "Администраторы"
  • 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
Логическое значение, указывающее, отключены ли унаследованные разрешения для этого объекта. Значение true применяется только к папкам с ограниченным доступом.
Схема шаблона is_template Логическое значение, указывающее, является ли объект шаблоном.

* Относится к ярлыкам, назначенным объектам на Диске.

Схема общих дисков

Таблица общих дисков

В таблице приведена схема полей, относящихся к общим дискам, в экспортируемых данных о ресурсах Диска.

Название Поле схемы Описание
Идентификатор общего диска shared_drive_id Уникальный идентификатор общего диска.
Название общего диска name Название общего диска, заданное пользователем.
Время чтения read_time_micros Временная метка, указывающая, когда были прочитаны метаданные общего диска (в микросекундах).

Схема внешнего доступа

Схема и определения внешнего доступа

Схема данных о внешнем доступе, которые добавляются в набор данных BigQuery (тот же набор данных, что и схема экспорта данных о ресурсах Диска), приведена ниже.

Название Поле схемы Описание
Внешний доступ 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

Показывает тип внешнего пользователя, которому предоставлен доступ. В списке ниже приведены примеры для каждого типа разрешения:

  • ПОЛЬЗОВАТЕЛЬ
  • GROUP
  • НЕ УКАЗАНО – большинство аккаунтов в этой категории не заявлены.

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 идентификатором ярлыка, который можно узнать в Label Manager.

Результатом этого запроса будет таблица со следующими столбцами: идентификатор файла, название, адрес электронной почты владельца и тип.

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_name названиями своего проекта и набора данных. Замените threshold пороговым значением в МБ. Например, чтобы найти пользователей, у которых занято более 15 ГБ пространства на Диске, вторая с конца строка должна быть следующей: HAVING total_storage_mb > 15000.

Результатом этого запроса будет таблица со списком пользователей, отсортированным по занятому их данными пространству на Диске в МБ от большего к меньшему.

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

Как найти объекты, зашифрованные с помощью клиентского шифрования

Замените 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 названиями своего проекта и набора данных.

Результатом этого запроса будет таблица со столбцами "Название объекта на Диске" и "Название общего диска".

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;