목록으로

Programming Notes

# Blob Inventory를 사용하여 Blob 총 개수 및 총 용량을 얻는 방법

목차 접근 방식 Blob Inventory 서비스 소개 Inventory 보고서 활성화 단계 지원 문서 면책 조항: 접근 방식 이 문서에서는 Blob Inventory 서비스를 활용하여 저장소 계정별, 컨테이너별 또는 디렉터리별 총 Blob 개수와 총 용량을 얻는 방법을...

접근 방식

이 문서에서는 Blob Inventory 서비스를 활용하여 저장소 계정별, 컨테이너별 또는 디렉터리별 총 Blob 개수와 총 용량을 얻는 방법을 제시합니다.

Blob Inventory 규칙을 생성하는 단계와 `prefix match` 필드를 사용하여 Blob Inventory 규칙 결과를 직접 처리하지 않고도 필요한 정보를 얻는 방법을 설명합니다.

추가 지원 문서는 문서의 마지막 부분에 제시되어 있습니다.

Blob Inventory 서비스 소개

Azure Storage Blob Inventory는 저장소 계정에 있는 컨테이너, Blob, Blob 버전 및 스냅샷 목록과 관련 속성을 제공합니다. 이 서비스는 매일 또는 매주 쉼표로 구분된 값(CSV) 또는 Apache Parquet 형식의 출력 보고서를 생성합니다. 이 보고서를 사용하여 저장소 계정 콘텐츠의 보존, 법적 보존 또는 암호화 상태를 감사하거나, 총 데이터 크기, 기간, 계층 분포 또는 기타 데이터 속성을 파악하는 데 사용할 수 있습니다. Blob Inventory 서비스에 대한 자세한 내용은 여기에서 설명서를 참조하세요.

이 문서에서는 이 서비스를 사용하여 Blob 개수와 용량을 얻는 데 중점을 둘 것입니다.

Inventory 보고서 활성화 단계

