Storage Insights 데이터 세트

Storage Insights 데이터 세트 기능을 사용하면 대규모로 데이터를 이해, 구성, 관리할 수 있습니다. 메타데이터를 업데이트할 버킷 및 객체가 포함된 조직 또는 프로젝트 또는 폴더를 하나 이상 선택할 수 있습니다. 이러한 프로젝트 내에 포함된 버킷 및 객체에 대한 쿼리 가능한 메타데이터 색인이 BigQuery 연결 데이터 세트로 제공됩니다.

BigQuery로 내보낸 Cloud Storage 리소스에 대한 유용한 정보를 얻으려면 Storage Insights 데이터 세트를 사용하세요. 이러한 통계를 활용하면 데이터 탐색, 비용 최적화, 보안 시행, 거버넌스 구현에 도움이 됩니다. Storage Insights 데이터 세트는 Storage Intelligence 구독을 통해서만 이용할 수 있는 독점 기능입니다.

개요

Storage Insights 데이터 세트는 조직 내에서 지정된 하나 이상의 소스 프로젝트 내의 모든 버킷 및 객체에 대한 메타데이터의 롤링 스냅샷입니다. 데이터 세트에서 제공하는 정보를 통해 Cloud Storage 데이터를 더 잘 이해하고 정기적으로 감사할 수 있습니다.

데이터 세트를 만들려면 먼저 프로젝트에서 데이터 세트 구성을 만듭니다. 메타데이터를 보려는 버킷 및 객체가 포함된 조직 또는 하나 이상의 프로젝트 또는 폴더를 선택할 수 있습니다. 데이터 세트 구성은 매일 데이터 세트를 생성합니다. 데이터 세트 구성과 데이터 세트는 모두 Cloud Storage 내에 저장된 리소스입니다.

데이터 세트를 보려면 먼저 데이터 세트를 BigQuery에 연결해야 합니다.

데이터 세트 구성 속성

데이터 세트 구성을 만들 때 데이터 세트의 다음 속성을 설정합니다.

  • 이름: 데이터 세트를 참조하는 데 사용되는 이름입니다. 이름은 데이터 세트 구성의 식별자로 사용되며 구성이 생성된 후에는 변경할 수 없습니다. 이름은 문자, 숫자, 밑줄을 사용하여 최대 128자(영문 기준)로 구성할 수 있습니다. 이름은 문자로 시작해야 합니다.

  • 설명 (선택사항): 데이터 세트에 대한 설명입니다. 언제든지 설명을 수정할 수 있습니다.

  • 데이터 세트 범위: 메타데이터를 원하는 버킷과 객체가 포함된 조직, 프로젝트 또는 폴더입니다. 프로젝트 또는 폴더를 개별적으로 지정하거나 CSV 파일로 지정할 수 있으며, 각 프로젝트 또는 폴더 번호는 별도의 줄에 입력합니다. 하나의 데이터 세트 구성에서 최대 10,000개의 프로젝트 또는 폴더를 지정할 수 있습니다.

  • 버킷 필터 (선택사항): 버킷 이름 또는 지역별로 데이터 세트에서 특정 버킷을 포함하거나 제외하는 데 사용되는 필터입니다.

  • 보관 기간: 데이터 세트가 데이터를 캡처하고 보관하는 기간(데이터 세트 생성 날짜 포함)입니다. 데이터 세트는 24시간마다 메타데이터로 업데이트되며 최대 90일 동안 데이터를 보관할 수 있습니다. 보관 기간 외부에 캡처된 데이터는 자동으로 삭제됩니다. 예를 들어 보관 기간이 30으로 설정된 2023년 10월 1일에 생성된 데이터 세트가 있다고 가정해 보겠습니다. 10월 30일에는 10월 1일부터 10월 30일까지의 지난 30일간의 데이터가 데이터 세트에 반영됩니다. 10월 31일에는 10월 2일~10월 31일의 데이터가 데이터 세트에 반영됩니다. 유지 기간은 언제든지 수정할 수 있습니다.

  • 위치: 데이터 세트와 데이터를 저장할 위치입니다. 예를 들면 us-central1입니다. BigQuery에서 지원하는 위치여야 합니다. BigQuery 테이블이 있는 경우 테이블의 위치를 선택하는 것이 좋습니다.

  • 서비스 에이전트 유형: 구성 범위 서비스 에이전트 또는 프로젝트 범위 서비스 에이전트입니다.

    데이터 세트 구성을 만들면 서비스 에이전트가 프로비저닝됩니다. 데이터 세트를 읽으려면 서비스 에이전트에 Cloud Storage 버킷에서 데이터를 읽는 데 필요한 권한을 부여해야 합니다.

    프로젝트 범위 서비스 계정은 프로젝트의 모든 데이터 세트 구성에서 생성된 데이터 세트에 액세스하고 이를 쓸 수 있습니다. 예를 들어 프로젝트 내에 여러 데이터 세트 구성이 있는 경우 프로젝트 범위의 서비스 에이전트가 프로젝트 내의 모든 데이터 세트 구성에 대한 데이터 세트를 읽고 쓸 수 있도록 하려면 프로젝트 범위의 서비스 에이전트에 필요한 권한을 한 번만 부여하면 됩니다. 데이터 세트를 읽고 쓰는 데 필요한 권한에 관한 자세한 내용은 권한을 참고하세요. 데이터 세트 구성이 삭제되더라도 프로젝트 범위의 서비스 에이전트는 삭제되지 않습니다.

    구성 범위 서비스 에이전트는 특정 데이터 세트 구성에서 생성된 데이터 세트에만 액세스하고 이를 쓸 수 있습니다. 즉, 데이터 세트 구성이 여러 개인 경우 각 구성 범위 서비스 에이전트에 필요한 권한을 부여해야 합니다. 데이터 세트 구성이 삭제되면 구성 범위 서비스 에이전트가 삭제됩니다.

