BigQuery의 Drive 인벤토리 내보내기에 대한 스키마 및 쿼리 예시

이 기능이 지원되는 버전: Frontline Plus, Enterprise Standard 및 Enterprise Plus, Education Standard 및 Education Plus, Enterprise Essentials Plus, Cloud ID Premium 사용 중인 버전 비교하기

Drive 인벤토리 내보내기를 설정한 후 BigQuery에서 데이터 세트를 분석할 수 있습니다. 이 페이지에서는 BigQuery에서 가져올 수 있는 일반적인 보고서의 테이블 스키마 및 쿼리 예시를 설명합니다.

참고: BigQuery에서 Drive 인벤토리를 내보내고 쿼리하는 데 비용이 발생하므로 Google Cloud 프로젝트에 대한 결제를 설정해야 합니다. 프로젝트에 결제 사용 설정하기

Drive 인벤토리 내보내기 스키마

스키마 및 정의

Drive 인벤토리 내보내기는 다음 스키마를 사용하여 BigQuery 데이터 세트에 추가됩니다.

이름 스키마 필드 설명
상품 ID id 항목의 고유 Drive 항목 식별자입니다.
버전 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 Drive 항목 메타데이터가 읽힌 시점의 타임스탬프입니다.
제목 title

사용자가 지정한 파일 제목입니다.

설명 description 항목에 대한 간략한 설명
휴지통으로 이동된 상태 trashed 항목이 휴지통으로 이동되었지만 아직 삭제되지 않았는지 여부입니다.
MIME 형식 mime_type 항목의 MIME 유형입니다. Google Workspace 및 Google Drive에서 지원되는 MIME 유형을 참고하세요.
파일 확장자 file_extension 전체 파일 확장자의 마지막 구성요소로, 이름 필드에서 추출됩니다. Google Drive의 바이너리 콘텐츠가 있는 항목에만 사용할 수 있습니다.
생성 시간 create_time_micros 상품이 생성된 시점의 타임스탬프입니다.
최종 수정 시간 last_modified_time_micros 다른 사용자가 항목을 마지막으로 수정한 시간의 타임스탬프입니다.
파일 크기 file_size_bytes blob 및 Docs 편집기 파일의 크기(바이트)입니다. 바로가기 및 폴더와 같이 크기가 없는 항목은 보고되지 않습니다.
사용된 할당량 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

필드를 식별하는 UI에서 표시하는 텍스트입니다.
바로가기 대상 ID shortcut_target_id 이 바로가기가 가리키는 파일 또는 폴더의 ID입니다.
권한 access.permissions.permission_id

이 권한의 ID입니다. 수혜자의 고유 식별자입니다.

참고: 권한 ID는 사용자 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 권한의 이메일과 연결된 사용자 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
이 항목에 대해 상속된 권한이 사용 중지되었는지 여부입니다. 액세스가 제한된 폴더에만 해당합니다.

* Drive의 항목에 적용된 라벨을 나타냅니다.

쿼리 예시

이러한 쿼리 예는 legacy SQL 사용을 전제로 합니다. project_name.dataset_name을 자신의 프로젝트 이름 및 데이터 세트 이름으로 변경합니다. BigQuery 데이터 쿼리에 대해 자세히 알아보세요.

project_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_name을 프로젝트 이름 및 데이터 세트 이름으로 바꿉니다. label_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
)

Drive 스토리지 사용량 기준점을 초과하는 사용자 찾기

project_name.dataset_name을 프로젝트 이름 및 데이터 세트 이름으로 바꿉니다. threshold를 MB의 기준점으로 바꿉니다. 예를 들어 Drive 스토리지 사용량이 15GB를 초과하는 사용자를 찾으려면 마지막에서 두 번째 줄에 HAVING total_storage_mb > 15000을 입력하면 됩니다.

이 쿼리는 테이블 사용자 이메일과 총 Drive 스토리지 사용량(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_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
)