Azure Portal을 사용하여 원하는 정보를 얻기 위한 Blob Inventory 규칙을 정의하는 방법은 다음과 같습니다.

  1. [Azure Portal](https://portal.azure.com/)에 로그인하여 시작합니다.
  2. 저장소 계정을 찾고 계정 개요를 표시합니다.
  3. **데이터 관리** 아래에서 **Blob Inventory**를 선택합니다.
  4. 정의된 규칙이 없으면 **첫 번째 Inventory 규칙 추가**를 선택하고, 이미 하나 이상의 규칙이 정의되어 있으면 **규칙 추가**를 선택합니다.
  5. 다음 필드를 채워 새 Inventory 규칙을 추가합니다.
    1. **규칙 이름:** Blob Inventory 규칙의 이름.
    2. **컨테이너:** Blob Inventory 규칙 실행 결과를 저장할 컨테이너.
    3. **Inventory할 개체 형식:** _Blob_을 선택합니다.
    4. **Blob 형식:**
      1. Blob Storage: 모두 선택 (_블록 Blob, 페이지 Blob, 추가 Blob_).
      2. Data Lake Storage: 모두 선택 (_블록 Blob, 추가 Blob_).
    5. **하위 형식:**
      1. Blob Storage: 모두 선택 (_Blob 버전 포함, 스냅샷 포함, 삭제된 Blob 포함_).
      2. Data Lake Storage: 모두 선택 (_스냅샷 포함, 삭제된 Blob 포함_).
    6. **Blob Inventory 필드:** 여기에서 Blob Inventory에 지원되는 모든 사용자 지정 스키마 필드를 찾을 수 있습니다. 이 시나리오에서는 최소한 다음 필드를 선택해야 합니다.
      1. Blob Storage: _이름_, _생성 시간_, _ETag_, _콘텐츠 길이_, _스냅샷_, _VersionId_, _IsCurrentVersion_, _삭제됨_, _남은 보존 일수_.
      2. Data Lake Storage: _이름_, _생성 시간_, _ETag_, _콘텐츠 길이_, _스냅샷_, _DeletionId_, _삭제됨_, _DeletedTime_, _남은 보존 일수_.
    7. **Inventory 빈도:** '매일'을 선택하면 Blob Inventory 실행이 매일 자동으로 예약됩니다. '매주'를 선택하면 일요일에만 Inventory 실행이 트리거됩니다.
      1. 매일 실행하면 결과를 더 빨리 반환합니다.

    8. **내보내기 형식:** 내보내기 형식입니다. CSV 파일 또는 Parquet 파일일 수 있습니다.
    9. **접두사 일치:** 이름 또는 첫 글자로 Blob을 필터링합니다. 특정 컨테이너에서 항목을 찾으려면 컨테이너 이름 뒤에 슬래시를 입력한 다음 Blob 이름 또는 첫 글자를 입력합니다. 예를 들어 "a"로 시작하는 모든 Blob을 표시하려면 "myContainer/a"를 입력합니다.
      1. 여기에 Blob 정보를 수집할 경로를 추가합니다.

위에 제시된 5.9단계(`prefix match` 필드)가 이 문서의 핵심입니다.

컨테이너 이름이 _work_이고, _work_ 컨테이너 안에 _items_라는 디렉터리가 있는 저장소 계정이 있다고 가정해 봅시다. 필요한 결과를 얻기 위해 `prefix match` 필드를 구성하는 방법은 다음과 같습니다.

  • 저장소 계정 수준에서 정보를 얻으려면 비워 둡니다.
  • 컨테이너 수준에서 정보를 얻으려면 `prefix match` 필드에 컨테이너 이름을 추가합니다. 
    • `prefix match = work/`로 입력합니다.
  • 디렉터리 수준에서 정보를 얻으려면 `prefix match` 필드에 디렉터리 경로를 추가합니다.
    • `prefix match = work/items/`로 입력합니다.

Blob Inventory 실행은 `-manifest.json`이라는 파일을 생성합니다. 이 파일에 대한 자세한 내용은 지원 문서 섹션을 참조하십시오. 이 파일은 사용자가 제공한 규칙 정의와 해당 규칙에 대한 Inventory 경로를 캡처하며, Blob Inventory 규칙 파일을 처리할 필요 없이 원하는 정보를 제공합니다.

```json { "destinationContainer" : "inventory-destination-container", "endpoint" : "https://testaccount.blob.core.windows.net", "files" : [ { "blob" : "2021/05/26/13-25-36/Rule_1/Rule_1.csv", "size" : 12710092 } ], "inventoryCompletionTime" : "2021-05-26T13:35:56Z", "inventoryStartTime" : "2021-05-26T13:25:36Z", "ruleDefinition" : { "filters" : { "blobTypes" : [ "blockBlob" ], "includeBlobVersions" : false, "includeSnapshots" : false, "prefixMatch" : [ "penner-test-container-100003" ] }, "format" : "csv", "objectType" : "blob", "schedule" : "daily", "schemaFields" : [ "Name", "Creation-Time", "BlobType", "Content-Length", "LastAccessTime", "Last-Modified", "Metadata", "AccessTier" ] }, "ruleName" : "Rule_1", "status" : "Succeeded", "summary" : { "objectCount" : 110000, "totalObjectSize" : 23789775 }, "version" : "1.0" } ```

`objectCount` 값은 총 Blob 개수이며, `totalObjectSize`는 총 용량(바이트)입니다.

**특별 참고:**

  • 총 Blob 개수와 총 용량을 얻으려면 각 경로(컨테이너 또는 디렉터리)에 대해 규칙을 정의해야 합니다.
  • Blob Inventory 규칙은 CSV 또는 Apache Parquet 형식 파일(들)을 생성합니다. Blob Inventory 규칙이 이 문서에 제시된 정보만 얻기 위한 것이라면 이 파일들은 삭제해야 합니다.

지원 문서

주제주요 내용

Azure Storage Blob Inventory 보고서 활성화

Inventory 보고서를 활성화하는 단계.

Inventory 실행

규칙을 매일 실행하도록 구성하면 매일 실행되도록 예약됩니다. 규칙을 매주 실행하도록 구성하면 매주 일요일 UTC 시간에 Inventory 실행이 예약됩니다.

Inventory 보고서를 생성하는 데 걸리는 시간은 다양한 요인에 따라 달라지며, Inventory 실행이 실패하기 전까지 완료될 수 있는 최대 시간은 6일입니다. 

Inventory 출력

각 Inventory 규칙은 해당 규칙에 대해 지정된 Inventory 대상 컨테이너에 파일 세트를 생성합니다. Inventory 출력은 다음 경로에 생성됩니다: https://<accountName>.blob.core.windows.net/<inventory-destination-container>/YYYY/MM/DD/HH-MM-SS/<ruleName 여기서:

  • **accountName** 은 Azure Blob Storage 계정 이름입니다.
  • **inventory-destination-container** 은 Inventory 규칙에서 지정한 대상 컨테이너입니다.
  • **YYYY/MM/DD/HH-MM-SS** 은 Inventory가 실행되기 시작한 시간입니다.
  • **ruleName**은 Inventory 규칙 이름입니다.
 

Inventory 파일

 규칙에 대한 각 Inventory 실행은 다음 파일을 생성합니다:

  • **Inventory 파일:** 규칙에 대한 Inventory 실행은 CSV 또는 Apache Parquet 형식 파일을 생성합니다. 각 파일에는 일치하는 개체와 해당 메타데이터가 포함됩니다.
  • **체크섬 파일:** 체크섬 파일에는 `manifest.json` 파일 내용의 MD5 체크섬이 포함됩니다. 체크섬 파일의 이름은 `-manifest.checksum`입니다. 체크섬 파일의 생성은 Inventory 규칙 실행의 완료를 나타냅니다.
  • **매니페스트 파일:** `manifest.json` 파일에는 해당 규칙에 대해 생성된 Inventory 파일(들)의 세부 정보가 포함됩니다. 파일 이름은 `-manifest.json`입니다. 이 파일은 사용자가 제공한 규칙 정의와 해당 규칙에 대한 Inventory 경로도 캡처합니다. 
가격 및 청구 Inventory 가격은 청구 기간 동안 스캔되는 Blob 및 컨테이너 수에 따라 책정됩니다.
알려진 문제 및 제한 사항 이 섹션에서는 Azure Storage Blob Inventory 기능의 제한 사항과 알려진 문제에 대해 설명합니다.

면책 조항

  • 이 단계는 예시 목적으로만 제공됩니다. 
  • 이러한 단계 및 관련 정보는 명시적이든 묵시적이든, 상품성 및/또는 특정 목적에 대한 적합성의 묵시적 보증을 포함하되 이에 국한되지 않는 어떠한 종류의 보증 없이 "있는 그대로" 제공됩니다.
  • 당사는 귀하에게 해당 단계를 사용 및 수정하고 복제 및 배포할 수 있는 비독점적이고 로열티 없는 권리를 부여합니다. 단, 귀하는 다음 사항에 동의해야 합니다.
    • 해당 단계가 포함된 귀하의 소프트웨어 제품을 홍보하기 위해 당사의 이름, 로고 또는 상표를 사용하지 않을 것;
    • 해당 단계가 포함된 귀하의 소프트웨어 제품에 유효한 저작권 고지를 포함할 것; 그리고
    • 해당 단계의 사용 또는 배포로 인해 발생하거나 발생하는 모든 클레임 또는 소송(변호사 수임료 포함)으로부터 당사와 당사 공급업체를 면책하고 방어할 것.