데이터 세트 구성을 만든 후 데이터 세트를 BigQuery에 연결합니다. 데이터 세트를 BigQuery에 연결하면 쿼리할 수 있는 연결된 데이터 세트가 BigQuery에 생성됩니다. 언제든지 데이터 세트를 연결하거나 연결 해제할 수 있습니다.

데이터 세트 구성을 만들거나 업데이트할 때 설정하는 속성에 관한 자세한 내용은 JSON API 문서의 DatasetConfigs 리소스를 참고하세요.

지원되는 위치

연결된 데이터 세트를 만들 때 지원되는 BigQuery 위치는 다음과 같습니다.

  • EU
  • US
  • asia-southeast1
  • europe-west1
  • us-central1
  • us-east1
  • us-east4

메타데이터의 데이터 세트 스키마

다음 메타데이터 필드는 데이터 세트에 포함됩니다. BigQuery 열 모드에 관한 자세한 내용은 모드를 참고하세요. 열 모드는 BigQuery가 데이터를 저장하고 쿼리하는 방식을 결정합니다.

snapshotTime 필드는 버킷 메타데이터 스냅샷 새로고침 시간을 RFC 3339 형식으로 저장합니다.

버킷 메타데이터

달리 명시되지 않는 한 JSON API의 버킷 리소스 표현을 참고하여 다음 버킷 메타데이터 필드에 관한 자세한 설명을 확인할 수 있습니다.

메타데이터 필드 모드 유형
snapshotTime NULLABLE TIMESTAMP
name NULLABLE STRING
location NULLABLE STRING
project NULLABLE INTEGER
storageClass NULLABLE STRING
versioning NULLABLE BOOLEAN
lifecycle NULLABLE BOOLEAN
metageneration NULLABLE INTEGER
timeCreated NULLABLE TIMESTAMP
public NULLABLE RECORD
public.bucketPolicyOnly NULLABLE BOOLEAN
public.publicAccessPrevention NULLABLE STRING
autoclass NULLABLE RECORD
autoclass.enabled NULLABLE BOOLEAN
autoclass.toggleTime NULLABLE TIMESTAMP
softDeletePolicy NULLABLE OBJECT
softDeletePolicy.effectiveTime NULLABLE DATETIME
softDeletePolicy.retentionDurationSeconds NULLABLE LONG
tags* NULLABLE RECORD
tags.lastUpdatedTime NULLABLE TIMESTAMP
tags.tagMap REPEATED RECORD
tags.tagMap.key NULLABLE STRING
tags.tagMap.value NULLABLE STRING
labels REPEATED RECORD
labels.key NULLABLE STRING
labels.value NULLABLE STRING

* 버킷의 태그입니다. 자세한 내용은 Cloud Resource Manager API를 참고하세요.

객체 메타데이터

달리 명시되지 않는 한 JSON API의 객체 리소스 표현을 참고하여 다음 객체 메타데이터 필드에 관한 자세한 설명을 확인할 수 있습니다.

메타데이터 필드 모드 유형
snapshotTime NULLABLE TIMESTAMP
bucket NULLABLE STRING
location NULLABLE STRING
componentCount NULLABLE INTEGER
contentDisposition NULLABLE STRING
contentEncoding NULLABLE STRING
contentLanguage NULLABLE STRING
contentType NULLABLE STRING
crc32c NULLABLE INTEGER
customTime NULLABLE TIMESTAMP
etag NULLABLE STRING
eventBasedHold NULLABLE BOOLEAN
generation NULLABLE INTEGER
md5Hash NULLABLE STRING
metageneration NULLABLE INTEGER
name NULLABLE STRING
size NULLABLE INTEGER
storageClass NULLABLE STRING
temporaryHold NULLABLE BOOLEAN
timeCreated NULLABLE TIMESTAMP
timeDeleted NULLABLE TIMESTAMP
updated NULLABLE TIMESTAMP
timeStorageClassUpdated NULLABLE TIMESTAMP
retentionExpirationTime NULLABLE TIMESTAMP
softDeleteTime NULLABLE DATETIME
hardDeleteTime NULLABLE DATETIME
metadata REPEATED RECORD
metadata.key NULLABLE STRING
metadata.value NULLABLE STRING

프로젝트 메타데이터

프로젝트 메타데이터는 연결된 데이터 세트에서 project_attributes_view라는 뷰로 노출됩니다.

메타데이터 필드 모드 유형
snapshotTime NULLABLE TIMESTAMP
name NULLABLE STRING
id NULLABLE STRING
number NULLABLE NUMBER

이벤트 및 오류의 데이터 세트 스키마

연결된 데이터 세트에서 events_viewerror_attributes_view 뷰에서 스냅샷 처리 이벤트 및 오류를 볼 수도 있습니다. 스냅샷 처리 오류를 해결하는 방법을 알아보려면 데이터 세트 오류 문제 해결을 참고하세요.

이벤트 로그

연결된 데이터 세트의 events_view 뷰에서 이벤트 로그를 볼 수 있습니다.

열 이름 모드 유형 설명
manifest.snapshotTime NULLABLE TIMESTAMP 이벤트 스냅샷이 새로고침되는 시간입니다(RFC 3339 형식).
manifest.viewName NULLABLE STRING 새로고침된 뷰의 이름입니다.
manifest.location NULLABLE STRING 새로고침된 데이터의 소스 위치입니다.
eventTime NULLABLE STRING 이벤트가 발생한 시간입니다.
eventCode NULLABLE STRING 해당 항목과 연결된 이벤트 코드입니다. 이벤트 코드 1는 스냅샷 manifest.snapshotTime 내 소스 위치 manifest.location의 모든 항목으로 새로고침되는 manifest.viewName 뷰를 나타냅니다.

오류 코드

연결된 데이터 세트의 error_attributes_view 뷰에서 오류 코드를 볼 수 있습니다.

열 이름 모드 유형 설명
errorCode NULLABLE INTEGER 이 항목과 연결된 오류 코드입니다. 유효한 값 목록과 해결 방법은 데이터 세트 오류 문제 해결을 참고하세요.
errorSource NULLABLE STRING 오류의 소스입니다. 유효한 값은 CONFIGURATION_PREPROCESSING입니다.
errorTime NULLABLE TIMESTAMP 오류가 발생한 시간입니다.
sourceGcsLocation NULLABLE STRING 오류의 소스 Cloud Storage 위치입니다. 프로젝트의 경우 위치가 없으므로 이 필드는 null입니다.
bucketErrorRecord.bucketName NULLABLE STRING 오류와 관련된 버킷의 이름입니다. 이 정보를 사용하여 버킷 오류를 디버그할 수 있습니다.
bucketErrorRecord.serviceAccount NULLABLE STRING 버킷에서 객체를 처리할 권한이 필요한 서비스 계정입니다. 이 정보를 사용하여 버킷 오류를 디버그할 수 있습니다.
projectErrorRecord.projectNumber NULLABLE INTEGER 오류와 관련된 프로젝트 번호입니다. 이 정보를 사용하여 프로젝트 오류를 디버그할 수 있습니다.
projectErrorRecord.organizationName NULLABLE STRING 프로젝트가 처리되려면 속해야 하는 조직의 번호입니다. 0 값은 데이터 세트가 조직에 없음을 나타냅니다. 이 정보를 사용하여 프로젝트 오류를 디버그할 수 있습니다.

데이터 세트 오류 문제 해결

연결된 데이터 세트의 error_attributes_view 뷰에 로깅되는 스냅샷 처리 오류를 해결하는 방법을 알아보려면 다음 표를 참고하세요.

오류 코드 오류 케이스 오류 메시지 문제 해결
1 소스 프로젝트가 조직에 속하지 않음 소스 프로젝트 projectErrorRecord.projectNumber이(가) 조직 projectErrorRecord.organizationName에 속하지 않습니다. 소스 프로젝트 projectErrorRecord.projectNumber를 조직 projectErrorRecord.organizationName에 추가합니다. 조직 간에 프로젝트를 마이그레이션하는 방법에 관한 안내는 조직 간에 프로젝트 마이그레이션을 참고하세요.
2 버킷 승인 오류 bucketErrorRecord.bucketName 버킷의 객체 처리 권한이 거부되었습니다. 서비스 계정 bucketErrorRecord.serviceAccountbucketErrorRecord.bucketName 버킷의 객체 처리를 허용하는 Identity and Access Management (IAM) 권한을 부여합니다. 자세한 내용은 서비스 에이전트에 필요한 권한 부여를 참고하세요.
3 대상 프로젝트가 조직에 속하지 않음 대상 프로젝트 projectErrorRecord.projectNumber가 조직 projectErrorRecord.organizationName에 없습니다. 대상 프로젝트 projectErrorRecord.projectNumber를 조직 projectErrorRecord.organizationName에 추가합니다. 조직 간에 프로젝트를 마이그레이션하는 방법에 관한 안내는 조직 간에 프로젝트 마이그레이션을 참고하세요.
4 소스 프로젝트에 Storage Intelligence가 구성되어 있지 않습니다. 소스 프로젝트 projectErrorRecord.projectNumber에 Storage Intelligence가 구성되어 있지 않습니다. 소스 프로젝트 projectErrorRecord.projectNumber에 Storage Intelligence를 구성합니다. 자세한 내용은 Storage Intelligence 구성 및 관리를 참고하세요.
5 버킷에 Storage Intelligence가 구성되어 있지 않습니다. 버킷 bucketErrorRecord.bucketName에 Storage Intelligence가 구성되어 있지 않습니다. bucketErrorRecord.bucketName 버킷에 Storage Intelligence를 구성합니다. 자세한 내용은 Storage Intelligence 구성 및 관리를 참고하세요.

고려사항

데이터 세트 구성에 다음 사항을 고려하세요.

  • 계층적 네임스페이스가 사용 설정된 버킷의 폴더 이름을 바꾸면 해당 버킷의 객체 이름이 업데이트됩니다. 연결된 데이터 세트에서 처리할 때 이러한 객체 스냅샷은 연결된 데이터 세트의 새 항목으로 간주됩니다.

  • 데이터 세트는 이러한 BigQuery 위치에서만 지원됩니다.

다음 단계